It’s 2014 and you still aren’t Agile. You haven’t had the luxury of upper management taking the lead and you don’t see any signs of that changing. How do you get started with Agile?
If you have management support then bringing in an Agile coach is a really great way to kick things off. You’ll have an expert to guide you and answer all of your questions. You’ll also have someone constructively calling you out on your unproductive habits. However, if you don’t have this option then the second best approach is to gradually work it in from the bottom up.
If you haven’t already, make sure you read the Agile Manifesto and the Principles behind the Agile Manifesto. Spend some time reading up on the purpose of the various ceremonies in Agile Scrum. I recommend Scrum because it’s the most widely practiced flavor of Agile, and it’s fairly prescriptive.
Trying to introduce all of the practices immediately will likely be too overwhelming. Here are three things I recommend you try first as they will add standalone benefit to your process, even if you never adopt all of the recommended practices.
Document Your Work and Make It Visible
Think of everything you are currently working on and will be working on in the coming months. Break that work into reasonably small units, say less than five days of work per item, and document each item on an index card. Write down just enough information that you will know what you are referring to if you look at the card a month from now. This can be a team or individual effort depending on your situation.
Next, draw three columns on a whiteboard (or something comparable) and label the columns “Backlog”, “In Progress”, and Completed”. Now divide up the index cards into these three self-explanatory categories and tack them on the board. Congratulations. You now have an “information radiator” that broadcasts your current and upcoming priorities. Anyone can walk by and see what you are working on, and what you having piling up.
This is a useful enough tool for keeping track of your own work that it doesn’t necessarily need to be seen by others. However, people will look at the board. If you are lucky, a customer or your manager will look at the board and ask you a question or two. “What does card XYZ mean? I didn’t know you were working on that.” or “I thought you were working on ABC, is everything OK?” These are good conversations to be having as they can help ensure that you are working on the right thing. Communication is key!
The board is also a useful tool for prioritization. When someone swings by to ask you to work on something you can grab a card, stand up, and have a constructive conversation about which of the things in your “In Progress” column should get moved out. After all, you can only work on so many things at once.
Daily Stand-up Meetings
Having a daily stand-up meeting is a surprisingly effective way to kick off the day. It is also a step in the right direction when it comes to frequent communication! Try to include everyone who is a regular contributor to the project. At a minimum, this should include the other developers and QA. In a perfect situation this will also include the Product Owner or customer, as well as any other cross-functional members of the team (e.g. UX Analysts, Operations, etc.) that might not be 100% dedicated to your project.
I won’t go into all of the merits of a stand-up meeting as there are plenty of great resources on the topic (see Wikipedia for example). While you should be communicating with your team members in near real-time, a stand-up meeting guarantees you are communicating at least once a day. This can be especially beneficial for getting some face time with a Product Owner or your customer, who may not be as integrated with the team as you’d like.
One of the principles behind the Agile Manifesto is that the team should be continuously improving. It states: “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.” Having a regularly scheduled retrospective meeting provides team members with an opportunity to talk about what is working, and what isn’t. As with stand-up meetings, you shouldn’t necessarily wait until this time to bring ideas to the table, but it does provide a guaranteed time slot to ensure you are devoting at least some time to continuous improvement.
In your first few retrospectives you’ll likely be talking about how to make sure the stand-up is adding value, whether you want to add another column to your board (e.g. “In QA” or “Needs Acceptance”), how to better document your work, etc. Make sure that you have a plan for implementing at least one or two ideas from each retrospective and reflect on whether your most recent changes were effective.
Before you know it you should be talking about how to take the next steps to becoming more Agile. Perhaps you’ll want to establish a true development iteration. Maybe you’ll want to start estimating your work for planning purposes. Maybe you’ll want to select an unofficial Scrum Master or Product Owner for the team. Whatever you do, keep improving!
Documenting your work on a whiteboard, holding daily stand-up meetings, and retrospecting on your development process are three easy ways to start getting Agile. If you can implement these then you’ll start prioritizing more effectively, communicating more frequently, and you’ll ensure there is a guaranteed mechanism for improvement.
Have more questions about getting started with Agile? I’ve been through the bottom up approach and would be happy to discuss your own unique challenges if you need help getting started. Good luck.