Know your Roots – Product Owner Lessons from Waterfall
The role of the Product Owner (PO) has become indispensable in the world of Software development. The modern PO ensures that development teams deliver value to stakeholders through prioritization, communication, and collaboration. Revisiting Winston Royce's paper Managing the Development of Large Software Systems helps us fully appreciate the nuances. Though best known for introducing the Waterfall model, Royce's insights go far beyond a single methodology, providing relevant lessons for Product Owners today.
Beyond the Waterfall
Contrary to popular belief, Royce was not a waterfall advocate, and he highlighted its limitations and emphasized the need for iterative feedback and adaptability. He advised against linear approaches and stressed the importance of engaging stakeholders and revisiting requirements during development.
Constant Communication. POs must continuously connect with stakeholders to refine and align priorities, development efforts, and business goals.
Evolving Requirements. POs must encourage team adaptability while ensuring alignment with the overarching vision.
Program Design
Royce introduced the concept of program design as a structured approach to software development. The entire team (Program designers, analysts, and developers) contributes to a meaningful design process by properly allocating time and resources. Teams should iterate requirements and preliminary design before final design, coding, and testing. This approach proactively identifies deficient or incorrect requirements early, reducing costly rework. The program design process unfolds in three phases:
Ideation: The Program Designer (Product Owner) conceptualizes the effort.
Team Engagement: The team collaborates to discuss and understand the proposed effort. Even at the risk of being wrong, teams should define and document requirements early in the process. They should define input/ output, methods, and functions.
Documentation: Write clear and informative documents to ensure every team member has an elemental understanding of the system. Keep records up to date.
The Importance of Documentation
Royce stressed the critical role of documentation, particularly in risk-averse environments like spacecraft mission planning (or Finance, healthcare, and government) where errors can be catastrophic. He outlined three reasons why documentation is essential:
Transparency: Verbal records are intangible for effective team and stakeholder communication. Written references clarify positions and provide visible evidence for decisions.
Development support: Documentation helps the team work towards building the correct things by providing a starting point, plans, and specifications.
Valuable testing: Teams can focus on identifying and resolving defects during testing rather than depend on developers to troubleshoot code.
Additionally, Royce pointed out that documentation is crucial for future-proofing software. Documentation provides a reliable source for developers when the software inevitably undergoes redesign, updates, and enhancements following release.
The Role of Feedback Loops
Royce explored integrating feedback into every development stage to drive a more valuable product. The PO guides stakeholders and teams with several key responsibilities:
Iterate delivery: POs must be advocates for iterative delivery and allow user feedback to inform development throughout the project.
Engage stakeholders: Align expectations by fostering transparent communication with stakeholders and the development team.
Translate requirements: Bridge the gap between business and technical teams, acting as the liaison to make requirements and deliverables understandable and actionable.
Create contextual Awareness: Understanding business context allows POs to prioritize effectively and make informed trade-offs.
Lessons for Modern Product Owners
Royce's work offers timeless lessons for today's Product Owners, even though his paper predates agile methodologies. POs should view software development as an iterative process using continuous feedback from and to the development team. Transparent communication transparency is the cornerstone of successful products. User-centric design and delivery allow teams to build valuable software. As the role of the Product Owner evolves, an occasional revisit to foundational texts ensures we build on accepted standards while adapting to modern challenges.
By Ryan Fish, Principal Consultant- Delivery Services