Frequent releases help buy down project risk while making valuable software capabilities available sooner.
Table of Contents
Agile is the default software development approach worldwide. The foundation upon which Agile approaches (e.g., Scrum, Kanban) rest consists of the Agile Manifesto for Software Development and the 12 Principles of Agile Software. We consider practices that align with the Manifesto’s values and underlying principles to be Agile. Unfortunately, too many organizations do not achieve the benefits of agility because they engage in the mechanicsof an Agile approach without understanding and implementing its foundational values and principles.
One of the most common examples of this disconnect between Agile software development practice, values, and principles is organizing work into iterations or sprints while releasing infrequently, often only towards the end of a project. By release, I mean making new software functionality available to customers and end users. This practice runs counter to the third principle of Agile software development:
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
The 12 Principles of Agile Software Development: https://agilemanifesto.org/principles.html
Agile Empiricism
Agile software development teams do not immediately release everything they develop. Sometimes they must wait on external technical dependencies. Other times, customers and end users are not ready to accept new functionality. Examples include:
Users may need training on new functionality
Business and mission processes and workflows may need to change before release
Project sponsors and stakeholders may decide that a particular release candidate is not what is needed or desired
However, product management/owners, sponsors, and stakeholders should strive to release valuable business or mission capabilities frequently, cost effectively, and in time to be valuable. You see, it is not possible to determine the actual business or mission value of a software feature or capability until actual customers and end users use it to achieve desired outcomes. Until then, software features are hypotheses of what product teams believe will best address customer and end user needs.
Allowing too much time to pass before exposing an evolving solution to target customers and end users risks developing unwanted and/or under-performing features and capabilities. Since Agile projects are controlled primarily by managing scope, losing touch with customer and end user needs translates into:
Wasted effort
Higher development, testing, and operational costs
Agile development is empirical. In other words, Agile teams monitor progress, make decisions, and act based on lessons learned from previous releases. In Agile efforts, customer and end-user input and feedback inform planning, implementation, testing, and release of software features and capabilities. Thus, Agile teams deliver and release relatively small increments of functionality within short time frames (weeks). They continually gauge the level of business or mission value software release increments provide and how well those increments perform relative to technical specifications.
Agilefall
The less frequently software development teams release, the less “Agile” a software project becomes. The project increasingly resembles a traditional project management / Waterfall project.
This conflating of Agile and Waterfall is often referred to as Agilefall. Agilefall is not a formal SDLC approach. Thus, there is no set of best practices to guide its implementation. In fact, Agilefall is an Agile anti-pattern.
The typical Agilefall scenario involves Scrum Teams developing and testing system components for eventual integration, deployment, and release to production. Software teams develop and deploy components or portions of components every iteration. They may do some degree of integration during development but deliver and release little to nothing of business or mission value to customers and end users until near the end of the project. Customer and end user input and feedback do not inform iteration planning.
Agilefall typically leads to a divergence between what the solution offers and customer and end user needs. It also leads to costly problems during integration and testing since development teams have fewer opportunities to integrate what they develop and to test those integrations. Agilefall is, in essence, a Waterfall project with software teams performing Scrum “mechanics”.
Agile Delivery
Agile software releases are feature based, not component-based. Instead of delivering system components, Agile software teams deliver features. Features are cohesive and complete slices of system functionality capable of performing useful work from the perspective of customers and end users. This approach to value delivery ensures that:
Customers and end users gain access to valuable functionality early and often
Lessons learned from previous releases inform future releases
The more frequently software teams deliver and release, the more opportunities exist to course correct planning and execution. Requirements are often fuzzy until members of the stakeholder community can see and experience functionality for themselves. Problems are easier and cheaper to fix when caught early in development.
DevOps
DevOps is an Agile implementation of the SDLC. It facilitates Agile’s iterative and incremental delivery model. DevOps leverages automation and a culture of close collaboration between development and operations teams to:
Promote faster and more frequent deployment of useful capabilities through delivery of small increments of business or mission value
Apply lessons learned and insights gained from customer and end-user interaction with released software
Avoid time-wasting hand-offs between phases and teams
Accelerate development, testing, deployment, and release of software features as well as their integration into complete and cohesive systems or solutions
Conclusion
Frequent releases help buy down risk across the entire SDLC while making valuable business or mission software capabilities available sooner. DevOps practices enable this value delivery approach. The best Agile software teams release so frequently, their releases approach a continuous flow.
The promise of Agile is to deliver software capabilities faster and more cost effectively, while improving quality and alignment to customer and end user needs. Keeping this promise requires adherence to fundamental Agile values and principles, regardless of the chosen Agile approach.
Avoid these Product Owner pitfalls to achieve greater product clarity and better team execution.
Table of Contents
The product owner is one of the three roles defined in Scrum: Product Owner (PO), Scrum Master, and the Development Team. The three combine to form the Scrum Team.
The PO synthesizes the needs of product sponsors, stakeholders, customers, and end users (which I refer to as the Stakeholder Community), with input from the Development Team, into a coherent, viable, and executable product vision. The product vision guides Scrum Team decision making.
POs fill the “The Product Management Vacuum” between company/organizational vision and strategy and the work performed by development teams. Effective POs lead conversations about which digital capabilities to develop and why.
Ineffective POs typically exemplify these four characteristics:
Lack understanding of the target business/mission/market
Lack a product vision
Struggle making tough choices
Are not empowered to make decisions
Lack Understanding of the Business / Mission / Market
The PO is “the voice of the customer” for the Scrum Team. This means POs advocate for the needs, expectations, and desires of customers in the product’s business, mission, or market segment. They define and communicate requirements from the perspective of customers and end users. They can only do so if they posses a deep understanding of the relevant business, mission, or market. In a choice between deep business, mission, or market understanding and technical knowledge, the former trumps the latter.
Ineffective POs lack intimate business, mission or market knowledge. Thus, they often fall into a proxy role between Stakeholder Community members and the Scrum Team. Rather than driving product vision definition in collaboration with the Stakeholder Community and the Scrum Team, they merely document requested features. They struggle to explain the value of requested features or guide Scrum Teams as they learn the business, mission, or market domain.
Lack a Product Vision
A product vision communicates the desired end state of a product in business or mission terms. Possessing a deep understanding of market, customer, and end-user needs is crucial but not enough. The PO must leverage that understanding to develop and evolve a product vision. An ineffective PO either does not see the value of developing a product vision or does not have the skills to do so.
Struggle Making Tough Choices
Making choices about the product is difficult without a clear product vision. Having one enables the following decisions:
Prioritization the Stakeholder Community needs, expectations, and desires
Definition of features likely to address Stakeholder Community needs, expectations, and desires
Prioritization of features into valuable deployable capabilities
Determining which capabilities fit within product scope (when to say no)
A product cannot be all things to all people. Tough decisions about what to include in a product offering are sometimes necessary. Competing priorities and different levels of power or influence among Stakeholder Community members can make this difficult. An effective PO fosters a collaborative atmosphere of give and take while holding firm to a carefully-crafted and evolving product vision. This responsibility goes well beyond inventorying potential features.
Not Empowered to Make Decisions
The most glaring characteristic of ineffective POs is that they are often not empowered to make product decisions. This goes back to the earlier point about POs playing a proxy role. In this case, the proxy role is between the actual decision maker(s) and the Scrum Team.
If the PO does not “own” the product vision, someone else does. Often, organizations cede ownership of the product vision to development teams. This is a dangerous situation in any Scrum project because Scrum/Agile projects are primarily scope driven. Without guidance, development teams implement what they think is important and necessary in ways that are most obvious and straightforward to them. This leads to disconnects between what teams implement and the needs of the Stakeholder Community. It also makes it difficult to determine the business or mission value of released capabilities and when capabilities are complete.
Conclusion
The PO brings together people, technology, and processes to develop valuable software capabilities. A product is far more than a collection of related features.
In Scrum, the product is the result of continual verification, validation, and evaluation of increments of capability delivered iteratively. The product evolves cross increments and iterations/sprints based on an evolving product vision informed by input from the Stakeholder Community, development teams, and real-life results/outcomes attained.
Effective POs are empowered to lead product direction, possess enough business/mission knowledge to guide the Stakeholder Community and Development Team, and have the “soft skills” necessary to foster collaborative discussions about needs and negotiations over product features.
Agile Cheetah just added a YouTube channel to our list of platforms. This is another way for us to share knowledge about Agile, DevOps, and organizational agility.
You can subscribe to the channel directly from the watermark link in lower right-hand corner of the video below. Visit the channel and don’t forget to like the video and click on the notification bell to ensure you don’t miss future videos!
Both decompose project scope in very different ways.
Table of Contents
Many organizations steeped in traditional project management culture struggle to adopt Agile’s product management approach. One of the biggest cultural stumbling blocks is the difference between how traditional project management and Agile treat project scope. This is best exemplified by the differences between the Work Breakdown Structure (WBS) and Scrum’s concept of the product backlog. This article describes both tools, compares and contrasts them, and makes the case for not conflating these two methods of accounting for project scope.
What is a WBS?
The PMBOK® Guide—Third Edition defines a WBS as:
“A deliverable-oriented hierarchical decomposition of the work to be executed by the project team to accomplish the project objectives and create the required deliverables. It organizes and defines the total scope of the project. Each descending level represents an increasingly detailed definition of the project work. The WBS is decomposed into work packages. The deliverable orientation of the hierarchy includes both internal and external deliverables.”
PMBOK® Guide—Third Edition
A WBS is a planning tool that helps identify, document, and present the total scopeof a project. Scope is one of the three project management constraints colloquially known as “The Iron Triangle”.
The Iron Triangle represents how scope, schedule, and level of effort/resources act as mutually-dependent project constraints. Traditional project management attempts to predict most, if not the entire, project scope prior to project execution. Later, planners estimate the level of effort required to complete planned tasks and deliverables and build a project schedule based on those estimates. The resulting three values feed calculation of project cost.
WBS Structure
A WBS is most often depicted as a hierarchical tree. Every node in the tree is called an element.
Depending on the type of WBS hierarchy created, project scope may be organized in terms of:
Project/program activitiesnecessary to deliver deliverables (Verb-Oriented)
Product componentsthat make up a deliverable (Noun-Oriented)
Time-bound phases of the project plan
A mix of the previous three types
The root of the tree (WBS level 1) represents the entire scope of the project or product deliverable. From there, the main branches/elements of the tree (WBS Level 2) are structured in accordance with one of the four types of WBS hierarchy types listed above.
WBS Decomposition
The tree expands as higher-level elements are decomposed into smaller constituent elements or components. Each element represents 100% of planned work and deliverables for that element. Child elements collectively represent 100% of the scope represented by their parent. Decomposing across elements just enough to facilitate project scope definition, without over-specifying the project or solution, while accounting for the entirety of project scope, is an art honed by experience.
Mapping to schedule and Resources
At the lowest level of each branch of the WBS hierarchy are work packages. Work packages map project scope (deliverables and activities) to project schedule. A work package includes schedule activities and milestones required to complete the associated deliverable or work element/component. In turn, control accounts map work packages to project budget (cost), facilitate the roll up of activities and milestones into an integrated schedule, and allow planners to assign specific resources (e.g., people) to specific elements of the WBS hierarchy.
Another artifact that ties the scope represented by the WBS to project schedule and resources is the WBS dictionary. The PMBOK® Guide—Third Edition defines a WBS dictionary as:
A document that describes each component in the WBS. For each WBS component, the WBS dictionary includes a brief description of the scope or statement of work, defined deliverables, a list of associated activities, and a list of milestones. Other information may include responsible organization, start and end dates, resources required, an estimate of cost, charge number, contract information, quality requirements, and technical references to facilitate performance of the work.
PMBOK® Guide—Third Edition
The WBS dictionary for figure 3 above may look something like this:
Types of WBS Hierarchies
Let’s delve a little deeper into the different types of WBS hierarchies.
Project Scope WBS
A project scope WBS decomposes the project work or activities necessary to produce deliverables or products. The first word of each WBS element name is a verb, such as, design, develop, test, etc. In figure 4 above, the project is organized by Software Development Lifecycle (SDLC) phases (Define, Design, Develop, and Integrate & Test) and includes the project management work necessary to orchestrate the work.
Product Scope WBS
A product scope WBS defines project work in terms of the components(physical or functional) that make up a deliverable or product. In this case, the first word of each WBS element name is a noun, such as, Module A, Subsystem B, Aircraft Engine, Fuselage, etc. Since each element represents a part of the overall product, this WBS type is sometimes called a “Product Breakdown Structure (PBS)”.
Time-Phased WBS
Large-scale projects can take years to complete. In such cases, it is reasonable and advisable to break up project scope and schedule into discrete phases. A “time-phased” WBS breaks up the project into major phases instead of activities. Rather than planning the entire project upfront, planners follow a “rolling wave” planning approach in which they plan the upcoming phase in detail while postponing detailed planning for later phases. Rolling wave planning affords the opportunity to improve current plans based on lessons learned in previous phases. It also provides a measure of flexibility to deal with changing project realities.
Hybrid WBS
Elements from the three other WBS types can be combined to create a “hybrid” WBS. Defense materiel project planners frequently use this type of WBS. Such projects tend to be long-lived, so time-phased branches may be included. Product-based branches scope complex products/deliverables. For activities that map to specific activity phases (e.g., SDLC phases), project scope elements are appropriate. A hybrid WBS may include project or program activities outside the scope of creating physical or functional product components or managing their creation. Examples of such activities include training, operations & maintenance, and facilities management.
WBS Type Comparison Chart
I summarize the WBS hierarchy types in the table below:
Agile Value Delivery
Before discussing product backlogs, I need to explain how Agile software teams deliver useful capabilities.
Agile software teams deliver iteratively and incrementally. They release valuable increments of software functionality over the entire development effort. These increments are “production ready” or “potentially releasable” software capabilities that customers and end users can start using right away. While not everything released by Agile teams must be user facing, they avoid releasing individual system components or portions of components that do not deliver real business or mission value on their own.
Solutions built by Agile teams grow and evolve over time. Each and every increment delivered is designed to work with all other increments, past and future.
Thus, Agile releases are primarily feature-based, not component-based. Rather than delivering system components, Agile software teams strive to deliver features. Features are cohesive and complete slices of system functionality capable of performing useful work from the perspective of customers and end users.
What is a Product Backlog?
A product backlog is an ordered queue of deliverables. The term product backlog is most associated with the Agile framework called Scrum. According to the Scrum Guide, the product backlog:
…is an emergent, ordered list of what is needed to improve the product. It is the single source of work undertaken by the Scrum Team.
https://www.scrumguides.org/scrum-guide.html
In this definition, the “product” is whatever the Scrum Team develops and delivers (application, system, solution, documentation, reports, etc.). A product backlog is used to track product deliverables.
As depicted in figure 9 below, Scrum teams take into account multiple considerations when ordering product backlog items.
Product backlog items represent features. Scrum teams decompose bigger features into smaller ones to better manage their development.
The highest-ordered items are most ready for implementation. The Scrum Team refined them well enough to implement them. Lower-ordered items are increasingly less ready for implementation the further down the product backlog they rank.
Comparing & Contrasting WBS vs. Product Backlog
Having level set what a WBS and product backlog are, I now discuss the similarities and differences between them.
Similarities
Of the four WBS types discussed in this article, the PBS is most like a product backlog. Both are product scope-focused and decompose larger deliverables into smaller ones.
Neither a WBS or product backlog depict dependencies between elements or items. The main artifact used to show dependencies between work activities and deliverable milestones in traditional project management is the project schedule. User story maps help organize Scrum product backlog items (epics and user stories) based on workflow and interface dependencies.
Differences
The main difference between WBS hierarchies and product backlogs is that the WBS is a tool for linking together project scope with the other two Iron Triangle constraints: schedule and level of effort/resources. A product backlog is strictly focused on tracking and ordering product scope.
Modern Agile productivity tools like JIRA allow development teams to document the work they perform, how long it takes them to do it, etc. However, that information is collected after developers pull the highest priority items from the product backlog and begin work. The product backlog is neither a repository for nor a source of work status information.
Another difference is that tasks and activities count as part of the scope represented by a WBS (e.g., project management tasks, meetings, reporting). While Agile software teams also deal with management and project overhead, those activities are not included in the product backlog. From an Agile perspective, those activities are not part of the product. They are necessary, yet ancillary activities to the work of developing, testing, and releasing software.
Finally, product-oriented WBS elements represent components while product backlog items represent features.
Disadvantages of Decomposing Product Scope into Components
Decomposing product scope into components has three major disadvantages:
Postponing integration and testing
Difficulty measuring progress
Formation of component team silos
Postponing Integration and Testing
In traditional software projects, there is often nothing valuable to test and evaluate, from a business or mission perspective, until most or all components are integrated into a cohesive solution. In traditional software projects, system integration is done infrequently, often occurring only once towards the end of development. Integrating components towards the end of a project often affords insufficient time to address problems.
Difficulty Measuring Progress
Traditional project management focuses on tracking tasks and activities and their level of completion (e.g., percentage complete). The rationale being that if everyone executes all necessary tasks and activities, on time, and in the right order, the project will proceed as planned. Therefore, project management’s job is to identify everything that needs to be done before the start of the project and enforce adherence to the plan.
The problem with applying this approach to software projects is that non-trivial software systems are significantly more complex than physical systems of comparable cost. This is because software systems can be developed and modified in infinite ways. As software systems evolve to serve growing numbers of requirements from growing user bases, their complexity increases, sometimes at a seemingly exponential rate. No amount of predictive planning can overcome this natural slide towards entropy.
There is also the issue of quantifying how much actual progress has been made. What is the difference between a component being 75% complete vs. 95% complete? If we have to wait until it is 100% complete and integrated into the larger solution before we can test and validate it, there is none.
Agile planning is adaptive, with short project planning horizons. Software development teams achieve fast and frequent releases by keeping releases small. Planning and releasing this way allows for more opportunities to test and validate deliverables and to fold lessons learned into ongoing planning. Best of all, the measure of project progress is delivery of valuable capability to customers and end users rather than arbitrary estimates of completion rates.
Formation of Component Team Silos
Each WBS element maps to a set or resources (one or more teams) that do the work. Establishing development teams for specific solution components often stifles cross-team collaboration and creates productivity bottlenecks.
For example, project management forms a dedicated database team to deliver a system database identified as a WBS component. The result is that the team’s allocated hours and skillset are segregated around delivering a single component. Often, the inefficiencies of managing dependencies between component teams outweigh the efficiencies gained from component team specialization.
Forming teams around system features is a staple of Agile software development. While component teams are sometimes necessary in Agile software development efforts, the default bias is towards forming feature teams. Under feature teams, system components form and evolve incrementally and iteratively, one feature at a time. Value delivery no longer depends on delivering the entire system. Instead, value delivery occurs one release at a time throughout development.
Agile Breaks the Iron Triangle
To achieve project agility, Agile breaks the Iron Triangle by making project scope variable while fixing resources and schedule. This involves shifting our thinking about managing projects:
The most optimal solutions reside in the nexus of value, cost-effectiveness, and timeliness:
Agile projects control scope and ensure teams satisfy requirements through ongoing planning and collaboration between development teams, project sponsors, stakeholders, customers, and end users. Sponsors control budgets and approve project roadmaps; stakeholders, customers, and end users work with development teams to define solutions; and development teams plan and build functionality within those constraints. The advantages of controlling projects primarily through managing project scope are:
Not sacrificing quality in favor of adhering to all three constraints of the Iron Triangle.
No budget or schedule surprises (since budgets and schedules are essentially fixed)
Basing project decisions on the actual business or mission value delivered and team performance rather than alignment to detailed (and possibly obsolete) plans
Conclusion
At the heart of the differences between traditional project management and Agile is the fundamental difference between project management and product management. Project management focuses on managing tasks and activities to ensure they complete on schedule and on budget. Product management focuses primarily on managing the product.
Many project and program managers are unaware of this difference. Implementation of Agile practices corrupted by traditional project management biases often leads to failed projects. Attempting to structure product backlogs like WBS hierarchies is one manifestation of this misalignment between traditional project management and Agile mindsets.