Day-to-Day Agile Management - A How To Guide
One of the key differences in an Agile approach to project management is the emphasis on close communication.
This usually takes the form of a brief daily meeting where the team can share progress and obstacles. In the Scrum method, this meeting is called a "Daily Scrum", while the XP method refers to this as a "Daily Standup Meeting". Whatever you choose to call it, it is a very useful means of daily team communication, the lifeblood of an Agile project.
The purpose of the daily meeting is for each team member to communicate three critical items:
- What they've accomplished since the last meeting
- What they are planning to work on next
- Obstacles or challenges they have encountered
It's important that the team is safe to honestly communicate status and issues in the daily meeting. Project managers should take care not to stifle the flow of information by challenging honest reporting or trying to control the meeting. Instead, the team can decide who facilitates the meeting, perhaps by rotating the responsibility. The successful Agile PM focuses on supporting the team and removing obstacles to their success.
A typical meeting with 2 developers, a QA professional and a PM might sound something like this:
QA (facilitating): OK, it's 9:00, let's get started. Dev 1?
Dev 1: Yesterday I finished the FooBaz module, so the "Add Customer" story is ready for acceptance testing. Today, I'm going to refactor some code that's a little funky, and check everything in. No problems, otherwise.
QA: Um, so should I wait to test Add Customer until you've finished refactoring?
Dev 1: No, go ahead and start playing with it and let me know if you see anything obvious, and I'll let you know when the final code is checked in and all my unit tests pass. You can start your formal tests then.
Dev 2: I got completely stuck on the security module yesterday - there's a bug in the 3rd party library we're using, and I've posted a question on their support forum. So I got nothing done all day. I'm waiting to hear back from them to move forward.
PM: Could we use another security library instead?
Dev 2: Well, there's a really good one, but it costs $2000. I thought using the open source one would be cheaper.
PM: It's in our budget if you think it will work better - I'll put in a purchase order if you give me the details.
Dev 2: Great! I'll start using their free trial today to see what's involved.
QA: Well, I've played with the stories so far, and things look pretty good. Today I'll be looking at Dev 1's "Add Customer" story, and working with him on any issues that come up. By the way, we're going to need another license for the automated testing tool - I've got a contractor starting next week.
PM: OK, I'll make a note. So I met with a client yesterday who was very excited about our new streamlined "Add Customer" feature. They're willing to be an early tester of the system when we're ready.
QA: Why don't we have a meeting offline to talk about when we'll be ready? Sounds like all of us need to be there.
PM: Great, I'll put something on the calendar for tomorrow.
Notice that the PM isn't running the meeting. Also notice that the facilitator (QA) properly directed an important discussion to a separate meeting. Ad-hoc discussions, no matter how critical, can really disrupt the daily meetings and make them much longer than necessary.
Updating ProgressMany teams like to use a visual aid in the meeting room so they can refer to stories and tasks that they are working on, update estimates, etc. This can take the form of a "taskboard" with index cards that can be moved around, or a computer and a projector that can show an electronic representation of the iteration.
Some teams like to update the physical or electronic taskboard while they are reporting on their status during the daily meeting. This usually involves indicating any completed tasks from the previous day, and selecting a new task to work on today. Incomplete tasks can be updated with new estimates if necessary.
Alternatively, all of this can be done before or after the meeting to save time. In any case, the team will likely make changes to the taskboard throughout the day as work is completed.
Using ExtremePlanner as a TaskBoardExtremePlanner features an Iteration Status view which acts as a virtual taskboard. You can see all stories for the current iteration, along with all subtasks that are either To Do, In Progress, or Completed. The team can easily check what needs to be done, signup for tasks, update estimates on incomplete tasks, or refer to completed tasks during status meetings.
If you've defined manual acceptance tests for your stories, you can also see if they are passing. Project managers can see a quick snapshot of how much work remains on the iteration, and what stories are completed, and what hasn't been started yet.