Print

Shoot the programmer



Simon Hopkins
Email
June 13, 2012 —  (Page 1 of 2)
A friend of mine, who is an experienced venture capitalist in the tech sector, once stunned me by claiming, “You need two people to write great code. One to program, and one to shoot the programmer when he thinks that he is done.”

At the time, this seemed to be a little extreme... but...

Today’s software, particularly business software, is fundamentally complex. Enterprises have wide-ranging requirements, demand many different features, and require constantly evolving functionality. On top of this, businesses need their systems to be flexible, and to provide their users with a host of options.

Hasso Plattner, the former CEO of SAP, once responded to the question posed by one of his clients, “Why is your software so complex?” with the remark, “If you were prepared to make your business less complex, then I could make my software simpler.”

It is challenging to construct software that supports all the features desired by businesses, spanning multiple functions, industries and geographies, in one product. When you add in the need to refine and refactor code, as well as to keep up with changing regulations, technology and trends, it is sometimes surprising that any usable business software ever gets shipped. Hence the sentiment behind my friend’s observation: The job of a programmer is never-ending, and to ship a product, there needs to be some external mandate.

Of course, it is one thing to finish development, but it is quite another to release finished software. There is not a developer alive who writes flawless code, so the completed code needs to be tested, which prompts the question: Just how much testing is needed? When I was once a pup programmer working for a U.K. defense contractor, the government auditors would check our code by counting up the number of conditions (i.e., the “if” statements), and check that at least one formal test condition existed for each one.

Today, at iBE.net, with our codebase extending toward 1,000,000 lines of code, applying such a rigid test methodology is both impractical and inconsistent with agile. Just within our mobile app (50,000 lines of code), there are some 3,500 conditions (“if” or “case” statements). Assuming a rate of 1 test per second, it would take 23,500 seconds to exhaustively test all conditions just within our mobile app. To test all the code, with all its combinations and permutations, would take a longer time than the universe has currently been in existence (which, incidentally, is estimated to be approximately 4 x 10^17 seconds).


Related Search Term(s): testing

Pages 1 2 


Share this link: http://sdt.bz/36712
 

close
NEXT ARTICLE
Your tests need to go faster
Fortunately, tools, techniques and determination are all you need to speed things up Read More...
 
 
 




News on Monday  more>>
Android Developer News  more>>
SharePoint Tech Report  more>>
Big Data TechReport  more>>

   
 
 

 


Download Current Issue
MAY 2013 PDF ISSUE

Need Back Issues?
DOWNLOAD HERE

Want to subscribe?


 
 
 
 

Events calendar tab
5/21/2013 to 5/23/2013
Las Vegas
CTIA

5/28/2013 to 5/31/2013
Boston
BZ Media LLC

5/28/2013 to 5/30/2013
San Francisco
O'Reilly Media

6/2/2013 to 6/7/2013
Las Vegas
SQE

6/2/2013 to 6/6/2013
Orlando
IBM Rational