Software Design Process
- All the probable users are asked to contribute their thoughts
on what the project was supposed to do. Most of them suggest things
entirely unrelated to the description of the project.
- All reasonable suggestions are torn up and fed to a goat.
- The goat is sacrificed in the middle of an inverted pentagram
while the PM chants "CTHULHU FNAGN" (this step is optional).
- The development group works out a good application framework on
a whiteboard. The least popular member of the group is then
assigned to create a PowerPoint detailing the proposed
framework.
- Out of bitterness, the guy writing the PowerPoint discards the
teams ideas and writes his own. The PowerPoint is then sent to
management.
- Management approves or vetoes the project based on the color
scheme used.
- The team sudddenly finds themselves commited to a shitty
framework. The alpha geek on the team blames the PM and begins
playing political games to get him/her replaced.
- Deciding that misery loves company, the team asks the Unix and
NT admins what platform the application should run on.
- The Unix wookies and the NT trolls declare total war on each
other and the PM gets cc'd on every message in the resulting flame
war.
- The team hires a bunch of contractors to help develop the
project.
- Performance review time. Everyone tries to look good at the
expense of others. Massive flame wars erupt.
- Team begins to develop application while attempting to keep PM
in the dark.
- PM gets revenge by requesting customer feedback on the proposed
feature set.
- Team vetoes all customer requests, promises to include them in
the next version.
- Management hears the customer complaints. Demands more
PowerPoints.
- Reorg time. PM now reports to a new manager.
- Team missed deadline for first beta as they are working on
PowerPoint slides.
- Cubicle move. Work interrupted as everyone in the building
starts moving cubes to the tune of 'Pop Goes the Weasel'. When the
music stops, they all rush to a new cube except for one sluggish
contractor who is promptly fired.
- Team missed second beta deadline due to the loss of the
contractor fired in step 18.
- Management decides that the project will never get finished,
cancels it.
This isn't the best way to design software, but it seems to be a
common method.
-- Shoeboy