iSnare.com - Free Content Articles Directory
Authors Contents [Advanced Search][Add OpenSearch][Job Search]
Distribute your articles to thousands of article sites for only $2 and below! Read more...

Index  Computers and Technology
 

Have We Lost Our Ability to Estimate Software Size

 
[ Contact the Author] [ Send to a Friend] [ Article Publisher] [Make PDF] [ Print] [ Bookmark & Share]
 
Read our Terms of Service before reprinting this article. The submitter specified above has claimed the rights to this article.
David D DeWitt

I can clearly remember that day I arrived at work - towards the end of the year 2003 – it was easily before 6am. I was leading a small team tasked with prototyping a test environment for a NASA proposal. I stood there amazed as I watched my two programmers demonstrate a completely reengineered satellite simulation environment. Wait – let me be clear - within only a few days – they rewrote close to 30,000 lines of FORTRAN and another 4,000 lines of assembly code. How did they do it? They called it “goop.” “The hand cleaner?” I asked – rather befuddled. No, they were referring a new development language by LabVIEW (National Instruments) called “GOOP” – short for Graphical Object Oriented Programming.

That was the day I decided to stop being a programmer. I was, at my ‘age,” no longer really interested in keeping up with the latest programming paradigms (and vernacular – such as “paradigm”). I decided to abandon the past and embrace my role as a program manager. But now, looking back I wish I would have asked a few more questions.

Measuring Failure

In 1995 the Boston, Mass. - based IT project management research and consulting firm The Standish Group released their first CHAOS Summary report. The report quickly became an industry score card for measuring the success or failure of IT projects; due mostly in part to the astounding percentage of failed projects disclosed in the report. The report served as a wake-up call that appears to have been heard - the 10th anniversary CHAOS report announced that the percentage of failed projects had been reduced by more than half. But alas, within a mere five years, the number of failed projects is back on the rise; the 2009 Standish Group CHAOS report indicates that nearly 1 in 4 projects are doomed. But why?

According to the original 1995 CHAOS report, to improve the probability of success projects should be reduced in complexity and the software “grown.” The recommendation was to reduce software into smaller, more manageable segments, and develop it outward. If this reported reduction in failed projects is to be believed then it appears the software industry was diligent in “growing” projects using smaller elements (1). However, what should also be understood is that those projects were comprised of many smaller pieces that were easier to “size.”

In 1995 the most common approach to sizing software was to count the source lines of code (SLOC) or count Function Points (though less prevalent). Software sizing was an established and mature methodology spanning over twenty years – with a myriad of tools available to automate the process and additional metrics available to measure software complexity and probability of defects (bugs). If the size of a project was understood, then the ability to estimate schedule and effort could easily be modeled by applying previous performance measures (and many other parameters). By forecasting a realistic estimate early in the development cycle there was a significantly higher probability of the project’s success (on time, within budget, at promised functionality) – and hence – less failure.

Back to the Future

It’s 2003 again, and I’ve just been told about a new methodology that allows anyone to build software using graphical components. This was not really all that new; in the mid-1990s through early 2000s “visual” and “portable” languages gained industry acceptance and began to dominate the development landscape. Within just a few years, languages that could be “produced” by an environment became the lingua du jour. After all, who could argue with the massive scale of economy that software manufacturing tools could generate using “Visual” programming? And for me in particular - after three days of watching my team crank out “GOOP” - I was a hero to my management.

But wait - notice the timeline in the Chaos study mentioned above and the resurgence of software failures. While I am not a big proponent of causality – let’s at least take a few moments and explore this potential contributor to the trend in software failure. First, a picture from the TIOBE Programming Community (2) – the unofficial keepers of what is popular in programming languages.

The languages with the most growth in popularity for five years have been: Java, followed by C#, JavaScript, and then Ruby. Some older languages also in vogue are Perl, C, and Visual Basic. Why? Perhaps it’s because most of these languages have become more sophisticated, are wrapped in integrated development environments, and are positioned with the sole purpose of increasing productivity. In a word – they’ve become more “visual.” While it may be easier to build the code, there is little consideration as to how the generated code should be “sized.” In fact, the environment builders boast that one barely needs to fiddle under the hood; Draw, click, and Poof – instant code that runs.

