Product v Project Focus in Software Development
Product v Project Focus in Software
Development
Many IT
organizations use a traditional project approach to software development. Agile
success is dependent on forming product teams that have these characteristics:
- A defined focus area (application, domain, system, etc.)
- Persistent over time
- Cross-functional skillsets, giving it the ability to deliver a fully baked solution in each iteration
- “Concept to cash” responsibility—taking work from early discovery and design steps through delivery and into production deployment and operational support
Product
|
Project
|
|
People
|
Team is primary means of creating
value. They stay together over a long period of time and over multiple
“projects” as a self-organizing unit.
|
Treated as specialists in functional silos;
focus is on 100% utilization (watching the runner, not the baton). Spread
thin across multiple simultaneous projects, each competing for his or her
attention. Death marches and heroes are common.
|
Customer
|
Integral part of team; key to defining value
and providing feedback on deliverables. Partners with team to define
roadmap in terms of business value.
|
A request submitter. Incentivized to
create large project requests because they get one shot at success, then
relegated to back of line. Confused about who they can get info/updates
from.
|
Demand Management
|
One prioritized backlog per product.
|
Repository of an unlimited number of
requests of all shapes and sizes. Plan-driven resource allocation.
|
Delivery
|
Iterative and incremental with focus on
highest value soonest. Opportunity to change priority regularly.
|
Unpredictable and unreliable. Project at
constant risk of being put on hold or deferred.
|
Quality
|
Integral to every work item; owned by the
entire team. Benefits of collective code ownership and continuous refactoring to reduce tech debt.
|
Most frequently sacrificed characteristic in
a plan-driven, deadline-oriented project. Highly variable from project
to project because a continuous improvement process is lacking.
|
Intangibles
|
Higher level of commitment from the team due
to higher levels of ownership and accountability.
|
Lower commitment levels due to a sense that
“this project will get put on hold before its finished;” and “we were given a
set of mandatory requirements that we just have to get through.”
|
Continuous Improvement
|
Teams inspect and adapt each sprint
cycle. They evaluate all aspects of the product, including feature
quality, defect level, tech debt level, and architectural integrity.
|
Project team disbands and members move on to
next project. Long cycles and unique work mean no opportunity to regularly
inspect and adapt. Ad-hoc teams mean individual performance standard and
improvement path. Hero culture.
|
Passion Level
|
·
Missionary
·
Problem solver
·
Innovator
|
·
Mercenary
·
Do the minimum amount required to
get sign off
·
Hack
|
Plan-driven
traditional project approaches apply industrial process efficiency principles
and practices that are poorly aligned with the realities of software
development. Agile product teams are more aligned with principles and
practices that work best for the type of creative, problem-solving work that is
software development.
The choice of
product teams over a traditional project approach to software development
creates a foundation for achieving organizational goals of high quality
software delivered on a regular, predictable cadence, and highly engaged and
focused people.
Here's a great presentation by David Hawk at Keep Austin Agile 2017:
Here's a great presentation by David Hawk at Keep Austin Agile 2017:
Comments