Monday, September 08, 2008
Is software development getting any better?
Ten years ago, much of the software development occured by folks who had at least ten years of experience. Nowadays, much of the development occurs by folks that are new to IT with only a few years under their belt. Regardless of the experience level, we still struggle with the fact that there are good developers and bad developers and that development is a process involving many people.
The challenge as I see it is to quantify the value proposition of non-developers as part of the development process and whether they have also improved or have adopted practices that ultimately have caused harm to the profession. Many are now starting to see the value of Agile software development while even more are savagely distorting its meaning within large enterprises. Agility isn't really about a process that is prescribed as much as it is about adopting a set of values, a concept in which many enterprises struggle with.
Agility at its core requires clients to define and map requirements efficiently while having the development team consume them efficiently. Better tools help, but faster typing probably helps even more. Yes, I am being faectious but someone really should do a study on this. Development is really still very much about the quality of the people on the team. In that sense, tools, enterprise architecture and CMMi processes have for the most part failed us. As a profession, we have failed to raise the abstraction layer significantly over the last ten years requiring the quality of the individual to also be higher than it should be at this stage of maturity.
HR practices have in many ways benefited our profession and at another level has caused irreparable harm. Does the average IT executive nowadays understand the distinction between proper programming and beling able to write software in a particular language? Way too many folks throw daggers at our IT outsourcing friends in India ranting about quality or lack of yet we haven't done a single thing to help them improve. Being able to kick a ball doesn't make you a footballer.
Nowadays, most folks in IT are not properly trained (when you see code passing a big array of data by value as opposed to by reference you understand my point) it makes the results they produce pretty poor in terms of quality. So good software development comes out of lots of practice, obviously, but also some formal training to build on to. If we keep reducing the amount of training that each of us receives while also removing opportunities for us to network with each other at conferences, do we hope that IT will improve simply by luck...
Links to this post: