Talk in the industry is that there are too many "cowboy developers" who don't follow proven processes or methods, undermining the software engineering industry.
In the past week, I've listened to a few people talk about how software development practices are selling ourselves short. While various parties have different processes, the common goal cannot hurt the computing world.
Of particular note was a speech by Nathan Brumby from Software Engineering Australia (S:E:A).
At Borland Software's Thought Leadership Seminar last week, Brumby highlighted several key points about the software industry, and one in particular was the notion that CMMI accreditation would be a necessary part of the ISV development community in the future.
Brumby pointed out that large companies such as IBM — which it's Global services division has gained CMMI level 5 accreditation — will now start asking its partners and Independent Software Vendors (ISVs) to have similar accreditation. In essence, he said this would filter down throughout the entire industry.
Now, the cynic in me would think S:E:A would say this because it is betting the farm on a program called SoftwareMark, which is aimed at promoting CMMI accreditation, among other initiatives.
As it happened, I was scheduled to speak to IBM Global Services about CMMI and asked if its level of accreditation would mean the company would start demanding such certification from local ISVs. The response was:
"No. The CMMI appraisal is a desirable indication of the ISV's process maturity, but it is not essential — our processes and work practices can manage engagements with organisations at various maturity levels."
While it is currently only desirable, I wouldn't rule it out as being a necessary part of the software industry in the next five years. Why?Developers currently have pretty free reign compared with other professionals such as doctors, lawyers, builders and so on. In most states, even a pub will not employ a bartender without a responsible service of alcohol certificate.
Software developers have the rather unique position where there is no minimum schooling required, no industry certification and once software is written and contracts are finished, there is no real onus on developers to stand by their work.
One might argue that computer science degrees are set up to teach good practices and this is certainly a good start for many developers. However, studies have shown that some of the best software developers actually come from other disciplines like physics or without any formal training in computers at all. There are also a multitude of developers who jumped on the dot-com boom and who come from a variety of backgrounds.
While CMMI, SoftwareMark, modeling tools, and implementing methodologies like XP can all help, they are not always a recipe for success. Good processes are learned, not bought off a shelf or obtained from crash courses.
What do you think? Do we need to round up cowboy developers who are apparently undermining the industry? Drop me a line at firstname.lastname@example.org or post your thoughts in our forum: