The Evolution of Software Size: a Search for Value©
Total Page:16
File Type:pdf, Size:1020Kb
Software Engineering Technology The Evolution of Software Size: A Search for Value© Arlene F. Minkiewicz PRICE Systems, LLC Software size measurement continues to be a contentious issue in the software engineering community. This article reviews soft- ware sizing methodologies employed through the years, focusing on their uses and misuses. It covers the journey the software community has traversed in the quest for finding the right way to assign value to software solutions, highlighting the detours and missteps along the way. Readers will gain a fresh perspective on software size, what it really means, and what they can and cannot learn from history. hen I first started programming, it evolved throughout the last 25 years. It In the ’70s, the LOC measure never occurred to me to think focuses on reasons why these approaches seemed like a pretty good device. aboutW the size of the software I was were attempted, the technological or Programming languages were simple developing. This was true for several rea- human factors that were in play, and the and a fairly compelling argument could sons. First of all, when I first learned to degree of success achieved in the use of be made about the equivalence among program, software had a tactile quality each approach. Finally, it addresses some LOC. Besides, it was the only measure in through the deck of punched cards of the reasons why the software engineer- town. required to run a program. If I wanted to ing community is still searching for the In the late ’70s, RCA introduced the size the software, there was something I right way to measure software size. first commercially available software could touch, feel, or eyeball to get a sense cost estimation tool, which used SLOC of how much there was. Secondly, I had Lines of Code converted to machine instructions as the no real reason to care how much code I As software development moved out of size measure for software items being was writing; I just kept writing until I got the lab and into the real world, it quickly estimated. In the ’80s, Barry Boehm’s the desired results and then moved on to became obvious that the ability to mea- COCOMO was introduced, also using the next challenge. Finally, as an engi- SLOC as the size measure of choice. As neering student, I was expected to learn other cost models followed, they too how to program but was never taught to “Now, 25 years later, used LOC measures to quantify the appreciate the fact that developing soft- amount of functionality being delivered. ware was an engineering discipline. The if you Google the It is important to note that while all of idea of size being a characteristic of soft- phrase software size you these models used SLOC as a primary ware was foreign to me—what did it real- cost driver, there are many other factors ly mean and what was the context? And will get more than that influence the cost of software why would anyone care? development as well. These software Now, 25 years later, if you Google the 100,000 hits. cost estimation models also need to phrase software size you will get more than gather information about factors such as 100,000 hits. Clearly, there is a reason to Clearly, there is a the complexity of the software being care about software size and there are lots estimated, the experience and capability of people out there worrying about it. reason to care about of the software development team, And still, I am left to wonder: What does expected reuse, the overall productivity it really mean and what is the context? software size and of the development organization, con- And why does anyone care? straints, and so forth. The quantification It turns out that there are several very there are lots of people of these factors is applied to the soft- good reasons for wanting to measure soft- ware size to determine estimates of cost ware size. Software size can be an impor- out there worrying and effort. tant component of a productivity compu- I believe that SLOC will go down in tation, a cost or effort estimate, or a qual- about it.” the annals of engineering history as the ity analysis. More importantly, a good soft- most maligned measure of all time. ware size measure could conceivably lead There are many areas where criticism of sure productivity and quality would be SLOC as a software size measure is jus- to a better understanding of the value useful and necessary. The lines of code being delivered by a software application. tified. SLOC counts are, by their nature, (LOC) measure—including source LOC very dependent on programming lan- The problem is that there is no agreement (SLOC), thousands of LOC, and thou- among professionals as to the right units guage. You can get more functionality sands of SLOC—is a count of the num- with a line of Visual C++ than you can for measuring software size or the right ber of machine instructions developed. with a line of FORTRAN, which is way to measure within selected units. It was the first measure applied to soft- more than you get with a line of This article examines the various ware, with its first documented use by Assembly Language. This does make approaches used to measure software size R.W. Wolverton in his attempt to formal- using SLOC as a basis for a productivity as the discipline of software engineering ly measure software development pro- or quality comparison among different © Copyright PRICE Systems, 2009. ductivity [1]. programming languages a bad idea. March/April 2009 www.stsc .hill.af.mil 23 Software Engineering Technology Capers Jones has gone so far as to label method for estimation and measurement assessing the productivity of their such comparisons “professional mal- within the context of their projects and processes. practice” [2]. practices. Another important considera- While I would be remiss not to Concerns also surround the consis- tion is the fact that once an organization acknowledge the great contribution that tency of SLOC counts, even within the has agreed on measurement rules for Albrecht made to the software engineer- same programming language. There are SLOC, counting can be automated so ing community with the introduction of several distinct methods for counting that completed projects can be mea- function points, I would be equally LOC. Counting physical LOC involves sured with minimal time and effort and remiss to stop the story here. Function counting each line of code written while without subjectivity. points are not the answer to all software logical lines involve counting the lines measurement woes, as they come with that represent a single complete thought Function Points their own set of limitations. to the compiler. In many programming In 1979, Allan J. Albrecht introduced Albrecht developed function points languages, spaces are inconsequential; function points, which are used to quan- to address a specific problem within his because of this, the differences between tify the amount of business functionali- organization, IBM. They, like many busi- physical and logical lines can be signifi- ty an information system delivers to its nesses that developed software, were cant. Add to this the fact that even with- users [3]. Where SLOC represents some- concerned with the problem of runaway in each of these methods, there are ques- thing tangible that may or may not relate software projects and wanted to get a tions as to how to deal with blanks, com- directly to value, function points attempt better handle on their software develop- ments, and non-executable statements to measure the intangible of end user ment processes. According to Tom (such as data declarations). Programmer value. Function point counts look at the DeMarco, “you can’t manage what you style also influences the number of LOC can’t measure” [4]. Function points written as there are multiple ways a pro- related very closely to the types of busi- grammer may decide to solve a problem Where SLOC ness applications that IBM was develop- with the same language. “ ing at the time, proving to be a far supe- Additionally, if SLOC is the only represents something rior measure of business value than characteristic of a software program that SLOC; function points can be much bet- is measured, productivity and quality tangible that ter for an organization that develops studies will overlook many important these types of systems to use for pro- factors. Other important characteristics may or may not ductivity comparison studies. include the amount of reuse, the inher- It’s fair to say that function points ent difficulty of solving a particular relate directly to value, caught on like wildfire in the software problem, and environmental factors that engineering community. Many new and model the approaches and practices of function points attempt successful businesses grew around help- an organization. All of these things ing software development organizations influence the productivity of a project. to measure the use function points to improve their mea- In general, it is fair to say that SLOC surement and quality programs, especial- measurement, considered in a vacuum, intangible of ly for commercial IT software develop- is a poor way to measure the value that ments. Two problems grew out of the is delivered to the end user of the soft- end user value.” introduction of function points. The first ware. It does continue to be a popular was that the fervor to jettison the much- measure for software cost and effort maligned SLOC measures caused many estimation. Even as other metrics have five basic things that are required for a to embrace function points for all types emerged that are considered better by user to get value out of software: Input, of systems, many not well-suited to func- much of the software engineering com- Outputs, Enquiries, Internal Data tion points.