TrainingConferencesAbout UsContact UsAdvertiseSQE.comRSS Feed

StickyMinds.com: brain food for building better software

Log In
 Clarify Your Search Criteria

Tips on Using Our Search Feature(s)
 
StickyMinds.com Home
ResourcesTopicsCommunityPowerPass
Home  >  Detail: Less Is More



A StickyMinds.com Original
Article Picture
Less Is More

By Linda Hayes

Send This Content to a FriendGet a Short Link to This ContentPrint This ContentSee User Comments About This Content

Summary: Twentieth Century architect Ludwig Mies van der Rohe, who coined the dictum, "less is more," is known for his simple designs. Interestingly, this concept has proven true time and time again in the software industry. In this week's column, Linda Hayes explains reasons why simplifying your team when it comes to quantity is so vital and shares some surprising statistics on how team size can affect quality.


Rally Software Development
You may remember the study of project outcomes from the Quantitative Software Management (QSM) study (www.qsm.com) referred to in a previous column, "Why Subject Matter Experts Matter." By using the same data--that is, the metrics from more than 7,000 projects--but analyzing it differently, QSM’s new study is even more interesting. Simply put, they discovered that the more people you add to a project, the lower your per-person productivity and the higher the defect rate. For example, two and one half people can develop 40,000 lines of code in forty person-months and take only twelve calendar days longer than twenty-nine people in 191 person-months can. One reason for the lost productivity? The larger team produced six times as many defects as the small one.

While this is stunning to contemplate (and you should, at length), it is really not news. QSM did the same study in 1996 and saw the same results. Books, articles, and papers have been published--going back three decades--that say the same thing: the more resources, the greater the decline in incremental productivity and quality. As a third-time software entrepreneur, I've consistently confirmed the adage that one $100K developer is worth more than two developers worth $50K each.

However, another implication of this study is more difficult to measure but far more significant. After fixing all the defects, the quality of the code written by the larger group will be much poorer, resulting in long-term increased maintenance costs. It is a fact that virgin code is usually (I hope) well designed and written. But as that code is subjected to changes for adding missed requirements, correcting defects, and generally being passed around from one developer to another, it becomes an unstable, confusing patchwork.

Since software spends the vast majority of its useful life in maintenance, getting the first version out faster at the expense of all future releases is a bad business decision. Think about it. Throwing bodies at the schedule today will actually increase the cycle time and costs for all future releases.

So why do we behave as if it’s not true? Why do supposedly smart and cost-conscious businesspeople keep making dumb and expensive decisions?

One reason is that managers often view the production of software code in incremental amounts that must be written by a certain date, and so they believe that if you spread the task across more people, it will take less time. It’s time the managers realize that, as these studies show, this view is not based on reality.

The reality is that the amount of code to be written depends on who is writing it. No two programmers will create the same code to do the same thing. Code is an expression of the author’s thought process based on his experience, understanding, and style; therefore it is unique to each individual. For example, one person might implement the same functionality in a fraction of the code that another writes, but he may write it in a form so abstract it would be difficult for others to maintain. Coding is a constant process of making trade-offs.

Furthermore, the greater the number of code components you have, the more integration you have to do, which increases the opportunity for rough edges. Also, the smaller the piece of the puzzle each person is looking at, the greater the chance for misunderstanding or crossed wires. Of course this tried-and-true axiom relates to this situation all too well: "Too many chefs spoil the stew."

From this standpoint, the fewer developers the better. In my opinion, two is the ideal. You get a check and balance and don't have a single point of failure. Of course there are some projects that lend themselves naturally to three developers, or even as many as five, based on how loosely coupled the components are. With clearly defined boundaries, integration is easier.

But the real point--which is hard to maintain focus on in a time when everyone is in a hurry for everything--is that less really is more. What does this mean?

  • Don't substitute quantity for quality. Learn to question offers for more people, as tempting as it sounds. Push for better people instead.
  • Look past the deadline. Think about how the decisions you make today will affect the future.
  • Do the math. Is it really worth $1.8 million (an extra 151 man-months at $12K per month) to save twelve calendar days for the first release--then pay premium maintenance costs for the rest of the software life?
