<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Sam Parsons</title>
    <description>I'm a software engineering leader who is passionate about building web services and creating effective teams.</description>
    <link>http://sjparsons.com/</link>
    <atom:link href="http://sjparsons.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Tue, 30 Jan 2024 05:34:18 +0000</pubDate>
    <lastBuildDate>Tue, 30 Jan 2024 05:34:18 +0000</lastBuildDate>
    <generator>Jekyll v3.9.3</generator>
    
      <item>
        <title>Kaizen</title>
        <description>&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Kaizen&lt;/strong&gt; - 改善 - &lt;em&gt;Japanese&lt;/em&gt; &lt;br /&gt;
Improvement, or, literally, “good change”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When I began leading a team for the first time, I had the chance to choose the name for my team. Most of the teams in our organization were named after movies and the like and so I picked some random movie to name our team. Our agile coach, Mark, teased me a bit about the lack of meaning so I started to think a bit more deeply about what we should name it. I thought if it was to be meaningful, it should communicate something of the culture, purpose and way of working our team should aspire to. I chose to name our team, &lt;em&gt;Kaizen&lt;/em&gt;. Even now, the timeless ideas packed into the name still resonate with me.&lt;/p&gt;

&lt;p&gt;Kaizen is a Japanese word literally meaning “good change”. After WWII a number of US business consultants in Japan helped develop lean manufacturing, where the focus is on eliminating waste. As a part of lean manufacturing, kaizen came to refer not simply to an improvement, but the practice of continuously improving manufacturing processes. Kaizen is an important component of Toyota’s approach and is a part of &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Toyota_Way&quot;&gt;The Toyota Way&lt;/a&gt;. Since then, kaizen and lean manufacturing have been translated into other applications in many industries.&lt;/p&gt;

&lt;p&gt;Kaizen is the practice of empowering everyone within an organization, from the CEO to folks on the manufacturing floor, to make changes that help improve the efficiency and quality of the product. Anyone can make suggestions. Depending on your organization, how those suggestions are collected or triaged might vary. In a bureaucratic organization there might be a board that reviews the suggestions and puts them into action. In other situations it may be more organic.&lt;/p&gt;

&lt;p&gt;Keep in mind, kaizen might be surprisingly simple. For example, “Let’s move this toolbox next to the person who needs it so we can cut down 3 min, 20 times a day”. Such a change might seem insignificant, but it alone yields a savings of ~1 hour in time every day. The real magic is in the continuous part. As you keep making changes and improvements, these little things add up to create an efficient system that is much better than any that a designer could create on their own.&lt;/p&gt;

&lt;p&gt;The marginal savings add up significantly long term, but there’s also a synergy created when individuals are empowered to affect change in their world. This leads to a greater sense of autonomy and motivation (see Daniel Pink’s &lt;em&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Drive:_The_Surprising_Truth_About_What_Motivates_Us&quot;&gt;Drive: The Surprising Truth About What Motivates Us&lt;/a&gt;&lt;/em&gt;), more engagement in the work, better results and, likely, more ideas for improving the process.&lt;/p&gt;

&lt;p&gt;Perhaps what is even more profound is that kaizen starts to create a culture that views the &lt;em&gt;process itself as a product&lt;/em&gt; and is always actively improving it. At its best, kaizen can lead to a self-leveling type of culture within an organization. If you want an organization that is resilient to change and can adapt effectively these principles are essential.&lt;/p&gt;

