El Correo Libre Issue 8

ORConf has come and gone for another year, and first of all the FOSSi Foundation would like to thank everyone who attended, presented and sponsored. The event saw 30 talks and a dozen lightning talks…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




How to Reduce Software Development Waste with Scrum

Software development is a complex process with a lot of uncertainties. Developing a product that creates value with the limited resources is quite challenging. We all try to maximize value creation with the available resources. But ‘Waste’ is the opposite of ‘Value’. Whatever feature, functionality, or process step that adds no value or is not being used, should be considered waste.

Scrum encourages the team to reduce waste from product development and improve productivity. As a result, the team will not only be able to deliver more features but hopefully more value with the same resources.

In their book Lean Software Development: An Agile Toolkit, Mary and Tom Poppendieck expertly correlated the 7 Wastes of Lean Manufacturing to the 7 Wastes of Software Development. And from my experience as a Scrum Master, I was able to facilitate my team to reduce the waste with guidance from Scrum Theory and Values.

Any incomplete work which doesn’t satisfy the Definition of Done (DoD) is marked as Partially Done. Partially done tasks add up as waste because at the end of the sprint those tasks don’t add any value to the product. Although the team has spent resources.

One common scenario we find is the dichotomy between development and testing. When the developers are done with their development they hand it over to the tester and feel like their job is done. If the testing team cannot finish the testing in time, the task doesn’t get completed. Usually, the testing team gets the blame for it. But in an ideal situation, both the developers and testers have to take responsibility. They have to collaborate to complete as many tasks as possible according to the DoD.

Another common thing you will see in product development is to develop features assuming they will be used by the users. But they end up being unused. Eventually, additional features increase implementation time, code complexity, and potential failure points.

Gold Plating by developers is a common phenomenon where you will find Development teams building features that were not originally requested by the Product Owner or Customer.

Software development is a complex process and every product is different from the other with different challenges. But still, there are some common business processes like payment, e-commerce checkout, search, infrastructure setup which are used frequently in multiple products or services. If a developer tries to reinvent the wheel of a common business process then it would be a waste.

Teams misunderstand the Agile Manifesto and try to implement the anti-documentation pattern. As the product matures the team struggles to maintain all the knowledge of the product. As a result, if any regression bugs come in, they have to relearn the implementation again to resolve it due to lack of documentation.

Hand-offs are a very common part of software development. One type of hand-off is where one developer transfers his half-implemented feature to another developer. An even worse hand-off is from one team to another team when the team doesn’t have the skills to complete the story.

Hand-offs result in information loss. We can’t always avoid them, but we can try to optimize them.

Delays cause waste by causing extra work. Delays that prevent work are obvious sources of waste, but also remember that a delay could be a pause in between hand-offs. For example, functionality for a particular project is complete, but the stakeholders put off reviewing the work and later find issues. It forces the team into extra work by making them return to the requirements, mindset, and flow of the assignment after believing that it had already been completed.

Defects are one of the major wastes. It is not possible to eliminate the defects but we can take steps to reduce them. From my experience, defects occur due to lack of Definition of Done, lack of Acceptance Criteria, lack of proper testing process or team. There is a common practice between software teams to bring in the testing team at the later stage of product development.

It is not possible to eliminate the wastes, but the objective will be to reduce them.

As a Scrum team, everyone should try to improve themselves to minimize wastes. And it should be a continuous effort.

Add a comment

Related posts:

How to pitch your company in the screening interview to a prospective buyer.

I have gone through many screening interviews in the process of selling my company and through the process of M&A deals of our customers as a consultant and a strategist. While there is no one way to…

Can an appraiser kill a mortgage because of mold?

Our offer on the home was accepted, we got a commitment letter for the loan, and we had the apprasal done. The house appraised higher than the price we offered, so all looked good. We signed the…

What Comes From Silence

A prayer to receive an unpretentious revelation.