myAgile – Individual Agile Planning

Overview

myAgile should be used as a starting point to help you get organized.  There are certainly some details of the process that are missing, but that is somewhat by design:  it’s up to you to determine the rules you are going to impose on yourself.

In an Agile software development process, there are several key items used within the planning and execution of projects.  I will quickly define them here for background.

Definitions

  • Backlog – Your “to do” list.  In software development, the backlog is a list of bugs and features (called user stories) that are to be done for a particular application.  In myAgile, it is a list of your tasks.
  • Task – Exactly what it sounds like, a unit of work.  Tasks are typically given an estimate using something called “points” or “story points”
  • Points or Story Points – These are used to describe the level of effort and complexity for a particular task.  These are meant to be arbitrary numbers based on subjective estimation, as opposed to concrete numbers like hours or days.  See my note at the end of this post for a little more background.
  • Epic  – An epic is essentially a category for bugs and features.  In software development, it usually represents a large new feature or functionality.
  • Sprint – A specific period of time where planned work is to be accomplished.  Sprints are “time boxed,” meaning they are of a finite length.  Within software development, it’s usually two or three weeks because of the overhead of planning, but for this process, I suggest a one week duration.
  • Sprint Planning – Before a sprint starts, it’s the time spent identifying what works needs done in the upcoming sprint.
  • Sprint Retrospective – When the previous sprint is over, this is a time to reflect on what happened and identify ways to get better.

Step 1:  The Brain Dump – Creating the Backlog

The first step is the easiest:  get everything out of your head and onto paper or some other medium.  When I say everything, I mean everything.  Sit down with a piece of paper or at the computer and just start writing down everything that you need or want to do.  Short term tasks, long term goals, anything and everything that comes to mind.  Just keep writing until you cannot possible think of anything else that you want to do.

Now, sit there for two minutes with your list.  When something else comes to mind, write it down, and reset the two minute timer.  Continue this process until you can sit for two minutes and nothing else comes to mind.

Congratulations, you have populated your personal backlog!  Now we need to put some order to it.

Step 2: Categorizing – Creating your “Epics”

As I mentioned above, Epics are ways to group common tasks.  In the case of your personal backlog, these categories can represent either ongoing initiatives, like Personal Improvement, or projects with a distinct start and end, like Finish the Basement.

In this step, you need to analyze your list and group them using common categories.  You can define as many categories as you like, however, there is something to keep in mind:  you are not going to be able to work on too many different categories at the same time.  Your capacity depends largely on your ability to multitask and the complexity of the work that you are doing, but, for example, I have four active categories right now: Household WorkWorkPersonal Improvement, and Kids.

Note that some of the items on your list may represent a larger grouping.  For example, if one of your goals is to obtain a Master’s Degree, there will be numerous steps in support of that, and I would argue that should be a category which contains much more detailed tasks in support of the goal.

Trello Integration – Digitizing the Backlog

Now is a good time to talk about digitizing the backlog.  At this point you have a number of items and you need a way to plan these items individually.  There are many different tools out there to do this, but I have been using a Trellboard for organization and tracking.  Throughout the next steps, I will be using Trello as the example application for organizing the backlog, planning and executing the sprint, and examining the results.  Feel free to try out a different tool if you wish:  the process is more important than the implementation.

At this point, I entered all of my tasks into a single To Do list in Trello, and used the card labels to categorize each task into a particular epic.  What I ended up with was a single list with 90 or so items, and each item had a specific category.

Trello has an excellent app for both iOS and Android, so you can have your task list with you wherever you go.

Step 3: Prioritizing and Estimating – “Grooming” the Backlog

Now that we have a backlog, it is time to put a little effort into prioritizing the work and estimating it.   Go through your list, reordering tasks based on their priority and assigning due dates to any tasks that have hard deadlines.  After reviewing the list once, sort the list based on due date and then re-check the list, just to ensure that items with due dates were properly positioned.

A big part of Agile planning in software is estimating the work to be done.  This allows you to properly plan a sprint:  you take your total capacity for the upcoming time frame and fill it with tasks that can be done within that time frame.   More importantly, when the week is over, you identify how much you got done in that week so that you can better plan your next week.

The estimating is typically done using points or story points.  These are meant to be arbitrary numbers that do not correlate to objective measurements like number of hours.  The idea behind this is that, as long as the same person or people are assigning point values, the effort estimate should be the same across tasks.  In other words, you will assign a 1 to all of your simplest tasks.

If possible, assign an estimate to all of the tasks in your backlog.  This may not always be feasible, depending on the size of your list.  Therefore, a good rule of thumb is to keep at least two sprints worth of work estimated.  Since you have not executed a sprint yet, you do not know how much you can get done, so for now, just estimate about 20 tasks… That will get you started.

Trello Integration

Trello allows you to drag and drop cards within a list to reorder them.  It also allows you to associate a due date and time with particular cards.  There are features within each list to sort the lists, which also helps with some of the grooming.

Unfortunately, Trello does not have a built in way to assign a level of effort to tasks.  I found a Trello Powerup called Agile Tools by Corrello that adds this functionality.  As you are only allowed one powerup in the free version of Trello, I leave it to you to find the one that you want to use.

Step 4: Planning the Week – Sprint Planning 101

If the prioritization and estimation stage seems a bit long winded, it is because, typically, it is the hardest part of this whole process.  However, putting the work in during that phase makes sprint planning easy.

If you have done all your prioritization and estimation, then sprint planning should be as simple as asking yourself “How many points can I get done this week?” and then fill up your sprint list with that many points from the top of the backlog.

That just sounds too easy, right?  Again, if you have prioritized and estimated appropriately and you are aware of your capacity, it is that easy.  However, most of the time, there are tasks that come in unexpectedly or you are not sure of your capacity.  At that point, it becomes something of an educated guess.

For example, let’s say that you have prioritized the top 20 items on your backlog, but this week you did not fully complete a task for one reason or another.  You need to get that task done, which means bringing it into your list for this week.  That usually means you will not be able to get something done this week that was on the top of your list.  Sprint planning is about negotiating with yourself, however, it is very important to do you best to not over-commit to work, especially at the beginning.  The idea is to complete what you commit to within the given time period.

So say, for example, you put five tasks on your list for the week, and based on your capacity you feel those five tasks will take you all week.  By Wednesday, you have finished all the tasks.  Rather than just going to your backlog and pulling in some more work, it is better to end the sprint, perform the retrospection, and plan another sprint to start.  Getting in the habit of committing to blocks of work will make you hold yourself accountable to finishing the work you have committed to before taking on new work.

Balancing your work

In planning your week, it is vital to balance the work on your categories as evenly as you can.  Remember, this list is ALL the stuff you have to do for work, school, home, family, and friends.  If your list is filled to the brim with work items, you will not push forward any personal tasks.  In this case, Trello labels make this easy:  each label can be associated with a different color.  As such, your weekly list should not be monochromatic, but rather represent a rainbow of colors to push all of your goals forward.

Interruptions

We all have tasks that are thrown our way during the course of the week.  Sometimes they are critical and need our immediate attention, and sometimes they can wait.  Unfortunately, what tends to happen in this age of hyper-connectivity and instant gratification, we often over-estimate the urgency of requests from others.  While there is total flexibility to move items into your sprint in order to address them immediately, you should treat that action as an exception to the rule.

When requests come at you, you need to ask yourself “Can this wait?”  If you say yes to that, then put it at the top of your backlog and put a due date on it that is in line with the urgency of the request.  If you answer “No,” then you estimate it and put it into your sprint, but do not forget that you should swap out something of equal size:  your level of commitment for any given sprint should remain the same.

Trello Integration – Managing Execution using Lists

