What Do These Problems Mean?
Taken together, these problems are making it harder and harder for companies and teams to establish an effective way of working. The processes are becoming a barrier to change rather than an enabler. The solutions being produced don't really address the needs of development teams. A lot of good ideas are arising in the industry; however, other good ideas are being discarded in a vain attempt to be fashionable and to be seen as keeping up to date.
Each of the problems outlined leads to paradoxes and contradictory behavior. For example, given that people don't read processes, why do so many people write them? Agile methods have been designed to rely on tacit knowledge instead of explicit knowledge; still, agile experts spend much of their time writing books and processes.
Lots of people are making lots of noise. Every practice that appears is labeled as a "best" practice. Every tool is presented as a solution to all the problems. But are we really moving forward? The industry is not really getting any better at developing software, the problems are just getting moved around. There is no firm foundation of first principles and cracks are starting to appear. The longer you spend in the industry, the more and more the success of each new process looks like another case of the Emperor's New Clothesanother triumph of spin and marketing over innovation and substance. A lot of excitement and noise is generated, but if you look closely, there is very little new that is actually there.
There needs to be a better way to collect and share knowledge. If it only sits in the head of a few special people, it won't help us scale up. We need to break out of the patterns of the past and find new ways of capturing and sharing knowledge.
Imagine we can:
- Discover, collect, and describe the knowledge of thousands of experienced practitioners.
- Dramatically reduce the work to access this knowledge.
- Deliver the knowledge you need, and only that knowledge, when you need it and not before.
- Make practices smart, so that they actively help you to do your job better.
- Empower teams to create innovative and new ways of working.
- Exploit and build on existing practices rather than recycle and replace them.
The problems of the past then go away and we can really start to improve the way that we develop software.
Next Month
Next month, we examine a new way of capturing and bringing practices to lifeone that is not just an academic theory, but something that is already working and in place.