Those of us who work in software development or project management are likely quite familiar with many of the practices of Agile Software Development, and while those practices (or ceremonies) are quite useful in guiding software development teams towards building sustainable, high quality, user-driven software, the concepts are equally applicable to digital living.
Parallels can be drawn between tens, if not hundreds of different aspects of software development and life in general, but there are three particular areas of agile software development that I’ve found to be the most fruitful when applied to digital living.
One of the key elements of Agile Scrum is what’s called the Sprint, which is a time-boxed period that starts with a planning session where the team makes a commitment to achieving a goal and then spends their time trying to achieve that goal.
In my personal life, I often find myself juggling multiple priorities each week: housework, my blog, friends/family time, and even some relaxation time. Unfortunately, I constantly push out projects that are important to me, not because I don’t have time to do them, but because I don’t effectively spend my time on the things that are most important in achieving the goals of that project.
To avoid that pitfall, I’ve begun treating each week as a sort of sprint. Doing some basic planning upfront, picking a key theme (or goal) that I want to focus on, and then breaking that theme down into a committed list of accomplishable tasks related to that goal.
For example, I spent a significant amount of time trying to get my blog up and running but I never had meaningful content to write about or a content management system chosen to support it. So for the first week, or my first ‘Sprint”, I set a theme of picking a content management system and spent that time reviewing options before finally settling in on one. The next week, my second ‘Sprint’, was focused on building out the content. During that time box, I set a goal of writing three articles, which broke down into a series of tasks that could be achieved each day to get me there.
The key to a good sprint in software development is to 1) create focus and 2) be honest about achievability. Teams typically break their work up into well-articulated User Stories that provide motivation for why you’re doing something and provide Acceptance Criteria for whether or not the team knows when they’ve hit the finish line.
Applying these concepts to life yields great results as well. For me, trying to write anything more than three articles in a week would burn me out or cut into other valuable time, so I set that as my achievable threshold. Then I set meaningful acceptance criteria, which translated into 1) an article 2) with a minimum word count threshold and 3) that was published to my blog.
The Showcase or Demo
It’s hard to go anywhere if you don’t have the end in mind from the start. It’s also painful if you get to the end and realize the folks you hoped would come along with you on the journey got lost somewhere along the way.
A second key ceremony in Agile development helps ensure eliminate these pitfalls. The Demo (or Showcase) highlights the value of the work that was done during a period of time and is scheduled to occur on a regular cadence. This ensures the software development team has both a target audience for the work they’re doing and provides that audience with the ability to provide feedback along the way. This prevents a disconnect from resulting when the end product is vastly different from the end user’s expectations.
Like Agile software development, I’ve realized much of the work I do needs both a showcase and a target audience. For example, when I put together my first home theater, I realized I shouldn’t be the only one to enjoy it and should design it in a way that met the needs of my friends and future home buyers. As a result, I spent a few weeks leading up to the Super Bowl (i.e. my showcase) perfecting it, with my audience of friends in mind. Each year leading up to the Super Bowl, I reflected back on the past year to determine what changes I could make based on the feedback of that audience. Eventually, when it came time to sell my house, the home theater room, which I had feared might be too unique to some buyers, turned out to be a huge selling point. In large part, that was because I designed it to suit the needs of a broader audience and treated each Super Bowl as a showcase event.
The key takeaway here is to make sure you have an audience beyond yourself that can keep you accountable for the work that you do.
The most valuable ceremony in agile software development is the Retrospective. A retrospective provides software development teams with the opportunity to reflect back on the mechanics of what they did over a certain period of time. In essence, it’s the team’s own internal feedback mechanism that drives continuous improvement.
These continuous improvement sessions are often built around challenging questions such as:
- What went well?
- What went Poorly?
- What should we stop doing?
- What should we start doing?
- What should we keep doing?
If the key to mindfulness is reflection, then the key to software development is retrospection.
Personally, I’ve implemented a daily retrospective as part of my morning meditation, during which I ask three specific questions:
- What risk did I take yesterday that proved valuable?
- What failure did I make yesterday that I could have avoided?
- What lesson did I learn yesterday that I can take with me moving forward?
At the heart of each of these questions is growth and continuous learning. The questions force me to take calculated risks on a daily basis, require me to confront failures that continue to crop up, and keep me mindful that learning is a never-ending process.
While my three questions may be valuable for those seeking to be more entrepreneurial and introspective, there are likely other key questions that you can ask yourself on a daily or weekly basis to get to where you want to go.
Bonus: Kanban Boards Make Life’s Projects Go More Smoothly
Although agile ceremonies can be applied to areas of life outside of software development, so too can the tools that underly the software development process. For example, there are thousands of tools that have been built around agile software development that can be leveraged in your daily life, the most important of which may be the Kanban Board.
A Kanban board is a way to show work based on the state of the work and its priority. Kanban boards ensure you break your work down into meaningful chunks, called cards, and pull those cards across the board as the predecessor work gets completed in front. In essence, a Kanban board is a visualization tool that enables folks to see the big picture of what must be accomplished within any project. It helps people and teams prioritize work and progress work towards an end state. Personally, I use Trello for my projects, though there are hundreds of similar tools that can be used to accomplish the same end result.