Pitfalls of Modern Software Engineering [PMSE] by Bruce F. Webster
Copyright 1995, 2007 by Bruce F. Webster. All rights reserved.
Version 0.10 — Last update: 06/18/07
[Back to XXX] [up to Part I] [Forward to Political Pitfalls]
A little learning is a dang’rous thing;
Drink deep, or taste not the Pierian spring:
There shallow draughts intoxicate the brain,
And drinking largely sobers us again.
—Alexander Pope, “An Essay On Criticism”
Modern software engineering often involves the adoption of some new technology or methodology (“the TOM”). This leads to a class of pitfalls due to confusion about what the new TOM is and what it entails. There are several reasons this happens.
First, we may get some education, but not enough. Reading articles on the TOM, or even a book or two, may create a false sense of confidence and understanding, especially given the “Aha!†rush of insight that often follows. The result is often a blithe walk right into the many pitfalls found in this book.
Second, we may confuse form with substance. When structured development became the rage in the 1970s, some developers and managers thought that structured development simply meant eliminating GOTO statements and using lots of subroutines. Likewise, when object-oriented development (OOD) became the rage in the 1990s, some developers and managers thought that OOD simply meant using a C++ compiler and creating a few object classes. Similarly, some developers and managers today think that adopting an Agile methodology simply means issuing a new software build every few weeks.
Third, we may not recognize all the implications of the TOM. A different approach to architecture, design, and coding may require — or, at least, may work best with — different management and scheduling techniques. Attempts to pound a square peg into a round hole may take longer, may jam the peg, and may even crack the board.
Fourth, we may be tempted to abandon or neglect traditional design and software engineering practices. A new TOM is often adopted with expectations of increased productivity and shortened schedules, so time is frequently not allotted to make sure that things are done right. However, as a friend of mine used to say, “Life is like the IRS: You can pay now, or you can pay later with interest and penalties.â€
In all four of these areas, time spent up front will save time later. But that has always been hard to sell to upper management.
Pitfalls for this chapter:
-
wp_list_pages("title_li=&child_of=".$post->ID.”&show_date=modified
&date_format=$date_format”); ?>
Conclusions
In some respects, these pitfalls are the most serious in modern software engineering. First, they can be among the hardest to detect. Second, they can be among the hardest to extract yourself from or to avoid. Third, they can cost you your job, whether you’re in them or fighting to get out of them.
Three core problems may occur:
- Upper management and customers have unrealistic expectations and demands for the TOM (and the team), and they do not trust technical management and developers to be honest when they say how long something should take to complete.
- Technical management, already struggling to get realistic timetables accepted and sufficient resources to meet them, feels overwhelmed by having to deal with TOM-specific issues as well, much less asking for additional time and resources to resolve them properly.
- Developers become enthusiastic about TOM, see quick results, and never complete their TOM education. Indeed, they may resist it, feeling they already understand “all that.†In the process, they may feel that they don’t have time or need for meticulous design and implementation.
Note that these three problems all have roots independent of object-oriented development, but the introduction of one or more TOMs exacerbates the existing tendencies. A company in which upper management, technical management, and developers are all working together — using realistic schedules, on-going education, and solid engineering techniques — will likely have the fewest problems and gain the most benefits from adopting a modern TOM.
References
Brooks, Frederick P., Jr. “No silver bullet: essence and accidents of software engineering.†Computer, Vol. 20, No. 4, April 1987.
Covey, Stephen. The Seven Habits of Highly Effective People. New York: Simon & Schuster Inc., 1990.
[Copyright (c) 1995, 2007 by Bruce F. Webster. All rights reserved.]