Maybe the hardest change of all is to resist the all-too-human urge to build an empire, believing that the more people you have, the more power you wield. Instead, look at each resource as a layer of complexity: The more you have, the more it costs--and, in the case of software, the less you get--and the worse it is.


About the Author

Linda G. Hayes is the CTO of Worksoft, Inc., developer of next-generation test automation solutions. She is the founder of three software companies including AutoTester, the first PC-based test automation tool. Linda holds degrees in accounting, tax, and law and is a frequent industry speaker and award-winning author on software quality. She has been named as one of Fortune magazine's People to Watch and one of the Top 40 Under 40 by the Dallas Business Journal. She is a regular columnist and contributor to StickyMinds.com and Better Software magazine, as well as a columnist for Computerworld and Datamation, author of The Automated Testing Handbook and co-editor of Dare to be Excellent with Alka Jarvis on best practices in the software industry. Her article "Quality is Everyone's Business" won a Most Significant Contribution award from the Quality Assurance Institute and was published as part of the Auerbach Systems Development Handbook. You can contact Linda at linda@worksoft.com.

Back to Top
 
 

Member Comments
Add Your CommentExpand Comments
 
Comment:    
by Michael Goldberg 12/8/2005

Linda - I'm having trouble with the math. Looks like you're saying that Small team: 40 person months / 2.5 people = 16 calendar months 40,000 LOC / 16 calendar months / 2.5 people = 1,000 LOC/calendar month/person (way above average LOC rate - can this be correct?) Large team: 191 person months / 29 people = 6.58 calendar months 40,000 LOC / 6.58 calendar months / 29 people = 209 LOC/calendar month/person (somewhat below average LOC rate - believable) Article states that the smaller team takes only 12 calendar days longer than the larger team, but 16 calendar months (smaller team) is more than 12 days longer than 6.58...Read On

Author's Response:
12/8/2005    
Two points. 1,000 LOC per month is not that far out of whack that I am aware of...but maybe the message is that smaller teams DO perform above average. If you have different data, I'm interested. Second point - the study assumes (correctly in my opinion) that there is a staffing rate to get to 29 people so you don't have instant productivity of the entire team. If you want to follow up, use linda@worksoft.com.

 
 
Comment:    
by Prashant Malhotra 11/3/2005

A Beautiful article as it describes what should be an ideal solution for a quality product but unfortunately, ideal majority of the times do not become practical solutions. Looking from the management's point of view "Finish a Task in a given specific time"and also mentioned in the article itself satisfies that those extra things that actually hit the quality are far more in bigger in size than those who would improve the quality. I would go with - Better Planning with a bigger team can yield better quality also( again an ideal situation which is not practical enough when it comes to maintenance of Projects ). :-)) Also looking...Read On

Author's Response:
11/3/2005    
Thanks, Prashant. I agree that planning is important in any case, and the larger the team the more is needed.

 
 
Comment:    
by Gene Fellner 11/2/2005

This is the era of the sound bite. One of the bumper-sticker mottos I drill into all of my project management students is: Adding more people to a late project always makes it later.

Author's Response:
11/2/2005    
Thanks Gene. I infer from your comment that this phenomenon is not limited to software development, which makes sense.

 
 
Comment:    
by Prakash Sodhani 11/2/2005

Very good article. However, I think there are just way too many factors that dictates "less is more". One of them is the scope of the project. Even if you have few best developers, meeting deadline is one thing they also have to do. We also need to remember that there are just too many other issues that pops up during time scheduled for something else. I am sure your article summary is: "Don't just crowd the team with headcount to boast you have a big team" and I totally agree with this.

Author's Response:
11/2/2005    
Hi Prakash - I agree that the scope dictates the overall project size, but still it makes sense to keep work teams small. You may be making another point, which is that delays are inevitable and of course they are, but that happens regardless of the size of the team and may be worse with a bigger one.

 
 
Comment:    
by Craig Senior 11/2/2005

Linda alluded to another perspective on this: the idea of beating up the developer or subcontracted development company on rates, especially in government contracting, moved to commoditized professional services. They want to pay per diems for professional services instead of paying for the value of a finished product. Then they want the cheapest resources possible, no matter how much it costs them, which it invariably does. Linda, keep spreading your very important message!