&lt;p&gt;As a software engineer and leader I am interested in the application of these techniques and approaches to software engineering. Below I explore some ways that I have applied kaizen within an engineering team.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ask for ideas to improve&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Actively and consistently encourage team members to propose ideas and give them space and time to do so. This should be across the board: in 1 on 1’s, in team meetings, in private messages, anywhere. Some teams have a regular ‘engineering meeting’ or ‘design meeting’ where any member can propose a topic; these meetings are perfect for fostering the sort of space needed to explore ideas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Leave egos at the door&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don’t shoot down ideas even if you may think it’s not a good idea at first. You must accept that you no longer will be the one with all the ideas, but as a result the team will have better ideas. Allow the team to experiment and explore ideas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data-driven decision-making&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When it comes time to decide whether to keep a change or not, use data to drive your decisions. Take metrics that are core to your team’s success and make them visible for the team. Use these metrics to make decisions as much possible. Making decisions based on data is a huge win for helping egos stay out of the way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Praise innovation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Praise innovation and encourage with verbal recognition (and if appropriate and possible, monetary reward).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Retrospect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Retrospectives are gold for kaizen. Steer retrospectives to focus on the process of software development within your team. Celebrate improvements; identify pain points and make real steps to address them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don’t lose ideas&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/2019/08/21/always-be-capturing&quot;&gt;Always capture ideas&lt;/a&gt;, don’t just let them linger in the air in a meeting or disappear into an abyss. This helps you actually have the ideas when you need them, but has a nice side-effect of communicating to people that what they’re suggesting is valuable to the team.&lt;/p&gt;

&lt;p&gt;* * *&lt;/p&gt;

&lt;p&gt;Through my experience with Team Kaizen, I found that kaizen is a key to creating &lt;a href=&quot;/2019/08/27/generative-team-culture&quot;&gt;a generative culture&lt;/a&gt; and helps establish an environment that tends towards success.&lt;/p&gt;
</description>
        <pubDate>Fri, 03 Jan 2020 00:00:00 +0000</pubDate>
        <link>http://sjparsons.com/2020/01/03/kaizen</link>
        <guid isPermaLink="true">http://sjparsons.com/2020/01/03/kaizen</guid>
        
        
        <category>leadership</category>
        
      </item>
    
      <item>
        <title>A generative team culture</title>
        <description>&lt;p&gt;I’ve been reading &lt;a href=&quot;https://openlibrary.org/works/OL19542983W/Accelerate_The_Science_of_Lean_Software_and_DevOps_Building_and_Scaling_High_Performing_Technology_O&quot;&gt;&lt;em&gt;Accelerate: Building and Scaling High Performing Technology Organizations&lt;/em&gt;&lt;/a&gt; by Nicole Forsgren, Jez Humble and Gene Kim about implementing DevOps techniques and how doing so drives performance of teams.&lt;/p&gt;

&lt;p&gt;One of the chapters introduces Westrum typology – a way to categorize teams based on their culture directly tied to their results. Dr. Ron Westrum identifies 3 different types of organizational cultures categorized by how they process information: pathological, bureaucratic and generative. In his 2005 article &lt;em&gt;A Typology of Organisational Cultures&lt;/em&gt;, Westrum describes them like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pathological&lt;/strong&gt; Power-oriented&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Low cooperation&lt;/li&gt;
  &lt;li&gt;Messengers shot&lt;/li&gt;
  &lt;li&gt;Responsibilities shirked&lt;/li&gt;
  &lt;li&gt;Bridging discouraged&lt;/li&gt;
  &lt;li&gt;Failure leads to scapegoating&lt;/li&gt;
  &lt;li&gt;Novelty crushed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Bureaucratic&lt;/strong&gt; Rule-oriented&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Modest cooperation&lt;/li&gt;
  &lt;li&gt;Messengers neglected&lt;/li&gt;
  &lt;li&gt;Narrow responsibilities&lt;/li&gt;
  &lt;li&gt;Bridging tolerated&lt;/li&gt;
  &lt;li&gt;Failure leads to justice&lt;/li&gt;
  &lt;li&gt;Novelty leads to problems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Generative&lt;/strong&gt; Performance-oriented&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;High cooperation&lt;/li&gt;
  &lt;li&gt;Messengers trained&lt;/li&gt;
  &lt;li&gt;Risks are shared&lt;/li&gt;
  &lt;li&gt;Bridging encouraged&lt;/li&gt;
  &lt;li&gt;Failure leads to inquiry&lt;/li&gt;
  &lt;li&gt;Novelty implemented&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Westrum’s research tied teams with generative cultures to better outcomes. The research presented in &lt;em&gt;Accelerate&lt;/em&gt; uses the same model and correlates technical teams possessing generative cultures to better performance. However, it’s not just the research that indicates this, it has a personal appeal too. I take a quick look at what makes a generative culture and I think, “that’s the sort of team culture I want to be part of.”&lt;/p&gt;

