Screan Driven Development (A Mixed Approach Scrum & Lean)
Tags: testing, agile, qualityassurance, automation
Published: 2022-01-13 12:26:57



Are you a developer, tester, manager? Whatever your rule is in the company, you absolutely don’t want to fail any sprint for any reason.

If you have been involved in a failed sprint before, then this article is for you, you will see what can make a Sprint fail and how to avoid that in future, and if you have never failed a Sprint, then perfect! I guarantee that you will find it interesting to learn a new methodology to try.

![Scrum](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xvyqora4nz01h7nq50c4.png)


## Hidden Wastes!

Let me tell you a story:

Once upon a Sprint in a company that follows a Scrum Approach, the scrum master told the team "_the sprint is running out of time and there are still some features that weren't finished yet, and there were also unresolved bugs still opened_".

The Development Team was in a hurry to finish the remaining features and solve the bugs, QA members were trying to finish the testing tasks, the time was tight, new bugs were reported, new code merged, fixed bugs reopened, the team tried hard, but sadly,

> “The Sprint FAILED!!!”
> 

Scrum master said that on the last day of the sprint after the 2 weeks passed and the team was waiting for the Retrospective meeting to discuss what happened during the sprint.

All team members were mature enough at development, testing, and estimation almost accurate all the time, so what went wrong to fail the sprint?

---


## What Went Wrong?!

![WWW](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/144uqyn6c0htt74j2jdp.png) 
`Image Credit(shorturl.at/byLPS)
`
In the Retrospective Meeting:

At the “**What went wrong?**” question in the Retrospective, those answers came up from the team members:

1- “**Some Stories were NOT clear enough and many scenarios were not mentioned, we spent a lot of time waiting for answers**”.

2- “**There were many Bugs and they needed a lot of time to be resolved and retested**” “QA Engineer”

From those points, we can conclude common issues that are related to a broader Concept that is (Waste)!!!

Now after this short story, let’s explain what "**Wastes**" really meant, what can introduce wastes in the Development process, consequences, and how to avoid them leading to **sustainable development**.

---


## The Lean Approach

![Lean Approach](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bae7900qnj68zccwxlcw.gif)

 
_[Lean Development] (https://en.wikipedia.org/wiki/Lean_software_development)_ is an agile framework based on **optimizing development time and resources**, **eliminating waste**, and ultimately **delivering only what the product needs**.

---


## Waste

![Wastes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4jxl24e14p5omrcnbc45.png)
             `image credit (shorturl.at/swAV5)`
 

“**Waste**” is any action or step in a process that **does not add value to the customer**.

There are 8 types of wastes identified by the Lean Approach, we will discover them one by one and show when they can occur and how to avoid them:

1. **Overproduction/ Extra features**
    - Problem: **More is produced than is required**
    - Solution:
  Only focus on what is needed now, prioritize the backlog, 
 and take ONLY the highest priority features and consider the 
 team's velocity.

2. **Over-processing**: **adding extra steps with no added value**
    - Problem. Need Approvals of more people than is necessary 
    - Solution: Reduce the steps required and remove the unnecessary ones that add no value to the feature and delay delivering it.

3. **Motion**
    - Problem: Moving tasks **more than necessary when doing work. Each time a deliverable is handed off, there is a potential knowledge loss.**
    - Solution: Having Cross-functional teams with generalizing specialists (T-shaped people), face to face communication, shortening feedback loops, and having a variety of useful **documentation** types for the feature (**API doc, user guides**)

4. **Inventory/ Partially done work**
    - Problem: Developers should not leave incomplete work.
    A feature is considered partially done if it has not:
       - **Documented**
       - **Deployed**
       - **Tested**
    - Solution: Redefinition of Done to include the previous
 3 points, apply the Kanban methodology **limit Work In Progress** (WIP) that any stage (Column/status) can hold for pulling new work only if capacity is available.

5. **Transportation/ Task switching**
    - Problem: Unnecessary task switching, each time a person working on a task switches between other tasks, there is amount of time being wasted to refocus on the working tasks.
    - Solution: Reduce the task switching to the minimum and prioritizing work to be done

6. **Talent Utilization**: 
    - Problem: Lose the Team members creativity due to ineffective allocation of responsibilities and tasks.
    - Solution: Always **empower team members**, **encourage them**, and pay attention to the allocation of the members.

7. **Defects**
    1. Problem: Defects are producing additional rework which is considered a Waste.
    2. Solution: Try to reduce the number of Bugs produced at each Sprint by applying Bug **Prevention approaches**, **Shift Left** for early bugs detection, and applying **TDD**.
8. **Waiting**:
    1. Problem: Any process that stops the project activity like inputs, delays in reviews, approvals, and testing.
    2. Solution: Reduce the waiting times to the minimum by **instant messaging**, **regular feedback**, and **applying test automation**.


---

## The Combination of Scrum and Lean

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hs27ykl51s3mtvmqdv4n.png)

The main issue with scrum is that the problems are not properly identified.

After each sprint, **during the retrospective meeting**, the team states what went wrong without knowing the root cause, so we can face the same issues repeatedly.

The gap filling between both approaches can be achieved by applying a new approach (**Screan**).

Firstly, as mentioned the importance of waste reduction following the **Lean** Approach alongside with **Scrum**, we can achieve that by:
- Mapping the Sprint Problems to the related wastes.
- After identifying the problems, start working on reducing the waste in your next sprint.
- Repeat the process at each Sprint's Retrospective to reach the optimum method that eliminates waste.

---    


## Conclusion:
![Continues](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/10v06kvif9kev4ur4srz.png)
 

   Imagine what we can achieve when reducing the previously mentioned wastes by **mixing Lean Development alongside with the Scrum Approach**, we will achieve stunning results through **Sustainable Delivery of Value** to the customers without having obstacles of wastes that impede the continuous  delivery.

   Give it a try in your next sprints and I’m looking forward to hearing that it helps you.

---


**References:**
- [Scrum Framework] (https://en.wikipedia.org/wiki/Scrum_(software_development))
- [Lean Approach] (https://searchsoftwarequality.techtarget.com/definition/lean-programming)
- [The 8 Wastes] (https://www.linkedin.com/pulse/eight-types-waste-lean-manufacturing-software-jordi-triquell)
- [Lean Retrospective](https://www.ministryoftesting.com/dojo/lessons/reducing-waste-in-scrum-and-improving-team-efficiency)

   Your contribution is highly appreciated.
Thanks for reading and happy improvement ❤️ ❤️ 😃
Feel free to reach out on [Linkedin] (https://www.linkedin.com/in/moaz-moharam/)