Author's Response:
11/2/2005    
Hi Craig - I'm glad you stressed this point. You get what you pay for...or don't, as the case may be. Poor quality costs more in the long run!

 
 
Comment:    
by Subhash Chandra Yadav 11/2/2005

Linda, You hit the nail on the head spot-on! How many times have we seen tech managers goofing up projects because of increase in the staffing, just because the existing resources are in a crunch situation!!! Delegating work properly is the key to the problems that arise out of less resources. Moreover, adding resources necessarily does not mean helpful. keep writing such intriguing articles. I hope Test Managers are reading this!! -Subhash

Author's Response:
11/2/2005    
Hi Subhash - I hope they are too, Subhash. However often it's not the test managers but their managers who don't get it. In that case, they may need to forward the study to them. It contains - as they say - a vicious pack of facts.

 
 
Comment:    
by Andrew Dunaway 10/31/2005

Linda, I was curious about your opinion on something. I am relatively new to QA, graduated college less then a year ago. While your arguement seems very solid, I wonder how you fit in the search for 'new talent' so to speak. While I can agree with your statement that one 100k developer can be worth more then two 50k employees, do have a plan for finding that future 100k employee that is still earning his way and learning everything he can? It seems that many times quality is sought first and then quantity is added later (which you argue the benefit of, and I see your point). For many of my class mates and I, our chance often seems to come in...Read On

Author's Response:
10/31/2005    
Hi Andrew - so glad you asked! As I mentioned, you never have less than two resources on a project, and this is not only for backup but also for learning and knowledge transfer. Some of my most valuable developers were brand new when they started. So a $100K and a $50K person together are still worth more than three $50K ones.

 
 
Comment:    
by Ed Weller 10/31/2005

Linda--You have hit on the difference between software (a design and creation process) and manufacturing (build to a hopefully proven design). Too many managers see software design and creation as tasks done by interchangeable parts. The root of the "number of people" problem is the number of communications paths between people--two people, one path, three people, three paths, five people, ten paths, ten people, forty-five paths, and so on. Eventually loss of accuracy in communicating ideas, whether written or especially verbal, introduces defects. So on larger projects, we need more requirements and design documentation, especially when...Read On

Author's Response:
10/31/2005    
Hi Ed - thanks for the useful expansion. I'm glad you brought outsourcing into the discussion. I agree - the idea that you can get more people for less money is a false economy, and it doesn't matter whether they are domestic or offshore.

 
 
Comment:    
by Maura Shortridge 10/31/2005

Frederick Brooks published The Mythical Man Month thirty years ago, and I'm still amazed at how many mid- and upper-level managers still don't get it. The recent study you cited shows that his points were absolutely valid - adding more staff to a troubled project will only make it worse. From project to project, despite our warnings, despite the data we show them, managers still want to throw bodies at a problem instead of freeing up the right people to do the right work. Throwing a bunch of new people into a project means that I as the QA lead will stop using my time and my brain to find defects and get them fixed, and instead turn into...Read On

Author's Response:
10/31/2005    
Hi Maura - isn't it funny that you have to convince management to spend less? One approach is to include exactly the overhead you describe into a revised pro forma schedule, showing them the cost of adding people. This study gives you the data - add extra time not only for administration and training, but also finding and fixing defects...both in this release and all to come.

 
 
Comment:    
by Mike Whittaker 10/31/2005

Since Ludwig Mies Van Der Rohe died in 1969, it would probably be better to refer to him as a "Twentieth century architect" ... ?

Author's Response:
10/31/2005    
Thanks, Mike. I love writing for QA readers! They keep you on your toes.

 
Back to Top


Marketplace
Subscribe to Better Software Magazine
Subscribe to Better Software Magazine

First Name:

Last Name:

Email Address:


Home   |   Resources   |   Topics   |   Community   |   PowerPass



© 2009 StickyMinds.com. All rights reserved.
StickyMinds.com is a division of Software Quality Engineering.
Privacy Policy    Terms & Conditions    Link to StickyMinds.com    Feedback


Borland

Klocwork



STAREAST 2009