&lt;p&gt;Interestingly, research that &lt;a href=&quot;https://www.thinkwithgoogle.com/intl/en-gb/marketing-resources/content-marketing/five-dynamics-effective-team/&quot;&gt;Google conducted about effective teams&lt;/a&gt; came up with a similar conclusion. They identified 5 dynamics present in highly effective team – the most important by far being psychological safety.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;[Psychological safety] … was the single most important dynamic in an effective team. Psychological safety is about risk-taking and being comfortable with vulnerability. People who don’t feel psychologically safe worry that taking risks will mean they’re seen as ignorant, incompetent, negative or disruptive. Psychological safety means feeling confident about admitting mistakes, asking questions, or offering new ideas.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This type of psychological safety is closely related to what Westrum describes as a generative team. Information is shared freely, no one is punished for failure or bringing to light undesirable information.&lt;/p&gt;

&lt;p&gt;Not only is aiming for a generative culture the right thing to do for individuals  within a team (hopefully they’ll be happier and enjoy their work and lives more), it’s also the most responsible thing we can do. We can get more done together, achieve better results for our organizations, and enjoy it more by fostering a generative team culture.&lt;/p&gt;

&lt;p&gt;I still have a lot to learn about how to foster a generative culture, but I’m fascinated by the far-reaching impacts that are possible by creating an environment that allow others to thrive and information to flow quickly and easily. In the information age, this is what good leadership is all about.&lt;/p&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;references&quot;&gt;References&lt;/h4&gt;

&lt;p&gt;Westrum, Ron. (2005). A Typology of Organisational Cultures. Quality &amp;amp; safety in health care. 13 Suppl 2. ii22-7. 10.1136/qhc.13.suppl_2.ii22.&lt;/p&gt;

</description>
        <pubDate>Tue, 27 Aug 2019 00:00:00 +0000</pubDate>
        <link>http://sjparsons.com/2019/08/27/generative-team-culture</link>
        <guid isPermaLink="true">http://sjparsons.com/2019/08/27/generative-team-culture</guid>
        
        
        <category>leadership</category>
        
      </item>
    
      <item>
        <title>Creating remote-friendly teams</title>
        <description>&lt;p&gt;I’ve been working remotely for more than 2 years in multiple roles both as an individual contributor and a leader. Most recently I have been remotely leading a team of 6; 3 based out of an office and 3 remote. As a development manager, I hired 5 out of 6 members on my team and was able to create the team culture from scratch. I’ve strived to created a culture that is remote-friendly and treats everyone as equals no matter where they are located.&lt;/p&gt;

&lt;p&gt;Building a remote-friendly team is not just a random collection of things that ends up making remote work better, it actually forces a discipline and clarity of communication that makes your culture and organization stronger, leaner and more productive. If done well, adopting these things can improve the effectiveness even of traditional office-oriented teams and allows them the flexibility to optionally work remotely when needed.&lt;/p&gt;

&lt;p&gt;Here are some guidelines I’ve followed to help to create a remote-friendly culture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;All important conversations and decisions are made in a medium where you can join remotely&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’re in the office and others are remote, resist the urge to just have a quick huddle that excludes those who may be remote. This sort of thing kills a collaborative, inclusive culture and creates unnecessary walls and misunderstandings within your team.&lt;/p&gt;

