Agile Project Management and Product Strategy - A Case Study

Due to the length of this post, I’ve created a PDF version for those that would like to download it and/or print it out. Click here for the PDF version of Agile Project Management & Product Strategy.

Over lunch recently, a good friend and very experienced project manager shared his thoughts on managing software development projects when he said:

“Software developers are so hard to manage. They never do what I tell them, never report status and are always behind schedule and over budget. Most times, they never finish the project!”

I asked him to think about what he just said and to think about whether he is ‘managing’ the project or ‘leading’ the project (a project manager should be a good leader first and foremost). I then jumped into my philosophy on managing projects using a more agile mindset and finished with the following comment:

Perhaps software developers aren’t any harder to manage than any other function…perhaps it’s the system that has been put in place to manage the developers and their activities that causes the problems.

I believe most software developers are bright and hardworking people…but they tend to be put into situations that drain all of the initiative and drive they may have. Traditional software development methods (e.g., Waterfall, etc) can and have been used quite successfully in software development projects but the large up-front requirements gathering, milestones and end-of-project testing usually result in software that is late and buggy. Of course there are successful projects that have used these traditional methods. The majority of successful projects are those that are given the appropriate level of resources, people and time and give the product development team the ability to get their job done without much hassle. Some smaller organizations have a difficult time with these traditional methods because they aren’t able to fully resource the project and aren’t able to be as flexible and responsive with these methods.

I recently encountered one of these smaller organizations who needed some help crafting a product development plan. As you will see, we were able to change the development plan from one that delivered a revenue generating product in 12 months to one that delivered a product with ~85% of the same features in 6 months at less than half the cost. Oh…and we were able to capture $3.5 million in revenue after 6 months.

Case Study – Software Development

I was approached by a small technology company to see if I would be interested in helping them re-design their product development strategy to release a product within 6 to 9 months in order to beat their competition to market and gain an edge over their competition. The product had to be something that clients found useful, valuable and worth paying money for and needed to be able to compete with the ‘big boys’ that were moving into this space. It appeared to be a pretty daunting task: take a product that was planned for release in 9 to 12 months and have it ready for market in 6 months.

The company is a small startup focused on a niche market in the technology field product uses a third-party content management server package to serve up large amounts of data from the enterprise network. They had some very good developers and had hired a consulting company to develop a product development strategy to provide for a product release to their client base in 9 to 12 months. This same consulting company had been planning on actually doing the development work as well.

After reviewing the plan, the senior leadership team and board of directors felt that 12 months was much too long to wait to enter the market. They had heard rumors that some very big names in the industry were starting to make moves that would allow them to enter this niche market within 12 to 18 months and felt that they needed to be first to market in order to gain a competitive advantage in the marketplace.

I agreed to help with the project and joined the company in a consulting role to help them create a new plan that would see a product released within the next 6 months.

The Original Product Development Plan

On my first day with the company, I walked into the office and found myself staring at a very large Gantt chart hanging on a wall. The chart had the words “Product Development Roadmap” written across the top and looked just like every other Gantt chart ever created (e.g., milestones, resources, dates, timelines, critical path outlines, etc etc). My first thought was that least they understood what they were trying to do and had a plan. My second thought was ‘what are they delivering and when are they delivering it?’

I sat down with the team and over the next few days and discussed the product development strategy. I realized that the original development plan created with zero lead time (each task could only start when the previous task finishes). My gut feeling told me that his was done to lengthen the project and create more billable hours for the previous consulting company.

Since the plan was created using zero lead times, it required that a considerable piece of the network architecture design had to be completed before database design could be completed. In addition, a significant portion of the database design had to finish before any work on the CMS Integration could be started. The User Interface design could begin during Database design and was scheduled to begin after network design in conjunction with CMS integration.

As you can see from the high-level overview of the plan shown in Table 1, it would have taken 9 months before a product was available to demo and/or beta release to a client and 12 months for a final release.

Table 1: Original Development Plan

Task Timeline
Network Architecture 100 Days
Database Design 100 days
Content Management System Integration 160 days
User Interface 120 days
Demo to Clients 9 months from start of project
Documentation 30 days
Testing 30 days
Total 11 to 12 months from start of project

