Agile Project Management demystified

Tuesday, March 8th, 2011

In the realm of Project Management, Agile remains a mystic branch that is both tempting and terrifying. Many a- Project Managers is intrigued by the benefits of the method and do not fully understand how its core principles relate to traditional Project Management… so let’s take a peek.

First and foremost Agile is an iterative process relying on a few principles –twelve in fact, namely the Agile Manifesto – and small yet highly adaptable teams. It’s an umbrella term for many management methods that have gained in popularity mostly in the tech industry: Scrum, Crystal, Extreme Programming, FDD, DSDM are all Agile methods.

Agile is usually associated with Software Development and/or Project Management but has lately gained a large number of followers as a Management philosophy with wider applications than Development and Project Management.

At the heart of Agile is Iterative and Incremental development. Agile encourages collaboration between cross-functional teams and is applicable to all types of industries. Teams are also self-organized and prone to quick releases of features.

We’ll explain in layman’s terms the different facets of Agile Management, starting off with a graph:

Agile Project Management Tool

 

Features – or Deliverables:

As a Project Management method, Agile focuses on delivering Features – or Deliverables – as often as possible. As part of the definition, the Deliverable must be Completed, Tested, Debugged and Usable.

Iterations:

Core to any Agile method are Iterations. Iterations are fixed-length periods of time, of 1 to 4 weeks (usually 2) during which we try to accomplish a list of things or deliver certain features.

The idea behind iterations is to give the team a short term objective that creates both a sense of emergency and a feeling of accomplishment once it is completed – an addictive cocktail. Short-term, achievable objectives help to keep morale high.

Releases:

Releases are a part of the Grander Scheme of things. A release usually consists of a few iterations, where many Features or Deliverables are sent to the client or put into production.

Stories:

Agile is highly customer-driven. Therefore, features are usually translated into User-Stories. A Story explains how a feature is to be used and gives it context. A proper way to write Stories is to start by:

As a User I want to … have access to my data online

As a Client I want to… have a billboard printed in Times Square

Backlog:

The Product Backlog regroups all the remaining Stories for a given project. The Product Backlog is meant to be properly maintained and prioritized. Once an Iteration is completed, stories are selected from the Backlog, based on Priorities and are sent to the new Iteration.

Prioritization:

There are many ways to organize the Backlog: Business Value, Point value and relative Importance are the most frequently used systems. Business Value indicates the $ value of releasing a particular Story, Point Value is an indicator of the relative difficulty of delivering the feature and Importance is a measure of how critical a feature is to the overall project. Put together, these indicators allow for a Cost/benefit analysis that facilitate the Prioritization process.

Agile Roles:

There are 4 typical roles in Agile. Product Owner, Project Manager, Worker and Stakeholder.

The Stakeholder is usually the instigator of the project or the investor.

The Product Owner is the Stakeholder’s representative. He is in charge of prioritizing the Backlog and Writing the Stories.

The Project Manager (or Scrum Master in the Scrum method) is a facilitator to the team. He organizes the team, removes impediments, oversees the process, manages the Sprint backlog and the overall progress of the project.

The Workers are the ones getting things done. They estimate the stories in points and the tasks in hours. If the stories are estimated to be too big for a sprint, they can request the stories to be broken down by the Product Owner.

Sprints:

The Sprint is the name given to the current Iteration the workers are involved in.

Cross-functional teams:

In Agile, teams are meant to be cross-functional. Here are a few examples:

Software:     Developper, Tester, UI dev, Designer

Website:      Copy Writer, Developer, Designer, Content Manager

Marketing:    PR, Designer, Copy, Event Manager.

Hardware:     Engineer, Industrial Designer, Tester, Supply manager

SEO:              Copy writer, On-site Optimizer, Backlinker, SEM manager.

Self-Organization:

Teams are asked to organize themselves by creating the tasks related to the stories and estimating them, whether it be by Estimated Hours or Value Points. They subsequently assign tasks among each other and launch the iteration.

PMBOK vs Agile:

In Project Management, there are always 3 aspects that are considered: Budget, Scope and deadline.

In traditional Project management, the Scope is fixed and Budget and deadline may vary. In Agile, the Deadline is fixed, but the budget and Scope may vary.

Essentially Agile allows you to adapt to changing priorities and to prioritize what has the most value.

Benefits of Agile.

Quicker Time-to-Market

Reduced Risk by Managing Uncertainty

Increased reactivity to changing priorities

Superior Productivity & Software Quality

Healthier Customer-relationship

Better Team Morale

In essence, Agile is NOT that different from traditional Project Management. It just builds on it and improves elements that were found to be inefficient or problematic, such as managing risk and dealing with changing priorities.

Hope this clarifies things. Post any follow up question here and I’ll answer them!

 

line

Agile Transition: baby steps to a baby-smooth Agile transition

Friday, March 4th, 2011

Agile transition

A lot of our users at Planbox are either new to Agile or not Agile at all. For them and everyone who strives towards agility out there, we decided to write a strategy guide for a Smooth transition to Agile. Keep in mind that Agile works for just about anything.

An Agile tale tells us that THE biggest Agile project ever known is the creation of the Universe – which we know on good account was built over a 6-day sprint.

Whether you are in software development, technology, architecture, industrial design, construction; the principles are sound and they are applicable.

This post is a short guide to introduce Agile from the bottom up but the opposite can also be done – which we’ll show in a later post.

Phase 1: Pre-production

1. Aim for a quick-win – Agree to have a “Pilot” project on a small team

2. Lead the way – Select a Project Manager, one who is eager to test Agile and someone the rest of the team will want to follow in this crazy endeavour.

3. Legos are a great way to start - Break down a Project into smaller ones to test out. These will be the building blocks towards Agile… poetic isn’t it?

4. Cross-functionality – Build a small team of 3 to 5 team members. 1 Project Manager, 1 Developer/engineer, 1 Tester, 1 Designer as needed for your project. If you’re not in software development, remember it is also applicable.

5. Technology is your friend - Support your team with technological and psychological resources as needed. Shared file folder, team Wiki, chat room, comfort food, etc.


Phase 2: Iterate this!

6. Launch with a kickoff - Do an iteration “kick-off” meeting and have your team estimate their own tasks and stories.

7. Scrumfall - Keep doing what you’re already doing (waterfall, etc), but work on a 2-week cycle. This is usually called Scrumfall or Scrumbut.

8. Deliver! – Have your team deliver a complete “Product” or “Feature” or “Release” within a few iterations.

9. Wash & Repeat – Keep doing this until you have a big enough track of success to build a business case for Agile within your organization,  occasionally adding  a small team.


Phase 3: It looks Agile, it smells Agile, it talks Agile, yet…

10. Teach me master – Invest in hiring an Agile consultant and give training to some of your staff. Make a “contract” with those getting the training that they’ll have to teach at least one other team member.

11. Agile is a roleplaying game - Introduce new roles: ScrumMaster and Product Owner. The ScrumMaster’s role is similar to that of a project manager and his role is to facilitate, period. The Product Owner’s job is to Prioritize the backlog of features into  stories. He has to listen closely to the end-user to determine the right features and make sure it is usable.

12. Tools of the Trade - Introduce taskboards and daily stand-up meetings, proper Iteration kickoffs and reviews. If your teams are distributed, consider using an Agile Project Management software to simplify things. Planbox is one such software, but there are many others as well.

Overall, transitioning into Agile is an iterative process into its own. Slowly adopting Agile lingo, methods, reading about it, getting training will get you in the Agile bandwagon before you even know it.

Your team members and your users will thank you… eventually.

line

Dipping Your Toes Into Kanban

Friday, January 21st, 2011

Planbox is glad to present David J. Bland from Scrumology.netour first guest blogger of 2011.

dipping your toes into kanban

David is an Agile and ScrumMaster with 10 years experience in the technology industry who strives to find balance between Agile theory and Agile reality. He recently developed a keen interest for Kanban and we invited him to discuss it on our blog. And without further ado…

Like me, you may have read about the growing popularity of kanban in the agile software development community. Perhaps its mysterious allure and intriguing pronunciation (kahn-bahn not kayun-bayun) have piqued your curiosity, yet you struggle with finding a pragmatic way to apply it to your current software development process?

Interestingly enough, the beauty of kanban is that you can apply it to your two week iterations… right now if you like without that much disruption. In fact, you may even find it so useful that you’ll find other ways to work the kanban mojo.