&lt;p&gt;Here’s some ideas of mediums the are open for remote people to join:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Email&lt;/li&gt;
  &lt;li&gt;Chat services, such as &lt;a href=&quot;https://slack.com&quot;&gt;Slack&lt;/a&gt; or &lt;a href=&quot;https://mattermost.com&quot;&gt;Mattermost&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Video conference calls, such as &lt;a href=&quot;https://zoom.us&quot;&gt;Zoom&lt;/a&gt; or Google Hangouts&lt;/li&gt;
  &lt;li&gt;Project management services such as &lt;a href=&quot;https://basecamp.com/&quot;&gt;Basecamp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Forum threads&lt;/li&gt;
  &lt;li&gt;Blogs such as Automattic’s &lt;a href=&quot;https://p2theme.com/&quot;&gt;P2 WordPress theme&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Project details are accessible anywhere, anytime&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Project details such as epics, stories and bugs should be kept in a system that allows them to be formulated, refined, prioritized and tracked as the work progresses from anywhere. These artifacts end up forming an archive of the work that has been done. Some ideas of tools that you might explore are Jira, Trello, Basecamp or maybe Github Projects.&lt;/p&gt;

&lt;p&gt;If you can access these types of project details from anywhere this equalizes all team members regardless of whether they are remote or not. It allows everyone to contribute and understand the process of how work is determined.&lt;/p&gt;

&lt;p&gt;Some teams may have been accustomed to using physical artifacts such as a kanban board on the wall to track work. Although this has some benefits, it precludes remote team members from being first-class citizens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Discussions and decisions from meetings are documented&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Documenting decisions makes a place more remote-friendly, but it does more than that, it actually makes it better and more efficient for everyone. &lt;a href=&quot;/2019/08/21/always-be-capturing&quot;&gt;Always be capturing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Video conferencing is available and low-friction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The team needs to have a way to sync up all together for team events such as refinement, planning, stand-ups, and retrospectives and also in smaller groups at will. This means making sure that there is some agreed software such as Zoom or Google Hangouts for doing so. If you have an on-premises part of your team, they need to have high quality and easy-to-use equipment in conference rooms. If it’s too hard to setup the equipment, that barrier may get in the way of impromptu meetings that need to happen and waste lots of time setting things up. If the video or audio is not high quality it can really degrade the experience for everyone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Turn your video on&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When using video conferencing you should encourage everyone to turn their video on. We all communicate a lot non-verbally through our facial expressions and body language. Capturing some of that strengthens the the human connections between people, helps build relationships and makes for richer communication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Respect timezones&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You should construct a definition of what the core hours for your team are and everyone should know the expectations of when they need to be available.&lt;/p&gt;

&lt;p&gt;A note on meal times: within the bounds of the work day, you should be careful, with rare exceptions, to not schedule meetings over meals within other people’s timezones. Allowing time to break for meals enables people to keep steady blood sugar, refresh their minds, stretch their bodies and be more effective. Meal time is a basic need and you need to be careful when working with a remote team to respect that.&lt;/p&gt;

&lt;p&gt;To conclude, I think distributed teams can be amazingly effective and I reckon we will find that in the future we’re all working remotely. Putting these principles into place sets up your team for success long term.&lt;/p&gt;
</description>
        <pubDate>Thu, 22 Aug 2019 00:00:00 +0000</pubDate>
        <link>http://sjparsons.com/2019/08/22/remote-friendly-teams</link>
        <guid isPermaLink="true">http://sjparsons.com/2019/08/22/remote-friendly-teams</guid>
        
        
        <category>remote</category>
        
      </item>
    
      <item>
        <title>Always be capturing</title>
        <description>&lt;p&gt;One of my core principles for working effectively is to &lt;em&gt;Always be capturing&lt;/em&gt;. No matter what I’m working on, even if the work is abstract and conceptual, I want to always be creating some artifact that represents the current mental work and can be shared later. This applies in both an individual and group setting.&lt;/p&gt;

&lt;p&gt;For me, this principle and the practices I’ve developed are driven from my desire to remove friction and be efficient – to not lose any information that has been revealed and to make it easy to share with others (and even myself later).&lt;/p&gt;

