The General Idea
As a mob we put a lot of effort into increasing our productivity and capabilities. In other companies I have worked, the improvement of capability seemed to be a second class citizen to “getting work done”. When looking at the number of repetitive tasks a typical dev team does you may find that the potential for improvement has been completely ignored in favor of the continuous manufacturing of software. Templating, Code generation, easy configuration, and automation of typical maintenance tasks are key factors in eliminating waste in software development.
Repetitive Code and Templating
In particular the mentality a development team has around increasing their productivity can dramatically affect their output. Complacency is a key detriment, in a perfect world a developer who writes boilerplate code over and over should template it in some way, and a Mob that writes boilerplate code over and over will waste that much more time if they don’t. Ideally the Mob I work in writes a template in the development environment every time we notice a repetitive coding task. Templating solves the smaller problem however if a group creates and maintains a large number of individual projects they will quickly notice the need for code generation and easy configuration.
Maintaining Configurations and Automation
When working with applications that require continuous configuration changes, be sure to make it easy for a customer service department or even the product owners to configure the changes themselves. Much of the waste I have seen in the past has revolved around groups of developers being OK with the idea that they will have to take 2 to 4 hours out of their day to manipulate configurations. With a Mob it quickly comes into focus that the time being used for configurations is worthless and it needs to be cut out or automated out of the daily routine.
Maintaining Code and Permissions
Finally I want to talk about working on maintenance tasks which is closely related to configuration. Adding permissions for a user to use an application is unacceptable for developers to be doing a production environment. A developer should know how to do this in order to test the environment, but it should not be part of their daily routine. Changing code regularly in the same place repeatedly begs for the inspection of a team and the automation of tasks that would otherwise eat up development time.
Conclusion
Create an environment that can only move forward, and eliminate the idea of a “treadmill tasks” or tasks that are repetitive and could otherwise be automated in some way.