Let me explain.

About a year ago an agile team walked into our iteration retrospective a bit down trodden. They felt as though their energy was being sucked from them at the beginning of every iteration due to the length of the tasking and design sessions. In addition to this, they would open all of the stories within the two week iteration at once and would jump around from story to story at will. They had also realized about half way through the iteration they had forgotten the conversations around the original tasking sessions. All of this added up to a great deal of frustration about the way they worked.

A couple suggestions were made within the iteration retrospective:

 

 

 

1. Apply a work in progress limit on how many stories are tasked in one sitting.
2. Apply a work in progress limit on the number of open stories within the iteration.

The team decided on a work in progress, or WIP, limit of 5 for tasking, and a WIP of 3 for open stories. These numbers were rather arbitrary, but we had to start somewhere.

Over the next few iterations, something almost magical happened.

Tasking and design sessions had a renewed energy

Tasking sessions no longer felt like a marathon to the team, with people routinely checking Twitter (ahem) and checking out mentally. We noticed that 6 days into the iteration, team members could remember why we had tasked a user story in such and such manner.

Now the downside of this was that we had more interruptions within the iteration as we would task in bunches on 2 or 3 separate occasions. At first the team felt a slight annoyance with this, but eventually adjusted and embraced the approach as the pros greatly outweighed the cons.

Team members had more focus with regards to the open stories

We found that the number of mistakes, errors and defects on our stories were drastically decreased. No longer were team members shifting from one story to another and back, but rather exhibiting a laser focus on the 3 open stories. There was a sense of urgency in the team room that was lacking beforehand. We knew that in order to open another story we had to finish one of the existing 3, and it helped foster collaboration. Team members would help each other to wrap things up, rather than jump around like they had in past iterations.

Now the downside of this was that at times the urgency turned into anxiety and we exceeded the WIP limit. When this occurred, we would address it in the iteration retrospective to see if we could uncover the root cause of exceeding our WIP. Those conversations generally lead to process improvement that may not have been discussed otherwise.

 

 

 

It doesn’t replace your current SDLC

Kanban is applied to what you do now. Purists may argue that applying it to 2 week iterations is not enough, and that you need to break out of the time box. Eventually, I can envision this as it seems like the natural progression, but it happens on your time schedule, when your team is ready.

So go ahead, dip your toes in and see if you like it.

line

Managing Impediments

Wednesday, January 19th, 2011

This week I met up with Joe Little from Kitty Hawk Consulting. We talked about Agile beyond software development. I argued that core conceptions of Agile are used everyday in every function of an organization.

Think of your own work week (an iteration). You have a series of items to get done (stories). Some are more important (high priority) and some less (lower priority). At the start of the week (sprint kick off) you set out to work on items which are more important (high business value). As you knock off items from your to-do list, you may hit a road block preventing you from completing it (impediment). You then rely on your manager, or someone else, to help you overcome that road block (IRT – impediment removal team as Joe calls it). At the end of the week you review your progress and identify what could have been done differently (sprint review).

Of course, a PM tool isn’t the place to track everything. But then our discussion led to realizing that impediments should be tracked. And that impediments should be prioritized based on how much impact its removal has on improving velocity. In Joe Little‘s own words:

We prioritize the ones, which if improved or removed, will increase the velocity of the team the most. The more complex answer is: “The ones that give the best cost-benefit ratio.” And the benefit is the improved velocity (mainly) and the cost is (mainly) the cost to reduce or remove the impediment.

At Planbox we already tracked impediments as items (we track almost everything in Planbox). But we marked them as bugs. However in light of this discussion, we created a new type called Impediment. That is now available for you to use. Unlike other types, the Impediment icon is in color so you can quickly spot it. And with Planbox’ powerful filtering, you can quickly identify impediments for multiple initiatives and projects in a snap. This gives you a basis to review and prioritize impediments.

In his post, Joe goes on:

So, for impediment management and reporting, would it be good to relate the impediments removed with the increased velocity? Yes, rather obviously as soon as you ask the question, although exactly how might be a bit of a problem. But, if managers had this info (and teams too), would it affect behavior in a positive way? We think so, strongly.

Well now in Planbox you can have that information provided you track impediments. And hopefully we’re one step closer at turning Agile the entire organization, not just development.

line