&lt;p&gt;Although some may be more inclined to this principle than others, I contend that putting it in practice can be a learned skill and has some significant returns on investment. Here are some concrete examples of what &lt;em&gt;Always be capturing&lt;/em&gt; looks like.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In a brainstorming meeting&lt;/strong&gt;, get everyone to write down their ideas on post-its with sharpies. Your goal here is to gather as much as possible and you want to make sure that the good ideas don’t just vanish into thin air.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In a technical discussion&lt;/strong&gt;, document the questions and points brought up as your meeting progresses. People are much more likely to talk and contribute if they see their contributions are being captured and have value. Making the words visible helps keep the conversation focused.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In an architectural discussion&lt;/strong&gt;, work to collaboratively create diagrams (e.g. sequence diagrams) to convey the concepts being discussed. Don’t let groups talk for a long time without capturing something that reflects the concepts being discussed or proposed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In a collaborative decision-making meeting&lt;/strong&gt; that requires consensus, outline the different decisions in a shared document that everyone can see and facilitate gathering pros and cons. Use the document to help work towards consensus. My underlying belief here is that when the options and reasons for/against each are made clear, 90% of decisions are made since the common sense consensus is clear. When the decision is not clear, you have gathered in one place the data needed to make the call.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When refining user stories as a team&lt;/strong&gt;, capture questions and modifications to the story in real-time and use that live feedback to shape the story together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In a team retrospective&lt;/strong&gt;, don’t just let people talk, capture what they are saying. In my team, we sometimes we use a digital post-it-and-sharpie tool (such as &lt;a href=&quot;https://miro.com/&quot;&gt;Miro&lt;/a&gt; or &lt;a href=&quot;https://mural.co&quot;&gt;Mural&lt;/a&gt;); other times we have someone facilitate capturing the feedback in a text document.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When ideas come up&lt;/strong&gt;, have a notebook to capture them so that you can come back to them later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In meetings&lt;/strong&gt;, take notes on the key points, new information, and action points. Having these notes and being able to refer back to them will prove exceptionally valuable. You can do this collaboratively if you’re leading the meeting, but you also gain a lot of value personally from doing this even if you’re the only one who gets the notes. Having coherent notes is a lot like having a time machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When you answer a question,&lt;/strong&gt; write it up in a way that you can share it not only with the person who asked but also for others who may have that same question. You can then broadcast and multiply your impact with the same effort by an order of magnitude (or more). This idea is practiced by many folks, but I’ve recently heard Kent C Dodds talk about this idea.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When you encounter a topic for a standing meeting&lt;/strong&gt;, add it to a shared living document for next topics for that meeting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When you find links that you want to revisit or read later&lt;/strong&gt;, use a bookmark tool to keep track of them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When interviewing someone&lt;/strong&gt;, go through your questions and write down key points from their responses. This allows you to go back afterwards, jog your memory and evaluate responses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When you find out you are responsible for doing something&lt;/strong&gt;, add it to your to do list. Maintain this list by visiting it regularly, prioritizing items, and marking things off that are complete.&lt;/p&gt;

&lt;p&gt;In general how you do the capturing doesn’t matter too much as long as the medium works well for you and others involved and allows you to get most value out of the artifact later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Always be capturing&lt;/strong&gt; is one of the most powerful tools I’ve found to work effectively.&lt;/p&gt;
</description>
        <pubDate>Wed, 21 Aug 2019 00:00:00 +0000</pubDate>
        <link>http://sjparsons.com/2019/08/21/always-be-capturing</link>
        <guid isPermaLink="true">http://sjparsons.com/2019/08/21/always-be-capturing</guid>
        
        
        <category>principles</category>
        
      </item>
    
      <item>
        <title>No constraints – WordCamp Edinburgh</title>
        <description>&lt;p&gt;In November 2015 I gave a talk at &lt;a href=&quot;https://edinburgh.wordcamp.org/2015/&quot;&gt;WordCamp Edinburgh&lt;/a&gt; called &lt;em&gt;No constraints - building a minimum viable product with WordPress&lt;/em&gt;. I told the story of how we used WordPress to build a vision of what the University of St Andrews’ web presence might look like while I was working in the &lt;a href=&quot;http://digitalcommunications.wp.st-andrews.ac.uk/&quot;&gt;Digital communications team&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The prototype site that we built lead to the development of a &lt;a href=&quot;http://digitalcommunications.wp.st-andrews.ac.uk/2015/11/02/digital-prospectus-business-case/&quot;&gt;major, multi-phase, multi-year project&lt;/a&gt;.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://videopress.com/embed/qlMsW18m&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;script src=&quot;https://videopress.com/videopress-iframe.js&quot;&gt;&lt;/script&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The first few seconds of the video is missing, but the rest of the talk is present.&lt;/p&gt;

&lt;h3 id=&quot;further-resources&quot;&gt;Further resources&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/presentations/2015-11-21-no-constraints/no-constraints.pdf&quot;&gt;PDF of slides&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/standrewsdigital/wp-peanut-butter-2015&quot;&gt;Source code of WordPress theme&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Thu, 21 Jan 2016 00:00:00 +0000</pubDate>
        <link>http://sjparsons.com/2016/01/21/no-constraints-wordcamp-edinburgh</link>
        <guid isPermaLink="true">http://sjparsons.com/2016/01/21/no-constraints-wordcamp-edinburgh</guid>
        
        
        <category>prototyping</category>
        
      </item>
    
      <item>
        <title>Progressive enhancement is not passé</title>
        <description>&lt;p&gt;A month ago, A List Apart published &lt;a href=&quot;http://alistapart.com/article/interaction-is-an-enhancement&quot;&gt;Interaction Is an Enhancement&lt;/a&gt; by Aaron Gustafson.&lt;/p&gt;

&lt;p&gt;Even in the advanced world of 2016 there are still reasons to build web sites that
work without JavaScript. Supporting plain HTML without JavaScript to be fair is
more difficult, but that doesn’t mean it’s not the right thing to do. I see it
as a question of accessibility. Building a website that requires JavaScript for
any functionality is like building a new multistory building without an elevator because
almost everyone can climb stairs.&lt;/p&gt;

&lt;p&gt;To clarify a little…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The site need not be identical without JavaScript. At a minimum we need to
merely deliver the same core content or provide an alternative path for those
without JavaScript.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Is this product intended for the general public? If not, then we may consider
the pros and cons of delivering a non-JavaScript solution.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, if we built a JavaScript-required single page application content
management system for the &lt;em&gt;general public&lt;/em&gt; we should provide an alternative
way for people to edit their content. In the spirit of progressive enhancement,
build the basic non-JavaScript application first and and then build the advanced
alternative experience for those with JavaScript enabled.&lt;/p&gt;

&lt;p&gt;An example of this is WordPress.com’s new React JavaScript application &lt;a href=&quot;https://developer.wordpress.com/calypso/&quot;&gt;Calypso&lt;/a&gt;
that provides a fresh interface to the WordPress admin. In this case, the existing
WordPress admin can operate completely (more or less) without JavaScript – you can
add and edit posts or pages and update settings. By building an app on the API,
Automattic was able to create a fresh interactive interface that relied on
JavaScript while still providing the existing admin for those without JavaScript.&lt;/p&gt;

&lt;p&gt;I say all of this not as someone who is against JavaScript, but as someone who
daily slings JavaScript in the browser and the server. As digital
creators we have a responsibility to ensure our products are as accessible as
possible.&lt;/p&gt;
</description>
        <pubDate>Fri, 15 Jan 2016 00:00:00 +0000</pubDate>
        <link>http://sjparsons.com/2016/01/15/progressive-enhancement-is-not-passe</link>
        <guid isPermaLink="true">http://sjparsons.com/2016/01/15/progressive-enhancement-is-not-passe</guid>
        
        
        <category>JavaScript</category>
        
      </item>
    
  </channel>
</rss>