Size Matters

The most significant driver to how much time, cost and effort it takes to build software is the scope (or size) of what is to be built and therefore one of the biggest factors in accurate estimation. As the Godfather of software estimation has warned us (Barry W. Boehm) - “The biggest difficulty in using today’s algorithmic software cost models is the problem of providing sound sizing estimates” (3). How does an estimator measure “GOOP” and how many lines of code that a code generator inserts are really needed? What percentage of a C++ template can we remove (if we dare) and keep the Class fundamentally stable – yet concise. As Mark Twain once said – “the hardest part about writing is removing all the extra words.”

Is it possible to count software lines of code anymore? Even using the best code counting tools available – aren’t they really just counting lots of lines of code that may be unnecessary? Or in inverse – how much time did it take the programmer to remove all that code that should not have been counted – and was not? My suspicion is that all the code stays in (unless a standard with high rigor like FAA DO-178B verified the system).
Since I’m on the topic of counting code - what happened to Ada and FORTRAN; those stalwart languages of the 80’s and 90’s that were easy to count? Alas, they are now ranked number 24 and 25; again, no assumption of causality. (But yes my tongue is planted firmly in cheek). Estimates seemed so much easier then. Cue the music.

Hmm, there is something becoming clear in the Standish report – assuming I am not making what statisticians would call an “error of confirmation”; I would propose that perhaps the industry has made capturing the size of software too complicated – and as a consequence - our ability to accurately create a good cost estimate. Ultimately, if the industry is moving away from “countable” languages and migrating towards “visual” representations then some mechanism needs to be established that can accurately correlate effort to size or vice-versa.

Here’s a thought – remember those thousands of dollars used to purchase graphical requirements and design tools – such as the IBM Rational Rose, RSA Integration, and Rhapsody? Why not use the output of these use case models to calculate Use Case Points (unadjusted) which can then be fed into the parametric models. Are you building “Design Patterns?” Why not spend a bit more time and calculate the COSMIC Function Points and publish them along with the pattern – that way the cost of implementing the pattern can be calculated. At a minimum, before charging forward from requirements to code – attempt to calculate some “functional” size that the parametric model accepts and proceed – then go back later to see if your effort per function assumptions were correct.

The software community has made great progress in creating tools to improve productivity – but our estimates are wrong because we stopped half way! We need to regroup and identify software size as it relates to software cost and involve parametric tools to calculate accurate estimates. Until then – it’s purely guess work to estimate new product development and blind trust in tribal knowledge when modifying existing applications. After all – just how long does it take to make GOOP?

1 - Jim Johnson, chairman of The Standish Group, says he was so surprised to observe a dip in IT project success rates that he waited an extra four months before publishing the CHAOS report to make sure its findings were accurate. He attributes the increase in IT project failures to the recession, which according to economists began in December, 2007, and subsequent budget cuts.
2- http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
3- Software Engineering – Barry W. Boehm’s Lifetime Contributions to Software Development, Management and Research., Edited by Richard W. Selby , Wiley-IEEE Computer Society Pr; Reprint edition (June 4, 2007)

Important NoticeDISCLAIMER: All information, content, and data in this article are sole opinions and/or findings of the individual user or organization that registered and submitted this article at Isnare.com without any fee. The article is strictly for educational or entertainment purposes only and should not be used in any way, implemented or applied without consultation from a professional. We at Isnare.com do not, in anyway, contribute or include our own findings, facts and opinions in any articles presented in this site. Publishing this article does not constitute Isnare.com's support or sponsorship for this article. Isnare.com is an article publishing service. Please read our Terms of Service for more information.

David DeWitt is a Senior Consultant with Galorath based in El Segundo, California. He can be contacted at ddewitt (AT) galorath.com. For more information on the Galorath line of estimating software solutions please visit Galorath.com when estimating software projects or call: U.S.+1 310.414-3222 - U.K.+44 (0) 1252.724518

Article Tags: 8211 [See Dictionary], code [See Dictionary], software [See Dictionary]
Got a question about this article? Ask the community!
Article published on September 02, 2009 at Isnare.com
 
Rate this article:

Sony Ericsson W595 Mobile Phone Review - The Latest and Best Walkman Phone?
Submitted by: Carlson Osbourne

The one thing that most Sony Ericsson phones have in abundance is good looks No matter what lies beneath the surface, they all tend to have unique and beautiful appearances that can enhance the style factor of everyone using them...

Sony Ericsson W705 Mobile Phone Review - Tune Into the Beat With the Ultimate Walkman Phone
Submitted by: Carlson Osbourne

Sony Ericsson is known the world over for their amazingly functional and stylish mobile phones It is easy to see why when you take a look at some of the handsets that they have produced over the years and one of their latest additions to the Walkman range can be added to that illustrious list...

Notebook - Smart Shopping Tips
Submitted by: Roberto Sedycias

There are many choices of notebooks and sometimes it is hard to find the appropriate notebook that represents the true value for money...

The Many Applications of GPS Cell Phone
Submitted by: Roberto Sedycias

GPS is known to navigate global positioning easily and is widely used in vehicle tracking and map navigation, benefiting people in their daily needs...

Things To Know About Formatting Your Memory Card
Submitted by: Lance Edwards

If you use a new memory card on your digital camera for the first time you should always format it, or it may not store your photos correctly...

Choosing a Scanner
Submitted by: Lorraine Vybihal

When choosing a scanner for your business, there are many things you need to consider You need a scanner that is fast, reliable, and that will increase your overall productivity...

Linux Vs Windows - Which One to Pick?
Submitted by: Roberto Sedycias

Choosing the appropriate operating system is based on the server`s function Linux is powerful and has a versatile operating system while Windows is well-known for its easy to use operating system and versatility...

Nintendo Wii Vs Playstation 3 - A Genuine Combat
Submitted by: Roberto Sedycias

Nintendo Wii and Playstation 3 are the top-notch gaming consoles commanding the market However, knowing the difference of Nintendo Wii Vs Playstation 3 gives clarity about each gaming console and its features...

Nokia 5800 XpressMusic Mobile Phone Review - The Trendsetter of Nokia Touch Screens
Submitted by: Carlson Osbourne

Behind all of their market competitors they may be but Nokia have now introduced their very first touch screen phone...

Nokia 6260 Slide Mobile Phone Review - Mobile High Speed Technology at Your Fingertips
Submitted by: Carlson Osbourne

The Nokia 6260 Slide is one of the latest additions to the Nokia mobile phone handset family and also one of the most modern...

What is the Difference Between Cat-5, Cat-5e, And Cat-6 Cable?
Submitted by: Derek Rogers

For those unfamiliar with the various types of Ethernet cables available for networking and connecting their computers to the Internet, making the choice between Cat-5, Cat-5e, and Cat-6 cables can be a rather confusing one...

When Should I Upgrade to Cat-6 Cable?
Submitted by: Derek Rogers

Upgrading to Cat-6, or to give it its full name, Category-6 cable, is generally done in computer networking when all of the components used are rated at higher speeds and will therefore require the increased bandwidth that this particular cabling can provide...

How Can Unified Communications Benefit My Business?
Submitted by: Derek Rogers

Unified communications (UC) is a relatively new term in the industry which is used to describe the technological union between computing and telephony, two forms of communicating that were previously separated by differing infrastructures...

How Can I Be Sure My Old IT Equipment is Disposed of Securely and Properly?
Submitted by: Derek Rogers

With the rapidly improving and expanding technology of today, people tend to replace their personal computers on a regular basis in order to keep up with the latest advancements...

Canadian Address Database Helps Immigrants Better Adapt to the Country
Submitted by: Adrianna Noton

An address database can be a godsend to persons who are new to a country This is especially true for Canada where immigration is an important part of the country’s development...

Isnare.com Footer Divider

© 2004-2009. Isnare Free Articles - An Isnare Online Technologies Free Articles Project. All Rights Reserved.   Privacy Policy