Marc Andreessen provided some insights into the importance of software and the software profession’s ability to meet the need at “Why Software Is Eating The World” , http://goo.gl/ob2Cvx
Scrum facilitates control through frequent, regular inspection and adaptation of transparent software functionality. Transparency means the software is ready. It can either be immediately deployed or built upon without regression. It has no technical debt. Transparency mandates modern engineering practices and tools, and application of enlightened value-driven management.
I’ve found that most software developers do not have these skills. For example, the concept of building code from requirements and specifications that are then used as tests is incomprehensible to many.
Our shortcomings were surprising to me. When I rolled out Scrum, I thought that the excellent developers that had been stifled by waterfall processes would emerge, and we would again do great work and build great software. Much to my surprise, many never had those skills or had lost any skills they had. The pressure of “get it all out now, cut quality to do so” had reduced most developers to unskilled, unprofessional, angry drones. The larger the organization, the worse the situation as “mediocrity scaled.” Organizations whose software is only five years old are already crippled by technical debt.
Our society, infrastructure, organizations, and all products rely heavily on software. It is the last scalable resource, and everyone is flocking to use and make money from software and software enabled products. My experience helping organizations improve the value they can generate from software leads me to conclude:
A software profession governing body is needed. We need to formalize and regulate the skills, techniques, and practices needed to build different types of software capabilities. On one side, there is the danger of squeezing the creativity out of software development by unknowledgeable bureaucrats. On the other side is the danger of the increasingly vital software our society relies on failing critically.
We can either create such a governance capability, or the governments will legislate it after a particularly disastrous failure. I am not happy proposing this, hoping that skills would emerge faster than need. However, the gap is going the other way, with needs outpacing emerging skills.
If I were on a team, I wish that I knew the level of the developer that I was bringing on board, instead relying on personal references and “the usual suspects” to avoid getting swamped by unfounded braggarts.
My prediction is that if we don’t do something, the government will. The impetus will be the disaster that could have been avoided by better software quality. A government software-regulation bureaucracy would be an equal disaster.