Mythical Man-Month Essay ------------------------ Richard Hsieh (rhsieh) 02/19/03 According to Frederick P. Brooks, there are two essential planning stages in a software engineering project: architecture and implementation. The architecture involves creating the specifications for the project, while the implmentation takes into the account what we know as design. In his essay titled "Aristocracy, Democracy, and System Design," Brooks suggests that there these two stages be complete independent of one another. That is, the architects should write all the specifications for the project, while the implementers stay strictly with designing the program from those specifications. Using this methodology to produce large projects and operating systems, I would have to completely agree with Brooks. During one of my summer internships with a eCRM company, I was given a specifications document with all features that I was to implement in a demo program. I did not know how this program would fit into the company's entire system, but I knew clearly what I had to do. By not having to write up specifications, I did not have to deal with all the hassle of having to communicate with countless people to figure out what was needed. Also, I was able to focus and put all my effort into a specific task. However, in a small team that is creating a project from the ground up, Brooks' ideas are hard to follow. I found it difficult to imagine a small team of workers where half were involved with administrative work, a few with clerical duties, and the rest with programming. It seems that if a project were divided in such a way, little would get done and many would be sitting around with little to do. Instead, I imagine that the original architects would become implementers, and those implementers would eventually be the realizers. All members would know the architecture of the entire project, but would implement separate parts. Unless one were to write an operating system, I see this as a adequate method of organizing a team for any type of project.