CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Greg Young [MVP]


Run by posting

I havn't been very good about posting but that is changing as of now. I have a few posts stored up which will be coming out. I just came accross something interesting.

 

Both public and private sector organizations experience a high failure rate for IT projects. Fishenden said a professional body with powers of imposing sanctions for failure or incompetence, such as the GMC being able to strike off doctors, could improve the standing of the IT profession.

 http://news.zdnet.com/2100-9588_22-6186364.html?part=rss&tag=feed&subj=zdnn

Albeit a tad on the extreme side a non-partial 3rd party who allowed regulation of architects and developers would be very nice. I don't think its actually feasible but if it could be it could be quite interesting. I personally envision something more like the way the bar works for lawyers (and I mean the governing body not the bar they hang out after work and beat each other up at).

Groups of peers looking at and scoring performance on a given project could be a good thing. Naturally the claimant would be charged with the expense of such a request, and I am sure they would be rather expensive in order to help remove frivoluous cases.

Then again it very quickly becomes difficult to define "incompetance" ... What about the guy who write all of his code in button clicks of a large app? Did the code work? What about things like scope creep and their effect on estimates which is one of the largest reasons a project will fail? Is it incompetance on the part of the staff for not stopping the scope creep?

In my mind the most interesting part of this is that it is coming out of Microsoft ... At the risk of starting a religious war won't this hurt their profits by alienating many of the VB developers?

 Thoughts?

 

 

 *please note last paragraph is a joke before getting your panties in a twist and putting nasty comments*



Comments

camera said:

Yeah, I've got several swarmy comments to make.

1. Is this guy saying that IT projects fail and it's the programmers' faults?  Uhmmm.  No.

2. You get what you pay for. When you buy your programmers from Big Lots, you get Big Lots quality code.

3. No one's life is on the line when your e-commerce site doesn't get updated on time. Deal with it.

4. Lemme see, the solution to overly-bureaucratic software projects is to inject an overly-bureaucratic standards body into the equation.

5. After your government spends millions creating a unified standards body and you hire only certified programmers, who are you going to blame then when your IT projects fail?

# May 24, 2007 6:20 PM

David Douglass said:

I'm currently maintaining a poorly written body of code.  To be "good" code, it probably should have been written in twice the time and at twice the cost.  But, that isn't what the business wanted.  They really prefer lower cost structure.

# May 24, 2007 7:30 PM

jdn said:

I disagree with the idea that "At the time of the punch card, it would have been almost impossible for a developer to get by with lousy practices. " and "Is this guy saying that IT projects fail and it's the programmers' faults? Uhmmm. No." I realize programming existed way before the internet, but it seems to me that one of the things that programmers have said since programming existed (and which can be found on the Internet, look for debates about Cobol vs. Fortran..it's fun reading anyways) is that other programmers suck, and explain why. I think bad programmers have existed since programming was started, and bad programmers can definitely help kill an IT project. As a (hopefully no longer bad, but nowhere near as good as the great programmers I have worked with) programmer, I'm pretty confident about this. Are there *more* because of, say VB (since that's a typical target)? Maybe. But I'm not really convinced of that either.
# May 24, 2007 9:18 PM

Andy said:

The problem isn't the quality of the code. Big projects fail because of a host of other reasons:

1) Unclear objective. People like having grand visions, but nobody wants to consider the detail. Poorly defined requirements leave a gap between what they customer wants, and what the specification says to build. And nobody ever reads specifications in that much detail - after all, the customer has told the development team what they want, why should the read the same things back?

A shoddy spec results persistent mission creep and endless change cycles.

) Excessive Complexity. Trying to implement business processes that are complex is a nightmare, and with large systems, this is nearly inescapable. Invariably the "Well Defined" business processes do not cover the total range of cases, and there are exceptions that are currently dealt with by work-arounds or manual intervention on a daily basis.

) User resistance. Lack of customer buy-in = dead project. If you build it, they won't necessarily come. Often people don't feel they've been adequately consulted, or because the changes don't benefit them, they aren't interested.

) Internal Politics. Power struggles within the organisation resulting in resistance from part of it - and they can make your life merry hell. Conflicting requirements is, of course, mandatory.

) Politicisation. Large projects are visible to the project, and so politicians bugger around with them so they can be seen to be doing something. It doesn't matter that they can't access Hotmail, they know how to fix the problem.

) Political change. Ongoing and persistent changes to the processes within an organisation result in a constantly moving target, spiraling costs, and failure.

) Lack of feedback to Management. Some organisations are totally unwilling to tell their CEO/Boss/Senior Civil Servant that their wishes are completely impractical, or excessively expensive. These people are God, and the will means it must be made so.

