We have been building software systems for over 50 years,
and yet success rates remain extremely low, see Dan
Galorath for some information.
Different reports put the success rates at different levels but
successful projects are rarely higher than 30-40%.
It might seem strange, but we don't all have the same
definition of success for software projects.
Success is when a project delivers the expected benefits within 10% of
cost and schedule. For me, a project is
NOT successful when:
Under those conditions
I'm guessing that there are even fewer successful projects out there. Let's make software success extremely
concrete. Imagine that you are on a
street corner watching people cross the street to the other street corner. Imagine that out of every 10 people trying to
cross the street only 3 people cross successfully, the other 7 get maimed or
killed.
Sun Tzu wrote:
One misconception is that software projects fail because “I am surrounded by idiots!” Just because we get frustrated at being unable to get software built does not make this statement true. In fact, the exact opposite is true, the average IQ of Computer System Analysts is 111.3[1], and any IQ above 110 is considered to be Superior Intelligence[2].
To really fix your
software development problems requires better understanding of basic
principles; after all, there are software projects that succeed out there. Not surprisingly, the companies that have
figured out how to develop software consistently and reliably tend to have the
fewest failures. Learning how to develop
software consistently and reliably requires that you learn how the following 5
elements intersect and affect each other:
Report
|
Year
|
Successful
|
Challenged
|
Failure
|
Standish Chaos Reports
|
2009
|
32%
|
44%
|
24%
|
Saur & Cuthbertson
|
2003
|
16%
|
74%
|
10%
|
Tata Consultancy
|
2007
|
38%
|
62%
|
- It does not deliver what was promised
- It has cost or time over runs of over 10%
- It has its scope dramatically reduced so that victory can be claimed
- It does not have a positive net present value, i.e. it never breaks even
How interested would you be in crossing the street?
War is of vital importance to the
state; hence it is a subject of inquiry which can on no account be neglected.
In our modern world, software is of vital importance to your
organization. If you can solve your
business issues by building software consistently and reliably you will gain a
tremendous advantage over your competition.
One misconception is that software projects fail because “I am surrounded by idiots!” Just because we get frustrated at being unable to get software built does not make this statement true. In fact, the exact opposite is true, the average IQ of Computer System Analysts is 111.3[1], and any IQ above 110 is considered to be Superior Intelligence[2].
Don't get me wrong; you might have a bunch of developers
from the shallow end of the gene pool, but that does not explain how thousands
of organizations fail to build quality software. The point is that software does not fail
because there are not enough smart people looking at the problem.
There are plenty of consultants, a.k.a. snake oil
salesmen, that are willing to sell you “silver bullet” solutions that will solve
your every problem. Have you ever seen
any of these really work?
Each of these solutions will generally solve one aspect of your problem
and leave you with a larger one to fix later; they will also leave big holes in
your budget. Unfortunately, we often succumb to "silver bullet" solutions because they tell us what we want to hear.
- Requirements
- Project Management
- Principles
- Developers
- Executives
Each of these elements will intersect with all of the
others. You will continually stumble
through software development until you get the minimum level of execution and
synchronicity between these 5 rings.
Organizations that do not understand these 5 rings will
create organizational structures and processes that are doomed to fail. Poor organizational structure and processes will
create systemic problems that will lead to the following problems:
Problems from poor organizational structure and
processes will lead to failed software projects because of the SYSTEM, not the
PEOPLE. However, people always assume that
someone is to blame; they rarely look for problems inside the system. This will lead to severe morale problems and the
loss of competent personnel.
Fixing your software development is a matter of
understanding the principles of good organizational and process design. Once you understand how to balance the 5
elements you will begin to experience success in building software.
Cancellation vs Project Size
Function Points | Average Effort |
10 | 1 man month |
100 | 7 man month |
1000 | 84 man month |
10000 | 225 man year |
100000 | 3197 man year |
Appendix: Modern IQ Ranges for Various Occupations
According to modern IQ ranges, computer system analysts have
one of the highest intelligence quotients of all professions.
[1] Average IQ by occupation (estimated from wordsum scores), January
22, 2011. Available from http://anepigone.blogspot.ca/2011/01/average-iq-by-occupation.html
[2] What Different IQ Scores Mean, April 12, 2004. Available from http://wilderdom.com/intelligence/IQWhatScoresMean.html
No comments:
Post a Comment