Don’t fear — just because this article has “software development” in the title does not mean it’s going to get technical. 🙂
It is a bit of a longer post, however, so I’m providing a table of contents. Jump to whichever section you’re interested in, (or even the summary if you’re looking for a quick read!).
Why compare software development to self improvement?
You may be asking yourself — okay, Michelle. Why this strange post?
Well, for starters, I’m a nerd 🙂 I get excited at the concept of applying something I’ve learned in one area of my life to help challenge the way I think about something seemingly unrelated.
I only recently started applying some of the principles to the way that I tackle my life outside of work. But with the right tools, I’ve already noticed a huge improvement in my ability to effectively prioritize and devote time to the most important tasks — while maintaining flexibility to adjust when need be.
My goal is to challenge you to do the same. I’m going to present you with a method of problem solving which comes from the world of software development and show you that the same concepts can actually very useful for achieving your personal life goals.
This particular problem — how to live better and how to create the life you want — may be simple in theory but more complex in practice.
Part of the complexity of making informed decisions towards living a fulfilling life is that we, and the world itself, are ever changing. We may think we know what we want, but what we want can always change.
We are always evolving, and so too is the world that we live in. This can cause us to struggle in a number of ways:
- It can cause a lack of clarity about life goals – maybe you have pieces of the puzzle but are lacking an overall vision. Or maybe you had clarity but something happened and you no longer do.
- It creates overwhelm at the amount of information and options out there – what should you focus on?
- It can result in an identity crisis – knowing how to pivot and diversify your identity is key.
All of these struggles involve the ability to adapt — to reflect often, to be intentional, and to quickly shift when what you’ve been doing no longer serves the vision of the life you want.
And that’s where the agile software development methodology comes in.
What is the Agile Software Development Methodology?
Commonly referred to simply as Agile, this framework for modern software development is designed for flexibility and adaptability.
This approach to project management came about in response to a number of problems with the old way of approaching software development. Essentially, the old approach was much to rigid for how fast things moved in the internet era, and a group of people came together to propose a way to do things better. I won’t get into the details, but if you’re curious you can read more here.
The word agile itself is defined as the ability to move quickly and easily.
And while there were 4 main areas of improvement defined in agile project management, for the purpose of our analogy to personal development, I’m only going to focus on one of them: responding to change over following a plan.
But first, lets discuss some elements of Agile that will be useful takeaways for personal growth.
Elements of Agile
In order to demonstrate how this framework of responding and adapting to change can best be used to effectively manage your time, define your priorities, and build a life you’re excited to live, I must first introduce to you some of the concepts involved with Agile.
I’ll first define the concept as it relates to software development. Then, I’ll provide some practical examples of what it might look like in your everyday life.
Note: this is not a complete list (in case any of you are die-hard Agile fans 😉 ). I am simply picking and choosing elements that I find to be effective ideas in pursuing any personal development goals
The product backlog is a prioritized list of of work for the development team to complete in order to build a new software.
For our purposes, it is a prioritized list of everything you can think of that may or may not create value to you in the given area of life improvement.
Here are some practical examples from everyday life:
- To-Do Lists: A prioritized to-do list for the day/week/month
- A prioritized list of “wants”: items that you want to spend money on, but don’t need, in order of what you most want to buy once you can budget for it.
- Books to Read: A prioritized list of books to read — in order of what you’re most excited to learn
- Business Goals: A prioritized list of important tasks for building your business
The “Backlog Grooming” Session
The backlog grooming session is a regular review of some of the items on your backlog/list. It’s an opportunity to adjust the priority if need be. The primary goal of backlog grooming is to keep your backlog up-to-date with the ever changing vision of the complete product.
This is the same for personal development. Taking time to regularly reflect on what’s most important to you in life and plan based off that priority ensures that you’re prepared to start taking action on the highest value activities. It also allows you the flexibility to adjust on a regular basis which takes some of the pressure off of you to make the perfect decision.
Now that the team has effectively prioritized the backlog of tasks, they can begin selecting a couple of the top priority items to tackle first.
Similarly for personal development — you can’t do everything at once. Attempting to do so will leave you lost, frustrated, and flailing without a sense of direction. Now that you’ve taken time to define what will bring you the most value in whichever area of life that you’re looking at you’re ready to start working — but only on a few things at a time.
The sprint is where the actual work happens. It’s a timeboxed (a fixed time period in which planned activities take place) iteration of a software development. In other words, the development team sets out to accomplish a planned amount of work in X amount of time (let’s say 2 weeks). By the end of that 2 week period, their work should be ready for review.
The keys here are 1) only commit to take on the work that was defined in the sprint planning session 2) set a time limit on when the work should be completed by. And iterate — that’s how you improve and grow!
How this applies to personal development: It can be so easy to get caught up in over-thinking and planning. While this is important, you can’t accomplish anything until you actually DO something. Take action. And often, the best way to learn is through experience. You won’t know what works and what doesn’t until you try and try again. Iteration/repetition is key.
Placing a time bound also helps make sure you’re moving towards your goals with a good pace — one that doesn’t burn you out, but that also doesn’t allow you to procrastinate.
Whatever improvement you’re looking to make, commit to it for a “sprint.” Try your best for 2 weeks, 1 month, whatever time interval it may be. Don’t worry if you mess up. The point is to take action.
The Sprint Retrospective
Repetition and timebound objectives alone are not enough — in order to get anything out of it, you must regularly reflect on how things are going.
The sprint retrospective is an opportunity to do just that. In software development, the team meets and discusses what went well, what they should continue doing, and what could be improved to make the next sprint more enjoyable or productive.
You can do the same with your own life. Say you commit to certain monthly goals. It’s not enough to just set goals and work to them each month. You should also set aside even just a couple of minutes at the end of each month for honest reflection. Without reflection, you won’t know when or how to adapt.
So I mentioned that I’ve recently started to approach my own personal development goals in this manner.
And it’s for the exact reasons that I called out when I defined the problem at the beginning of this post. There’s too much to do, all the time. I needed a better system for organizing and prioritizing all of my ideas for:
- topics to write about
- Instagram posts to share
- blog priorities
- and even spending priorities
The tool that makes it all possible
Luckily, Atlassian (a company that produces products that help with software development) has just the tool I needed. Many of their tools are used by teams around the world. But they can also be useful for individuals.
One example of a tool I use is Trello (I use the free version, and I use it just myself though it works for teams too!). I love the drag and drop user experience. It makes it incredible easy to create categories, prioritize, and move things around.
Having a “backlog” really just lets me brain dump. Anything and everything that crosses my mind, I add to the list. I also have the app on my phone so whenever inspiration hits, I’m prepared. I sort it in order of highest priority — what should I take on next? And I simply move it into another lane to visually show my progress.
If we look at the examples I provided, we can see how they contain varying degrees of the Agile elements I defined:
- topics to write about – backlog, backlog grooming, sprint, sprint retro
- Instagram posts to share – backlog, backlog grooming, sprint, sprint retro
- blog priorities – backlog, backlog grooming, sprint, sprint retro
- spending priorities – backlog and backlog grooming
If you’re interested in learning more, comment on this post and let me know!
Okay, now for the quick version.
What is Agile:
The agile framework for software development is all about taking a complex set of problems (business requirements) and looking to create a plan of approach that allows for flexibility and adaptability. We don’t know everything up front, and what we think we need might change. Agile focuses on iterative planning and action, which lets you adapt to changing needs.
Elements of Agile:
Agile has it’s own terminology, which I’ll briefly explain before applying it to personal development goals. This is not an exhaustive list.
- The Backlog — a list of every business requirement for a new software. It’s sorted by priority, with the most valuable/important requirements at the top.
- “Backlog Grooming” Sessions — a meeting held at a regular cadence that serves as an opportunity to review your backlog list, update priorities as priorities change, and re-evaluate what’s most important.
- Sprint Planning — once you’re satisfied with your planning, you select the highest priority items from your backlog and you plan to get to work on them.
- The Sprint — this is where you do the work. Set a timeboxed interval (i.e. one month) where the team will set out to complete the highest priority items selected during sprint planning.
- The Sprint Retrospective — once the time interval is complete (i.e. at the end of the month), the team holds a meeting to review the sprint, analyzing both the good and bad. All of this feedback is then utilized to re-assess the backlog and the plan for the next sprint in order to be more effective, efficient, but also to make the work more enjoyable.
How it relates to personal development:
Much like a business problem, our own lives are complex. Our priorities and areas of focus are constantly shifting as we evolve and as the world around us changes. We also need a toolset for approaching our own life goals that allows us to be flexible and adaptable. Agile is a great fit.
We can use “backlogs” to help us take into consideration everything that might be important to us. We’re free to keep different lists for different areas of life, add to them whenever we get ideas or feel inspired, and regularly review to adjust priorities. Planning is one thing, but once we build some clarity, we can set aside designated time intervals to take action and iterate. Setting a timebound helps make sure we’re doing, rather than just thinking or waiting. And the fact that the focus is on cycles of iteration & reflection helps alleviate some of the pressure to do things perfectly all in one go.
There’s a lot of value in applying knowledge from one domain to another. For starters, it helps reinforce that you understand a concept. And it strengthens your critical thinking skills.
But it can also be very useful, providing a fresh perspective on a problem.
The problems Agile looks to address in software development actually have a lot of parallels to problems we encounter in our own lives. And the main elements of Agile — despite their silly names — are actually quite simple to apply.
I’d love to know what you think. Was this helpful or thought provoking for you? Does any of it resonate with you in terms of how you can approach your personal life goals?