Ziv's Law

"Specifications will never be fully understood."

Dr. Ziv Bar-Joseph

More formally, "Software development is unpredictable, and the requirements that a customer defines will never be the same as the requirements the customer actually needs."

Ziv's Law highlights that customers often do not fully understand their true needs at the start of a project, emphasizing the inherent uncertainty and evolving nature of software development. As a result, initial requirements are often incomplete, ambiguous, or subject to change as both the customer and the team gain deeper insights into the problem and its solution.

Impact on Agile Teams

Agile methodologies emphasize simplicity, efficiency, and delivering value quickly. Applying Occam's Razor in an Agile context encourages teams to:

  1. Iterative Development:
    • Agile teams must acknowledge that requirements will evolve. This is why agile uses short iterations (Sprints) to regularly deliver incremental value and adapt to feedback.
  2. Continuous Feedback:
    • Regular communication with stakeholders is essential to refine and adjust requirements as new insights emerge.
  3. Avoid Over-Engineering:
    • Agile teams focus on building what is necessary right now rather than trying to predict future needs. This reduces waste and allows teams to pivot when requirements inevitably change.
  4. Prioritization:
    • Agile frameworks emphasize prioritizing work based on the most critical and current needs, ensuring the team works on the highest-value features first.
  5. Collaboration and Transparency:
    • Agile teams and stakeholders collaborate continuously to ensure alignment and clarify changing needs, reducing misunderstandings, and missed expectations.

Scenario

A retail company requests an e-commerce platform where users can purchase products. The initial requirements focus on basic functionalities like a product catalog, shopping cart, and checkout process.

What Happens Next:

After the first Sprint, the team shows a working product catalog to stakeholders. During this Sprint Review, the stakeholders realize they also need a search bar and filters because customers won't scroll through hundreds of products manually. This wasn't part of the initial requirements.

Agile Response:

The team incorporates the new feedback into the Product Backlog, prioritizes it, and implements the search and filtering features in the next Sprint. By working iteratively and seeking feedback early, the team avoids delivering a product that misses a core functionality users expect.

Without iterative feedback and adaptation, the project might have delivered a platform that didn't meet customer needs, requiring costly rework later.

Summary

Ziv's Law highlights the unpredictability of software development and the evolving nature of customer needs. Agile teams address this by:

  • Working iteratively.
  • Seeking frequent feedback.
  • Focusing on collaboration and prioritization.

By embracing Ziv's Law, Agile teams can ensure they're not just building software, but building the right software. This leads to better alignment, higher customer satisfaction, and minimized waste.