[ Team LiB ] |
Can't Get No SatisfactionReich's political predictions may not have withstood the test of time, but his classification of Con I, Con II, and Con III provides a useful model for the software industry today. Con I in software is associated with a focus on self-reliance. Software experts often refer to software developers operating at this level of awareness as mavericks, cowboy programmers, Lone Rangers, and prima donnas. Software developers at this level tend to have little tolerance for other people's ideas. They like to work alone. They don't like following standards. The "Not Invented Here" syndrome thrives. Con I's advantage is that little training is needed, and the lone wolf approach works adequately in environments that employ only small numbers of programmers who work independently on small projects. Con I's disadvantage is that it scales poorly to projects that need teams of programmers rather than isolated individuals, which means it is valuable only on the smallest projects. Con II in software is associated with a focus on rules. Many software developers eventually discover the limitations of Con I's self-reliant development style and see the advantages of working in groups. Over time, they learn rules that allow them to coordinate their work with others. Some groups of developers create their own informal rules through trial and error, and these groups can be highly effective. Other groups buy a prebuilt methodology. Sometimes the rules are provided by consultants�as in the classic "17 three-ring-binders" methodologies. Other times, the rules are taken from books, such as the Rational Unified Process,[2] the Extreme Programming series,[3] or my own Software Project Survival Guide.[4] Developers at this level of awareness tend to focus on details of adherence to the rules. They argue about which interpretations of the rules are correct and focus on "following the methodology." Con III in software is associated with a focus on principles. At this level of awareness, developers understand that the rules of any prepackaged methodology are, at best, approximations of principles. Those approximations might apply most of the time, but they won't apply all of the time. Extensive education and training are needed to introduce a developer to the Con III principles underlying effective software development, and that education and training is not easily obtained. Once that education and training has been obtained, however, the developer is equipped with a full range of software engineering tools to support success on a wide range of projects. Whereas a Con II approach consists of the repetitive application of techniques and procedures, Con III's focus on principles requires the application of judgment and creativity. With Con II, a developer can be trained to use just a single approach. If a good approach is chosen, a developer can leverage a relatively small amount of training across many projects. The gap between Con II and Con III will appear to be small when a Con II approach is used within its area of applicability. But a Con II developer will be ill-equipped to succeed on projects that fall outside the range of the specific methodology in which the developer was trained. The Con II developer is essentially an individual example of the Cargo Cult organization described in Chapter 3�procedures are followed without a thorough understanding of what makes them work, which leads to spotty project results. |
[ Team LiB ] |
No comments:
Post a Comment