Managing Information Technology Projects: Applying Project Management Strategies to Software, Hardware, and Integration Initiatives

The term "rapid development strategy" conjures up images of applying new and exotic techniques to the development process. The fact is, most processes can be significantly improved just by making them more efficient. Improving development schedules is no exception. The best strategy for rapid development is one that focuses on these four points:

  1. Avoid classic mistakes.

  2. Apply developmental strategies.

  3. Manage risks to avoid catastrophic setbacks.

  4. Apply practices that are oriented toward schedule improvement.

The first three points are those that any efficient developer would follow and should be common practice. However, organizations tend to ignore the obvious in favor of the silver bullet, which, sad to say, does not exist. But if the first three points are combined with the last bullet, which refers to three specific schedule enhancement techniques, the overall development process will be improved and shortened.

Avoiding Classic Mistakes

Organizations and project teams make a number of mistakes that have direct and dire impacts on development schedules, in particular, and on productivity, in general. Although there are many more common mistakes than are presented here, I have listed the four or five in several categories that seem to be the most prevalent.

People

Process

Product

Technology

Classic mistakes occur because they become so common that they are transparent in the work environment. As obvious as they might seem, classic mistakes must be identified, planned for, and eliminated. The result will be a significantly shortened schedule.

Applying Developmental Strategies

There are several fundamental strategies associated with development that also can improve schedules. Like the classic mistakes, most of these fundamental strategies are obvious. But like the mistakes, they are too obvious to notice without a conscious effort. The following strategies are categorized to focus attention on functions within the organization that need strengthening.

Management Fundamentals

Technical Fundamentals

Quality Assurance Fundamentals

Managing Risks to Avoid Catastrophic Setbacks

The importance of risk and risk management were discussed in detail in Chapter 7. However, it is worth restating. Risk management is a developmental strategy that protects the project, and the organization, from failure. If properly exercised, it also carries with it the collateral benefit of significantly improving the development schedule. When one considers how devastating an unplanned risk can be, it is a wonder that risk management is not the highest priority of every organization. Risk management is a process that has to be supported by senior management, documented and promulgated to everyone in the organization, and implemented without fail in every project. To do less is to invite failure.

One cannot plan for, or identify, all risks. As we have pointed out, there are simply some risks that are not known, nor can their impact to the project be anticipated. But the majority of risks can be anticipated and planned for with contingency plans and reserves, either in money or time. The other risks can be dealt with if they occur, provided the organization is oriented toward proactively meeting and dealing with them.

One key component of risk management that is often overlooked, even in reasonably astute organizations, is the identification of risk triggers. A risk trigger is an event or an indication that signals the likelihood that a risk event is about to occur. If the project team has identified triggers, they can then recognize the potential onset of the risk event before it happens, and they often are able to eliminate the risk.

The three components of a rapid development strategy discussed to this point are really nothing more than efficient development practices. In other words, they are practices that any good software development organization should already practice. However, even good development organizations need to reexamine their processes occasionally, make sure their procedures are current, and make sure that the project teams are practicing them. Improving on basic development practices will improve the developmental process, but adding practices that target schedule improvement directly will shorten the development schedule even more.

Applying Schedule-Oriented Practices

Indirectly attacking the schedule by avoiding classic mistakes, applying developmental strategies, and managing risks definitely shorten the development time, but the amount of improvement depends entirely upon the amount of process or procedural improvement needed. In other words, organizations that already practice efficient development and continually improve their procedures will not realize much, if any, improvement in the development schedule simply by fine-tuning their methods. However, there are other, more direct schedule-oriented practices that significantly improve development time, even for those already efficient organizations. These schedule-oriented practices do not, however, take the place of good, efficient development techniques; they are used to enhance them.

There are three basic categories of schedule-oriented practices: speed-oriented practices, risk oriented practices, and visibility-oriented practices. The first (speed-oriented) means exactly that—concentrating on those practices that directly increase the speed of development. The second category has to do with focusing on risk elimination to avoid any kind of delay that might impact the schedule. And the third category focuses on those practices that provide complete project visibility to the customer and other stakeholders, thus avoiding delays due to misunderstandings, misinterpretation, or miscommunication.

Speed-Oriented Practices

Speed-oriented practices are techniques that shorten the development schedule but generally add risk. These techniques add risk when they involve either accomplishing tasks in parallel that might otherwise be done serially, or they involve developing project requirements with the customer as the project progresses, or both. Conscientiously adding risk to a project is not necessarily bad, but it does require diligence, tracking, and a contingency plan.

An example of applying a speed technique is shown in Exhibits 10-1 and 10-2. Exhibit 10-1 shows a partial project following a typical waterfall development process, that is, the phases or tasks follow each other serially. Exhibit 10-2 shows the same project being expedited by overlapping the tasks. Beginning work on the next task before its predecessor is complete shortens the development schedule. However, by starting the next task, one has to make assumptions that may not be correct. Hence, an element of risk is interjected into the process. The less stable the requirements, the less such an approach should be used. Dealing with more assumptions only exacerbates the problem of undefined requirements.

Exhibit 10-1: Partial example of waterfall development.

Exhibit 10-2: Example of a modified waterfall development.

Scheduling Risk-Oriented Practices

In general, risks invariably affect the schedule. Some risk events affect the schedule more directly and with more force than others do. For instance, a project having tasks that require special skills represents a threat to the schedule, if the appropriate resources are not available when needed. So a risk-oriented strategy would be to determine what skills are needed and when they are needed, then arrange for the requisite resources—either by teaming with a specialty company, hiring consultants, or even opting for an alternative technical approach, thus avoiding the skill set crisis.

Risk-oriented practices have more to do with avoiding delays than speeding up an existing development process. But the more sensitive a project team and organization is to risk, the fewer riskrelated delays will occur, creating a faster and smoother development cycle.

Visibility-Oriented Practices

It is often the case that customers and other stakeholders delay projects when they try to satisfy their own needs, or requirements, for information or status. This situation is particularly prevalent in projects that are of strategic importance or that have critical impact on the future of the organization, such as a new product with the potential for creating a competitive or market edge. Applying practices that provide visibility into the project activities and project progress satisfies the customer's or stakeholders' needs. In addition, it improves the schedule by eliminating unplanned reviews and inquiries. It also provides the added benefit of securing customer and stakeholder support and help throughout the project life cycle.

It is not likely that you will employ one or the other of these three schedule-oriented practices. It is more likely that you will use a combination of the three, because focusing on only one practice (to the exclusion of the others) generally creates problems in the other two areas. For instance, concentrating on speed invariably introduces some risk. So an approach that increases development speed, introduces a moderate, but controllable, amount of risk, and actively includes stakeholders leads to a faster and smoother development schedule.

Категории