← Week 01 | Week 05 → |
In the 1960's and early 1970's, software projects grew in size and complexity. The old Code and Fix methodology was not suited for projects of this scale and an alarming number of projects failed. By some accounts, as many as 75% of all projects failed to meet their requirements, failed to be delivered on time, or failed to produce a working product. We call this the Software Crisis. At this time, Winston Royce published his paper documenting successful phases that every project needs to complete to prevent the risk of the project failing. It was the first of many software methodologies to that shape how we build software products today.
There are two parts to the reading this week. The first part is a couple chapters from the Mythical Man Month which is meant to frame the problem. The second part describes one solution to the problem: the waterfall methodology.
Passing the Word
In this essay, Brooks introduces the notion of a specification (or "spec" for short). Pay particular attention to what a spec is and what a spec is not. He then goes on to describe the many forms a specification may take. Note that the Royce article (which we will read this week) goes into more detail about different types of specs that a software engineer will encounter. Even though he is referring to events that transpired a half century ago, his observations are still valid.
F. Brooks,
Chapter 6: Passing the Word.
The Mythical Man-Month : Essays on Software Engineering, Anniversary Edition
The Surgical Team
In this chapter, Brooks presents the importance of the development effort being guided by "one mind" where projects developed with many different design ideas and philosophies tend to feel disjointed. How, then, does one achieve this unification when large numbers of workers must be brought to take on big problems?
The second part of the chapter describes one such organizational strategy. While Brooks' essay is persuasive, it is important to realize that no teams are actually organized in this way. How, then, can one morph his or her ideas into a workable solution? Keep this question in mind as you read Brooks' chapter and the next two articles for this week's reading.
F. Brooks,
Chapter 3: The Surgical Team.
The Mythical Man-Month : Essays on Software Engineering, Anniversary Edition
Managing the Development of Large Software Systems
This article is perhaps the single most important article in software engineering. It is certainly the most important article of this class. Royce laid the groundwork on which all software development models would be built, from his era up to present day.
This paper introduces the Waterfall model though the term "Waterfall" does not appear anywhere in the paper. The name comes from the particular way Royce laid out Figure 2 on page 329.
Please read this paper carefully. Just about all the rest of the articles of the semester will refer to "Royce" or "Waterfall." Most of them will mis-characterize the Waterfall model to some degree.
W. Royce, "Managing the Development of Large Software Systems," Proceedings of the IEEE WESCON,
pp. 328-338, Aug. 1970
[Online] Available:
http://dl.acm.org/citation.cfm?id=41801
A Waterfall Systems Development Methodology... Seriously?
In this article, Dischave addresses some of the many commonly-held misconceptions about Royce's paper. The purpose of this reading is to help you be on the guard about such misconceptions and gain some perspective as to how the industry thinks of the Waterfall method.
D. Dischave,
"A Waterfall Systems Development Methodology... Seriously?,"
Global Enterprise Technology, Sep. 2012
[Online] Available:
http://get.syr.edu/news_alt.aspx?recid=401
← Week 01 | Week 05 → |