IT Employment

Wanted: cowboy developers

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.
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 editor@builderau.com.au or post your thoughts in our forum:

http://cgi.builderau.com.au/forum/viewforum.php?f=2

4 comments
Tony Hopkinson
Tony Hopkinson

Where, I want to work there, it would mean I could ignore management and do the job right. Cowboy developers are a symptom. Now while their might be one or two even I would categorise as such, cowboy development is generally at the behest of business. What happens when the fiction business calls a development plan comes into unfortunate contact with reality, good practices are ditched in favour of churning out some sort of deliverable in order to meet an increasingly arbritary deadline. Free reign, sheesh.

Jaqui
Jaqui

"One might argue that computer science degrees are set up to teach good practices and this is certainly a good start for many developers " according to an article published in 2008, that is not accurate. [ http://www.crosstalkonline.org/storage/issue-archives/2008/200801/200801-Dewar ( pdf file ) ] most computer science programs are starting with Java, the author of the above article explains his reasons why Java is a POOR language to use to teach good programming. edited to fix link

Tony Hopkinson
Tony Hopkinson

Both in my own studies and based on the products of academia, I've never seen any evidencethat CS Degrees teach good practice. The emphasis is all wrong. Good practices are taught in the real world and generally through trial and error.

araybo
araybo

The CMMI epitomizes everything that is wrong with software engineering. What matters is the extent to whether a development organization can deliver high-quality software, and do so within a predefined schedule and cost that is comparable to the best the industry can do. This is not what the CMMI measures -- instead, it scores an organisation according to its idea of what best practices are. This is not a valid proxy for what matters, because the execution is so dependent on the knowledge, depth of understanding, creativity and good judgement of the people performing the process. Software engineering has attempted to use defined processes to eliminate this dependency on these skills but it can only go so far, because while processes can help with the accidental difficulties of development, they can do little to ameliorate the essential difficulties (to use the categories established by Fred Brooks in his 'No Silver Bullet' essay.)

Editor's Picks