Best tools for agile development

To do agile right, it helps to have a common set of tools and methods to help everybody remain aligned and in sync. Some of the tools that we use on a regular basis include:

  • Inception deck
  • Kanban board (JIRA)
  • JIRA
  • Slack and Google Hangout
  • Daily standup
  • Sprint retrospective

Inception deck

At the beginning of every project, we always hold a kick-off and the result of that kick-off is the Inception Deck. We learned about the Inception Deck from Jonathan Rasmusson’s excellent book on agile called, “The Agile Samurai”.  The Inception Deck seeks answers to the following questions:

  1. Why are we here?  What is driving this effort right now?
  2. Who (what) are the target audience segments, what do they seek?
  3. What are the biggest problems we face, that we’re trying to solve?
  4. What does the solution look like?  Are there examples?
  5. What are we NOT going to do?
  6. Who and what third parties do we need to interface with?
  7. How big or small of a project are we dealing with? Time and money?
  8. Rank the project management variables from fixed to fluid
  9. What is the absolute minimum viable product (MVP)?

It is so important to have this Inception Deck defined in advance so we can always remind ourselves throughout the project.  Particularly when we face a decision over priorities, scope, cost, problems, obstacles, and alternatives; it is important to have this Inception Deck posted on our walls to remind us and guide us.  The Inception Deck also helps keep everybody aligned. From the stakeholders and product owners to the designers, developers, business analysts, and quality assurance specialists; we all need to be as aligned as possible about what we are doing and why.

Kanban board (JIRA)

In its simplest form, the Kanban board lets everybody know what is the status of the sprint.  What is done?  What is in progress?  How much is left to be done?  When it gets down to crunch time and we are looking at when we need to deliver a release and how much work is left to be done and how much time exists in a day, the Kanban board helps you really focus on what is absolutely the most important things to get done.  If you didn’t spend the time defining your MVP during the Inception Deck, the Kanban board will help you define it at crunch time.

For remote or distributed teams, when everybody is not co-located in the same room, we find that Atlassian’s JIRA has a digital Kanban board that allows everybody to see the sprint status.  The nice think about JIRA Agile is that you can add a lot more artifacts to the user story such as screen shots, URLs, notes, business value, etc.

I find JIRA’s Kanban board so valuable, I have my own personal Kanban board to help me list all of the personal tasks and To-Dos that I have on a daily basis to help me keep track of everything.  It frees my mind and memory when I can create a To-Do for myself so I can forget about it and move on to whatever is most important or urgent at this moment.

Slack and Google Hangout

Slack is another tool that allows people to broadcast announcements, ask questions, get answers, ask for help, offer help, and just consolidate relevant information.  We find Google Hangout better for person-to-person chatting while Slack is a bit better for one-to-many or many-to-many communications.  Slack is also threaded and categorized so you can organize information relevantly.

From time to time, we need to all hop on a call and Google Hangout it great for that, particularly if your team is remote or distributed.  Simply seeing everybody’s faces while at their desk helps create that team bond and connection.  Google Hangout also allows people to share screens so everybody can see the context of a conversation.

For more formal conversations, particularly with clients, we tend to use GoToMeeting because it seems to be a bit more formal, allows us to record our web conferences for future playback, and has tools for drawing and annotating screen shares.

Daily standup

The daily standup is great because it allows everybody to remain in sync on what is the one or two most important things that needs to be accomplished today. If nothing else gets done today, this needs to get done. When it comes to agile, it’s about getting shit (stuff) done (GSD).  The daily standup allows everybody to ask for clarification, share their issues, problems, or obstacles, and creates a group think to help solve these roadblocks.

Daily standups ensure that people don’t get lost or forgotten in the system.  It is tough for people to hide during a daily standup.  As teams and organizations get larger, it is easier for a few people to do most of the work while a few people do no work.  Daily standups help to spread the load across the entire team and increase team performance and productivity.

Sprint retrospective

Based on my past Sprint Retrospectives, the one agile ritual that everybody seems to enjoy and appreciate the most is the Sprint Retrospective.  The Retrospective is our opportunity to stop, take a time out, reflect, give praise where praise is due, identify mistakes that need to be corrected so they do not recur, and start developing a true system lessons learned where lessons are really learned.

For me, a lesson learned is only a lesson learned if we stop to recognize the problem, identify the root cause of the problem, identify symptoms to allow us to recognize this problem is about to recur again, figure out a solution to the problem and preventative measures, document all this, teach all this, and periodically revisit the issue to ensure that we are actually changing the way we do business so we don’t fall back into our old routines.

If all these things don’t happen then what we see is the same stupid mistakes recurring again and again.

To me, a stupid mistake is something that never should have happened in the first place because we should have known better … we should have learned from past lessons. It’s like the fool me once shame on you, fool me twice shame on me principle.  The first time a mistake happens, that’s okay.  Failure should be encouraged because we learn the most from our mistakes.  But, we have to stop, reflect, analyze, and change for that lesson to actually be a lesson learned. Otherwise, we are doomed to repeat our stupid mistakes.

This is the value of the Sprint Retrospective.