After reviewing the plan and talking with the leadership of the company, I started looking at methods to “bring the plan in” so we could provide a demo and beta release much sooner than 9 to 12 months out.

The original resource schedule for the development provided for 1 network architect, 1 database architect, 1 content management expert, 1 user interface ‘guru’, a documentation specialist and 2 QA specialists.

The New Product Development Plan

To create the new development plan, I visited a few key clients to gather requirements for features that they felt must be in the software in order for it to be valuable to them. After these visits, I sat down with the development team and created a “Top Feature List” to help us focus the development efforts on only those features that were the most valuable to our clients.

Interestingly enough, the items that ended up being the most important items for the clients were the last things to be implemented in the original development plan. It’s amazing what a little bit of client communication will do!

Using agile software development methods, common sense and the “Top Feature List” gathered from my discussions with clients, the team and I created a development plan. The new plan would allow for the most important (i.e., valuable) features that our key clients were looking for to be ready for release as a Beta release within 3 months.

Due to the small team size and the inability to bring in additional developers, some of the tasks still needed to be performed in serial but most of the tasks were performed in parallel with each other. Table 2 shows the new product development plan.

Table 2: New Development Plan

Start Iteration 1
Task Timeline
Database Design – DBA Resource 30 days
Network Architecture – Network Resource 45 days
User Interface – GUI Resource 45 days
CMS Integration – DBA Resource 15 days
Total Time 45 days
Demo to Clients 1.5 months from start of project
Start Iteration 2
Task Timeline
User Interface – GUI Resource 45 days
Documentation – Document Resource 15 days
CMS Integration – DBA Resource 45 days
System Testing- QA Resource 30 days
Total Time 45 days
Beta Released to clients 3 months from start of project
Start Iteration 3
Task Timeline
Network Architecture – Network Resource 45 days
User Interface – GUI Resource 30 days
CMS Integration – CMS Resource 15 days
System Testing – QA Resource 15 days
Total 45 days
Beta2 Released to clients 4.5 months from start of project
Start Iteration 4
Task Timeline
Network Architecture – Network Resource 30 days
User Interface – GUI Resource 15 days
CMS Integration – DBA Resource 30 days
Documentation – Document Resource 15 days
System Testing – QA Resource 45 days
Total 45 days
Final Release to clients 6 months from start of project

The budget for the new plan turned out to be less than half of the original budget, although we weren’t trying to dramatically cut costs, the shortening of the development cycle by half brought us considerable cost savings.

The outcome of the plan thrilled senior executives, investors and clients. Based on the first Beta release, we were able to book about $1.5 million in revenue that may never have been booked if we had used the original plan. The initial Beta release was nothing like the final release from the original plan, but it did provide the key features that the client(s) wanted to see.

The release after the final iteration contained about 85% of the features from the original plan. Think about that…85% of the product features in half the time at less than half the cost! That’s the power of agile thinking!

After the final iteration, the product was released to quite a bit of fanfare. In addition to the revenue we had already gained with the Beta release, we were able capture another $2 million in revenue from new clients and create a great footing for the company in the marketplace. At the time that version 1.0 was released, the competition was still mired in product planning and development and their release dates seemed to be at least another 12 months out.

Conclusion

After releasing version 1.0 and capturing $3.5 million in revenue, the company was able to attract quite a bit of interest from investors and potential buyers. They ended up being gobbled up by a much larger competitor for quite a bit of money (many times multiple earnings). I’d like to say it was all my doing…but it wasn’t…I just helped them to see a new way of looking at the development process.

Using agile methods allowed us to deliver real value to our clients and to our company by create a product in half the time. We were able to deliver $3.5 million in revenue because we focused on the needs of our clients and delivered those features that they thought were the most valuable.

That is what Agile Project Management is all about. Delivering value to clients.


Note to readers:
When I use the word ‘agile’, I don’t want to imply that I am explicitly talking about iterative or agile software development methods such as eXtreme Programming (XP), Scrum, Feature Driven Development (FDD) or other types of ‘Agile’ methods. Agile methods like XP and Scrum are the framework for my project management methods for managing software development projects but I am not a strict proponent of any one method or process over another. By using the word agile, I am trying to capture the frame of mind that someone should have to be able to accurately focus and respond to clients’ needs in today’s competitive world.

 

Reblog this post [with Zemanta]