Tutorials‎ > ‎Anti Patterns‎ > ‎

Software Project Management AntiPatterns

In the modern engineering profession, more than half of the job involves human communication and resolving people issues. The management AntiPatterns identify some of the key scenarios in which these issues are destructive to software processes.

The role of the technical manager is changing. Before ubiquitous electronic mail and intranets, managers were primarily organizational communicators. Management chains conveyed information across organizational boundaries, whereas in the electronic organization, communication can occur seamlessly across space, time, and boundaries.

Traditionally, a key role of management has been to authorize exceptions to rules and procedures. But business-process reengineering (BPR) of organizational structures has changed that role significantly. Before reengineering, organizational boundaries enforced legacy business rules that were often counter productive. In reengineered organizations, unproductive boundaries are eliminated, and people are empowered to solve problems without management intervention. In software development, however, managers still play several important roles, in the areas of:
  1. Software process management
  2. Resource management (human & IT infrastructure)
  3. External relationship management (e.g., customers, development partners)

Blowhard Jamboree: The opinions of so-called industry experts often influence technology decisions. Controversial reports that criticize particular technologies frequently appear in popular media and private publications. In addition to technical responsibilities, developers spend too much time answering the concerns of managers and decision makers arising from these reports.

Analysis Paralysis: Striving for perfection and completeness in the analysis phase often leads to project gridlock and excessive thrashing of requirements/models. The refactored solution includes a description of incremental, iterative development processes that defer detailed analysis until the knowledge is needed.

Viewgraph Engineering: On some projects, developers become stuck preparing viewgraphs and documents instead of developing software. Management never obtains the proper development tools, and engineers have no alternative but to use office automation software to produce psuedo-technical diagrams and papers.

Death by Planning: Excessive planning for software projects leads to complex schedules that cause downstream problems. Plan a reasonable software development process that includes incorporating known facts and incremental replanning.

Fear of Success: An interesting phenomenon often occurs when people and projects are on the brink of success. Some people begin to worry obsessively about the kinds of things that can go wrong. Insecurities about professional competence come to the surface.

Corncob: Difficult people frequently obstruct and divert the software development process. Corncobs can be dealt with by addressing their agendas through various tactical, operational, and strategic organizational actions.

Intellectual Violence: Intellectual violence occurs when someone who understands a theory, technology, or buzzword uses this knowledge to intimidate others in a meeting situation.

Irrational Management: Habitual indecisiveness and other bad management habits lead to de facto decisions and chronic development crises. Utilize rational management decision-making techniques to improve project resolution and for keeping managers on track.

Smoke and Mirrors: Demonstration systems are important sales tools, as they are often interpreted by end users as representational of production-quality capabilities. A management team, eager for new business, sometimes (inadvertently) encourages these misperceptions and makes commitments beyond the capabilities of the organization to deliver operational technology.

Project Mismanagement: In attention to the management of software development processes can cause directionlessness and other symptoms. Proper monitoring and control of software projects is necessary to successful development activities. Running a product development is as complex an activity as creating the project plan, and developing software is as complex as building skyscrapers, involving as many steps and processes, including checks and balances. Often, key activities are overlooked or minimized.

Throw It over the Wall: Object-oriented methods, design patterns, and implementation plans intended as flexible guidelines are too often taken literally by the downstream managers and object-oriented developers. As guidelines progress through approval and publication processes, they often are attributed with unfulfilled qualities of completeness, prescriptiveness, and mandated implementation.

Fire Drill: Airline pilots describe flying as “hours of boredom followed by 15 seconds of sheer terror.” Many software projects resemble this situation: “Months of boredom followed by demands for immediate delivery.” The months of boredom may include protracted requirements analysis, replanning, waiting for funding, waiting for approval, or any number of technopolitical reasons.

The Feud: Personality conflicts between managers can dramatically affect the work environment. The employees reporting to these managers often suffer the consequences of their supervisors’ disagreements. Animosity between managers is reflected in the attitudes and actions of their employees.

E-mail Is Dangerous: E-mail is an important communication medium for software managers. Unfortunately, it is an inappropriate medium for many topics and sensitive communications.