At this point, your Trello board should have at least four lists: Todo (your backlog), This Week (or This Sprint or however you want to term it), In Progress, and Done.  During execution, as you are working on items, move them to the In Progress list.  When they are completed, move them to Done.

You may find that other lists are helpful.  Personally, I have a Waiting Others list that lets me park tasks which require someone else’s work.  It lets me keep those tasks in the forefront so that I can set reminders for follow up with those people.

Step 5: Retrospection

When your sprint is completed, it is good to take a minute to look and see what you have accomplished.  Often times just seeing the list of completed items gives you a sense of accomplishment.

Retrospection is about identifying what went well, what did not go well, and what can be improved.  In general, Agile is about continuous improvement, and the goal of the retrospective is not to assign blame or make excuses, but to identify what you did well, where you can improve, and to commit to action items that will improve your process.  Maybe you over committed yourself this week and did not finish everything, or perhaps there were too many emergencies that caused your planned activities to fall behind.  What actions can you take to proactively avoid these things?

There are many ways to examine how you have done, but there here are some tips that I can give you for getting started.

  1. Write it down:  take notes on your actions for the week, and not just on the negatives.  Commit to writing at least one positive, one negative, and one action item for improvement each week, as well as the number of points you completed that week.
  2. Compare notes: review your notes from the previous retrospective.  Did you complete your committed action item from the previous week?  Did it make things better?  If not, is there something more that needs done in that area to improve your performance.
  3. Push yourself:  Have you completed the same number of points for the last 4 or 5 iterations?  Perhaps it is time to commit to a little bit more.  Do not be afraid to fail to meet your commitment, you will never know how much you can do unless you try it.

Trello Integration – Retrospectives

It is nice to keep some history of what you’ve accomplished, at least for a few sprints, so that you can see your progress sprint over sprint.  An easy way to track this in Trello is to archive the Done list, which hides it from view but lets you bring it back for analysis.

I have taken to renaming the Done list with the date of the last of the week and adding a Retrospective card with my notes from the retrospection session.  Once that is done, I archive the list.

Maintaining the Backlog

While the initial brain dump populated your backlog and gave you a lot to do, it is foolish to think that tasks are not going to continue to roll in as you go through your week.  Maintaining your backlog is vital to keep this process running smoothly, but will require some work.  It is easiest to do a little bit daily so that you do not end up with a lot of work at the beginning or end of the week.

So, on a daily basis, perform a brain dump:  make sure you get all the new tasks you have in your head into your backlog before you go to sleep.  The simple act of writing them down will act as a stress release, as your confidence in your system means you know it will get done.

Also, on a daily basis, work on prioritizing and estimating your backlog.   That means re-checking priorities based on new information and continuing to estimate tasks without an estimate.  This can be a very good morning exercise, as it will engage your brain for the day ahead by having you make decisions, but none of the decisions you make actually affect the day ahead:  that day should already be planned as part of your sprint work.

A note on Points

Assigning points is probably the weirdest thing about this process, because you are assigning an arbitrary number to a task in order to estimate the level of effort AND complexity.  As mentioned above, it is more important to be consistent than it is for the numbers to mean anything.  It is also important to realize that, the higher your number estimate, the more complexity the task holds, and therefore, the more uncertainty there is in your estimate.

With that in mind, many software development shops have abandoned the “1 to 10” scale in favor of the Fibonacci sequence (1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …) for assigning points.  Why?  Well, aside from the fact that most computer science majors are giant math nerds, the Fibonacci sequence illustrates the true difference between estimates at the high end of the scale.  Think of it this way:  on a scale of 1 to 10, the difference between a 9 and a 10 is only 1 point, however, the 10 may be 10 times harder than the 9.  On the Fibonacci scale, the “9” becomes a 55, and the “10” becomes an 89.  So, as you move up the scale, the complexity and uncertainty increase, and the Fibonacci numbers do a better job of conveying that increase.