¶ … Silver Bullet
During the 1970's, companies had difficulty delivering software within the constraints of schedule, budget, and quality (Food for Thought, 2005). The problem grew worse over time. Many projects undertaken in the 1980's and 1990's were complete disasters, failing to deliver anything, grossly exceeding budget and schedule deadlines, and delivering poor quality. Also, during the 1980's a "software crisis" occurred in which the spending on software maintenance exceeded spending on creating new software products. So, why can't software be mass produced in a way that is reliable and consistent just as manufactured goods are delivered today? There are many theories regarding lack of software productivity. Brooks (1987) holds that the fundamental nature of software prevents meaningful automation. Cox (1996), on the other hand, makes the interesting assertion that software development issues stem from market dynamics, namely the way software is bought and sold. Most recently, experts have turned their eyes to the organization itself, claiming a lack of IT governance as the cause of software project failures (Weill and Ross, 2004). This paper finds that all these theories and many more not discussed all help to shed light on barriers to software productivity.
Brooks (1987) holds that the problems in software development productivity are attributable primarily to conceptual components and, therefore, no efforts on the task components that are nothing more than the expression of the concepts can bring about large productivity gains. Brooks states, "I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation." Therefore, he asserts that there is no technology or management technique that will produce even one order-of-magnitude improvement in software productivity, reliability and simplicity.
Further, Brooks (1987) describes a software product as being fundamentally different from a manufactured good. Unlike a manufactured product, scaling up of a software element is not about repetition of the same elements into large sizes, it must involve an increase in the number of different elements that interact with each other in a nonlinear fashion. Because software must conform to other interfaces, this complexity is impossible to simplify. Also, manufactured things aren't expected to change after manufacture, but software must constantly...
Cloud Computing to Assist Multi-Site Software Companies The Use of DSS to Assist Multi-Site Software Companies As technology becomes more and more globalized, so does the focus of computer technology and this includes the globalization of software development (Holsapple, 2006). As a result, the demands of requirements engineering in multi-site software development organizations are increasing. The task is becoming increasingly difficult to handle because of the different needs of the globalized
Our semester plans gives you unlimited, unrestricted access to our entire library of resources —writing tools, guides, example essays, tutorials, class notes, and more.
Get Started Now