That's just off the top of my head, what I've seen in projects and the papers. I'd estimate that maybe 10% of big project failures (the type that make the papers) fail for technical reasons. I'd say that most fail because nobody took the time to sit down and think in detail about what the system should do - and then draw up a decent list of requirements

# May 25, 2007 7:04 AM

Wayne Mack said:

Most software projects are written by teams of people, so who are you going to go after?  Who is the person to disbar when a 12-month effort takes 18-months?  Who takes the fall when one module uses miles per hour and another uses kilometers per hour?  Who is responsible for that null pointer running around?

Yes, I am concerned about software quality, but I have never seen a project get into trouble because of a single person.  How do we find the individual to disbar?

# May 25, 2007 8:39 AM

Fregas said:

@camera:

I agree with much of what you said.  The fact is, even experienced, professional, honest, intelligent develoeprs often have failed software projects.  Software is H A R D.  Sometimes its the programmer's fault, sometimes the client, sometimes just dumb luck.  I don't see how getting the government involved will help since even the best developers don't always know how to keep projects from failing and clients or management can sabatoge it themselves.

That being said, i do often wish there were some minimum basics required to be learned for one to become a programmer (at least one working unsupervised.)  Things good databse design, code reuse, OOP, etc.  

@David

There are times where the choice is between more features vs quality in a given amount of time.  But what happens is that when a business does that over and over and makes it their MO, productivity slows when the poorly written app needs to be altered and maintained.  Things get more and more time consuming and expensive each time something changes.  So the extra "time & money" they saved in the beginning will cost them more overalll, and often sooner rather than later.   I think we have to educate business people that they aren't really helping themselves when they do this or drive us to do it on their behalf.  

They are accumulating "Technical Debt":

www.martinfowler.com/.../TechnicalDebt.html

This is the best way i've seen to describe the issue to non-technical people.

# May 25, 2007 9:22 AM

camera said:

In response to jdn: That there are good programmers and bad programmers is a given. This is true for the sales dept, the accounting dept, and the IT department. Just as a bad sales team can bring down sales, a bad IT department can churn out sloppy code. A failed IT project is a management failure and not a programming failure. Management should build their department for success: in staffing, in tools support, in training and mentoring. It's management's responsibility (I'm taking CEO here) to build a competent IT department to support the goals of the business. If the management team inherits a set of unqualified programmers, then they need to (a) reset expectations for projects (b) set in place a plan to build competencies (c) support the team with the latest tools for the job, and (d) hire in qualified programmers to establish best practices and structure to programming projects.
# May 25, 2007 10:45 AM

Greg said:

David:

I agree with you completely that sometimes getting working software is more important than getting good software for business reasons but this needs to be a recognized trade off with a plan to avoid the long term maintenance costs and overall risk associated with it.

Fregas is dead on here, it is technical debt.

All:

Just to be clear I really don't think this is feasible but it is a neat idea. Something like the bar test that said you had some level of basic knowledge would be extremely useful (i.e. how does a hash table work?, what is 0xFC in binary? what is 10001010110 x 0111101000 (its amazing how many people cant do binary math :))

The second thing that the bar provides is a level of escalation both between lawyers and with clients. If I find a developer to be wholely incompetant or unethical it would give me the ability to report it. Keep in mind that our business has a VERY bad name (especially web development) due to the vast numbers of bought-a-wrox-VB.NET-book-and-read-it-last-month style programmers who are being sold off as professionals.

# May 25, 2007 2:43 PM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add
Check out Devlicio.us!