This article originally appeared in the October 2012 issue of INTERNET TELEPHONY
Software development productivity has evolved tremendously over the decades as the cost of computing has plummeted rapidly while the cost of human capital has accelerated. Of course there are some anomalies in the human capital part of the curve as development can now take place in countries like India where wages are lower than, say, Silicon Valley. Still, when plotted against a dollar per unit of computing power curve, which is exponentially decreasing, it continues to be much more expensive to hire programmers than to add processor cores or to increase clock speed.
Case in point: A few decades back when programming an IBM (News - Alert) mainframe, it didn’t matter that programmers had to batch their programs using punch cards and wait for the computer’s results because you weren’t going to add more mainframe processing power unless you won corporate Lotto.
This brings us to the present day where programming has become more of a combination of piecing together existing components and adding your special sauce than it is an endeavor started from scratch. Thanks to the Internet and sites like SourceForge and CodePlex, a developer can pick up the pieces of code they need to solve specific problems as they build their finished product.
According to Mahshad Koohgoli (News - Alert), CEO of Protecode, open source is the ultimate form of code reuse, but companies have to know the pedigree of the code they are using. In other words, a working project can have all sorts of issues you aren’t aware of and which may bite you at some point in the future.
It may be tough to remember, but there was a time in life where the phrase “There is no such thing as a free lunch” actually was true. Since the nineties, thanks to Napster and now multiple P2P platforms, music and movies have become free (well they really aren’t free, but they sure seem to be to so many). Moreover, you can download thousands of free productivity and game apps that are ad supported or use a freemium model. In the eighties and nineties you had to pay for your video games whether by buying an Atari-type game console or plugging quarters endlessly into a large machine every time the red ghost ate your Pacman. What I’m saying – and please sit before reading further – is open source software is not really free.
Let me explain. You see, you can download it for free and use it for free, but at some point you may not realize the problem on your hands.
There are about half a million projects on SourceForge and two-thirds of them are dead, according to Koohgoli. When he uses the term pedigree, he is referring to maintainability, bugs, security vulnerabilities, support and code evolution. In other words, you don’t want to embed code into your product with known bugs and other problems which may not ever get resolved. Koohgoli says, by the way, that there are about 1,000 projects that get searched on again and again.
Protecode (News - Alert) works with corporations to scan their software against its multi-terabyte database, which contains more than 140 million files to find similarities. It can scan binaries, packages, RARs, ZIPs and other compressed packages as well. From there the company uses its algorithms to determine which files match and moreover which project and version thereof is most likely to the best match. The goal is to minimize the manual work required, as you could potentially find 10,000 matches for a particular signature in the database.
Another challenge the company helps with is M&A, because buyers are becoming painfully aware of the liability involved regarding software and are doing their best to minimize these sorts of problems before they complete transactions. You may remember Cisco (News - Alert) was sued in 2008 by the Free Software Foundation because of a GPL violation related to the Linksys (News - Alert) products it purchased. As a result, Cisco had to provide its router software to the open source community for free.
Programming has progressed a great deal since the days of IBM and DEC assembler but knowing the quality of the code your company has produced is still as important today as it was when your programmers had to scour a multi-thousand page book to determine what an ABEND code meant. Thankfully, the process of determining code quality is much easier today thanks to a slew of new tools like those provided by Protecode.
Edited by Brooke Neuman