Pattern: Agile Product Development
The Business Owner I just discussed is used when we have Value Backlogs that are simply a flow of work, such as Backlogs of Bugs or service requests, for example. In these cases there is no need for Agility as we usually think of it.
However, we are often building Products that require some sort of Feedback Loop with the Client; in other words, we need some Agile Development. In this Pattern I will expand the Business Owner’s role to include working with a Client to develop a Product in an Agile way. When the Business Owner and Client have a Project Plan they are working with, I call the Business Owner a Project Leader.
A Client wants a Team to Build and Deliver a Product.
- There is a Client that wants a Product
- There is a Business Owner working with this Client
- There is a Well-Formed Team that will be building the Product
- Building the Product will be complex, for any of a number of reasons, such as:
- The Client does not have a firm grasp of the requirements, or
- The Well-Formed Team doesn’t know exactly what needs to be done, or
- The requirements are expected to change; they are volatile.
- There may (or may not) be Cost or Schedule constraints that “need to be met”. If there are, then this effort is called a Project…
There are two cases here: either there are Cost or Schedule constraints that “need to be met”, or there are not. If there are, the Business Owner manages them by preparing and maintaining a Project Plan, and we call the Business Owner a Project Leader. Basically, a Project Leader is a Business Owner who is also maintaining a Project Plan. For shorthand purposes, I will refer to this Role as the BO/PL.
In either case, follow the following Agile Process steps:
1. The Client and the BO/PL discuss what should be built next, put appropriate Items on the Client’s Value Backlog, and [if applicable] negotiate (or re-negotiate) the Project Plan.
2. The BO/PL moves some of these Items to the Team’s Work Backlog at a rate that will not overload the Team.
3. The Team builds a Product Increment based on the Items on the Work Backlog.
4. The Client Reviews the Product Increment.
5. If the Product Increment is acceptable by the Client for delivery, then the Team Cleans It Up and Delivers it.
6. If the Product Increment is not acceptable by the Client for delivery, then return to Step 1.
Discussion and Examples:
This type of process is Iterative, Incremental, and Agile:
- It is an Iterative process, since the overall process is repeated over and over — it is iterated,
- It is an Incremental process, since the Product is added to (incremented) every Iteration, and
- It is an Agile process, since the content of each Iteration is based on current knowledge.
This is a very simple Agile Development Process. During the Development, there is an ongoing creation of a flow of new Items being placed on the Client’s Value Backlog, based on the Client’s Review of the Product Increments and [if applicable] re-negotiations of the Project Plan. This Value Backlog is represented (to the Team) by the BO/PO, and is forwarded to them via their Work Backlog.
Simple Business Owner – no Cost or Schedule Constraints
Let me give a simple example for the case that the Agile Development is ad hoc, there were no negotiated time or money constraints — we just got done when we got done. This example is when my son and I (the Well-Formed Team) built garden beds for my Wife (the Client) one vacation. Every morning my son and I would get up, eat some breakfast, and then spend a few hours working on the garden. We would go inside to clean up for lunch, and my wife would come outside and look at what had been done. After my wife had wandered around for a bit (Reviewing the work), I (playing the role of Business Owner) would go out and talk with her to discuss what we should work on next. Then we’d all eat lunch and enjoy the rest of the day. We went through this process (Iterated) every day. After about 3-4 days, she liked what she saw, and the next day my son and I Cleaned Up the area, took tools back to the rental place, took the detritus to the dump, and so on. The day after that my wife took over the Garden (we Delivered) and started planting flowers. And now we all have a garden.
Note that this simple Business Owner is not significantly different from the one we saw before, if there is no Project Plan involved. Because of the Agile Process in use here, the Client is constantly working with the Business Owner to figure out what to do next. As in the previous Pattern, the Business Owner is merely forwarding these new Items to the Well-Formed Team’s Work Backlog at an appropriate rate.
Business Owner as Project Leader
It is very common that the Business Owner is actually a Project Leader, and I’ll give a few examples. The first one will be fleshed out in some detail, and the others are just suggestions for Projects — you fill in the blanks.
1. Let’s say you want to have your kitchen re-modeled, so you hire a General Contractor to do it for you. Then you are the Client and the General Contractor is your Project Leader. The Project could go something like this:
- You and the General Contractor draw up blueprints and sketches; pick out some floors, cabinets, counters, and appliances; and negotiate a price and schedule.
- The Contractor’s workmen (the Team) demolish the existing kitchen, dig into the walls, and start re-plumbing and rewiring the new kitchen. The workmen find mold in the walls, notify the Contractor, and the Contractor calls you in for a Review and potential Re-Negotiation.
- It’s not the Team’s fault that there’s mold, so either the price goes up, or you cut some corners. You choose to use less expensive flooring, and the price and schedule remain unchanged.
- The next day you go visit a friend and see some real cool appliances — not the ones you negotiated for — and you ask your Contractor about them. You do another Review of the kitchen and discuss how it could look. You both agree the new appliances would be great, and the Cost goes up $3000 and the Schedule pushes out 2 weeks because he needs to order the new Appliances from Germany.
- A week later the Contractor calls and offers you a stunning deal on some granite counter-tops that he has left over from a Restaurant job. They’re not exactly the color you want, so you go Review the kitchen and take a look at a sample of the counter-top. It’s not what you really want, but you can’t turn it down as it saves you $2000 and it’s available to be installed right now.
- Because of the new counter-tops, the tiles on the back-splash have to change as well as the overall paint scheme. These changes are no-cost, so you go for it…
- Finally, you get a remodeled kitchen. It is about 20% different from the way you originally envisioned it, it cost $1000 more than you originally thought, and it’s 2 weeks late. Believe it or not, though, you’re really happy… you got the mold taken care of, and you were in the loop every step of the way.
2. Fixing your car that was in an accident, where the Insurance Company has simply given you a check for $8000 to fix it with.
3. Landscaping your new yard because all you got with the house is one little tree and some sod. You have a self-imposed budget of $20,000.
The Project Leader (PL) role represents the ‘project management’ part of a Project Manager – it does *not* include the ‘people management’ part of the Project Manager. The Project Leader role, as I describe it, is based on the appropriate parts of the PMI’s PMBOK, which says that the Project Leader has two main responsibilities:
1. To Develop a Project Plan, and
2. To Update/Maintain the Project Plan throughout the Project so that it accurately reflects the Reality of the Project at all times.
And (to keep it simple) the Project Plan (the Plan) contains definitions and estimates for:
- Cost: The best, good-faith, estimate of what it will cost to Deliver an acceptable Product;
- Scope: The expected “content” of the Product’s Value Backlog; and
- Schedule: The best, good-faith, estimate of when the Team will Deliver an acceptable Product.
Usually, the Cost, Scope, and Schedule are Planning Values that are derived from Planning Assumptions that are made and monitored by the Project Leader. For example, the following might be the initial Baseline Values for a Release Plan:
- (Assumption) Baseline ReleaseSize = 1000 StoryPoints, and
- (Assumption) Baseline ProductionRate = 10 hrs/SP, therefore,
- (Derived) Baseline TotalHours = 10,000 hours ~ 5 person-years. Also,
- (Assumption) Baseline BurnRate = 1,000 hours/Iteration, so
- (Derived) Baseline Duration = 10 Sprints = 20 Weeks. And
- (Assumption) Baseline HourlyRate = $150/Hour, so
- (Derived) Baseline Cost = $1,500,000.
As the Release/Project commences, the Project Leader monitors and updates the Planning Assumptions to match the Reality being observed, derives new Planning Values, and adapts the Plan as necessary. This process often summarized by saying that the Project Leader makes sure that the Plan and Reality match. Using this formulation, we have:
- a bad Project Leader is one who tries to force Reality to match the Plan, and
- a good Project Leader is one who modifies the Plan to reflect Reality.
This Pattern requires good Project Leaders; that is, Project Leaders who update the Project Plan rather than try to change Reality. This is not easy, by any means. The following things are discussed and negotiated between the Project Leader and the Client:
- Contents of the Project Plan,
- Whether or not the current Product Increment is acceptable for Delivery, and
- What it will take for a future Product Increment to be acceptable for Delivery.
These negotiations often result in balancing trade-offs between the overall Scope versus the overall Cost and the overall Schedule, and these changed values are what is contained in the current Project Plan. If there is a contractual relationship between the Project Leader and the Client (with the Project Leader representing the Contractor), the final decision-maker about these trade-offs depends on the type of contract. Since the purpose of a contract is to balance the risks appropriately[^FAR], this means:
- in a Fixed-Price contract, the decision-maker is the Project Leader, as it is the Contractor who is absorbing the risk, and
- in a Time-and-Materials contract, the decision-maker is the Client, as it is the Client who is absorbing the risk.
I will use the term Project Leader (PL) throughout this book to refer to the Business Owner who manages the Product’s Value Backlog and is also accountable to develop and maintain the Project Plan. Remember that “accountable” means “can be held to account” or “must be able to explain the decisions involved” – it is not simply a blame-setting exercise.
Anyway, this Project Leader is a specific kind of Business Owner that we see…
[^FAR] : See the Federal Acquisition Regulation (FAR)