needed at the right time. Additionally, Brooks muses that "good" programmers are generally five to ten times as productive as mediocre ones. Code freeze and system versioning Software is invisible. Therefore, many things only become apparent once a certain amount of work has been done on a new system, allowing a user to experience it. This experience will yield insights, which will change a user's needs or the perception of the user's needs. The system should, therefore, be changed to fulfill the changed requirements of the user. This can only occur up to a certain point, otherwise the system may never be completed. At a certain date, no more changes should be allowed to the system and the code should be frozen. All requests for changes should be delayed until the next version of the system. Specialized tools Instead of every programmer having their own special set of tools, each team should have a designated tool-maker who may create tools that are highly customized for the job that team is doing (e.g. a code generator tool that creates code based on a specification). In addition, system-wide tools should be built by a common tools team, overseen by the project manager. Lowering software development costs There are two techniques for lowering software development costs that Brooks writes about: Implementers may be hired only after the architecture of the system has been completed (a step that may take several months, during which time prematurely hired implementers may have nothing to do). Another technique Brooks mentions is not to develop software at all, but simply to buy it "off the shelf" when possible. See also Anti-pattern Code refactoring Peopleware: Productive Projects and Teams Software development process Hofstadter%27s law Bibliography References External links Frederick P. Brooks, Jr. Homepage Organization and Team Patterns A review by Hector Correa on chapters "The Mythical Man-Month" and "No Silver Bullet – Essence and Accident" Selected TEXT from The Mythical Man-Month 1975 non-fiction books Software development books Software project management Addison-Wesley books