Software Development Best Practices

Removing Software Development Waste to Improve Productivity

One way to improve productivity is to reduce waste: objects, properties, conditions, activities, or processes that consume resources without benefiting stakeholders. However, reducing waste can be very challenging. People quickly acclimate to wasteful practices and waste is often hidden by bureaucracy, multitasking, poor prioritization, and invisible cognitive processes. To better understand software development waste, we conducted an in-depth study of waste at Pivotal Software, a large American software development organization, known for using and evolving Extreme Programming.

Frictionless Software Development

How Friction Slows Us Down

I once joined a project where running the “unit” tests took three and a half hours.

As you may have guessed, the developers didn’t run the tests before they checked in code, resulting in a frequently red build. Running the tests just gave too much friction for the developers.

I define friction as anything that resist the developer while she is producing software.

Since then, I’ve spotted friction in numerous places while developing software.