Software professionals are not Lego bricks. |
Isaac Socalich wrote a blog post taking about “Legacy thinking” holding back agile adoption at organizations. He cites the way projects are funded saying accounting practices lead organizations to fund and allocate resources only once around a product, project, or process improvement. In short, a project has a start, middle, and end. The people, funding and output of the project are cells in a spreadsheet which manages the project.
This legacy financing model is short sided, counterproductive and the antithesis of the agile movement. The Agile manifesto stresses “Customer collaboration over contract negotiation,” with legacy financing of projects every activity is reduced to contract negotiation. The project is conceived with unrealistic expectations. The deadlines for completion do not reflect the opinions of those doing the work. Customer considerations are ignored and the funding is at best a guess done by an accountant. It is no wonder so many software projects fail.
The most aggravating part of legacy thinking is that treats consultants and people who do the work as machine tools which can be replaced when they are no longer useful. Teams are created and disbanded based on funding formulas rather than business needs. This means technical professionals are being treated like mercenaries to build software. This also creates technical professionals who have no personal investment in the products they are creating. They are temporary workers billing hours and doing work with no real concern for quality.
For example, an off-shore team is working on software and because of a lack of funding they are disbanded. Four months later, the finance department restores funding and a new team is spun up. The original developers are gone along with the two years of experience they had on the project. The organization now has to spend the first six months of the project training the off shore team about the business and navigating the legacy code. The remaining six months of funding is spend attempting to do a year’s worth of labor. Quality suffers, deadlines are missed and the customer is dissatisfied but the project was correctly funded by the business.
Software teams should be professionals invested in the business and each other rather than disposable Lego bricks. Projects should be spun up and spun down being given to these project teams. These teams should remain constant while the projects come and go rather than the other way around.
This is why I like Benjamin Day’s approach so much. Instead of setting arbitrary deadlines and features to be done by the development team which has no investment in the success of the project, the team is permanent with growing business knowledge and technical skills who take on projects as they are funded. The business people also concentrate on setting priorities of what gets done. The project is not thrown over the wall for IT to figure out or fail. Finally, the business has the right to cancel the project if it is not working. The team remains to take on the next challenge. The business either discovers it has working software for the customer and does not need as much funding saving money or has been making a poor investment and can cut its losses.
Over the last fifteen years the Agile Reformation has made great strides in making software development better but it appears that business suites and finance teams are not changing their processes to accommodate this new approach. They do so at the risk to their own business. Survival is not mandatory and these legacy finance issues will be a cancer in many businesses in the future. It is up to us in the agile movement to try and help those worth saving. Otherwise, technologists will be condemned to careers of temporary employment, failure and frustration.
Until next time.