Return to site

SCRUM: Release Planning and Predictable Delivery by Martin Hinshelwood

· scrum

Many organisations wrestle with the seeming incompatibility between agile and release management, and they struggle with release planning and predictable delivery.

Predictable delivery and agility aren't incompatible; it's a misconception.

It stems from resistance to change in organizations or overly enthusiastic Scrum Teams.

Agility is a broader business shift like lean manufacturing, offering a competitive edge when fully embraced.

It values transparency and adaptability over predictability, a core feature of the new model.

👨‍💻 Why is software so unpredictable

In software development, predicting project timelines is challenging due to the unique nature of each project.

Unlike manufacturing, software is always innovative 🚀, making it hard to forecast accurately.

However, analyzing past delivery history for similar projects can help improve predictions.

While planning can enhance accuracy, it won't guarantee it.

Software development is a creative process, much like making a movie.🎬

Both require a Director (Product Owner), a Producer (Scrum Master), and skilled teams (Scrum Teams) collaborating, using storyboards, and sometimes experimenting.

The goal is to stay on budget, meet deadlines, and make a profit to continue the process.

👍 Accept the lack of predictability

In software development, unpredictability is natural.

Estimating tasks as Small, Medium, or Large often leads to size discrepancies.

The No-Estimates movement simplifies this to Small or too big for a Sprint.

To improve forecasting, simple activities can help, but they require a cultural shift and participant courage in the organization.

🔎 Focus on continuous quality

Maintaining software quality can be challenging because it's not always visible, unlike physical products.

Pressure to meet deadlines often leads to reduced code quality and the accumulation of Technical Debt, causing complexity and more bugs 🪲 in production.

💡 To address this, teams should:

1. Prioritize clear, well-defined requirements (follow INVEST model).

2. Let developers reject unclear or oversized backlog items for refinement.

3. Establish a clear Definition of Done (DoD).

4. Embrace Test-First practices like TDD or ATDD.

5. Use fixed-length iterations for predictability.

6. Avoid separate teams for testing or maintenance.

7. Manage dependencies effectively.

8. Utilize a modern source control system with DevOps capabilities.

These strategies improve software quality, reduce Technical Debt, and maintain predictability and agility.

Full Article 👉

Udemy 👉