Insight News Past Issues Write for IT Insight Press Releases Subscribe IT Insight Advertise on IT Insight Contact
   Menu

“Faster-Better-Cheaper”   
Strategy for Software Development Projects  
Qaiser Khan  

 
While the goal of any software development project has always been to produce excellent software within the prescribed time and budget limits, the redefined and most modern mindset of “Faster-Better-Cheaper” software development projects with implied competitive suggestion is becoming more popular among the software houses throughout the world, especially in the USA, China, and India. In the current ruthlessly dog eat dog competition for software supremacy, the old fashion philosophy and methods will just not cut it in the marketplace. What the new mindset means for the developers is to strive to beat the other guys in the market, develop a killer applications, and do so cheaper than the other guys can do. This is the ultimate objective of the modern project management.

The term “Faster-Better-Cheaper” was popularized by Dan Goldin during his tenure as, NASA, American aerospace agency, administrator. Goldin adopted this approach to all NASA's space projects after American Congress drastically cut his agency's budget and asked him to do more with little. Goldin responded with his resoundingly successful implementation of the “Faster-Better-Cheaper” approach to his projects. Project managers from multitude of disciplines, including software developing, studied and learned valuable lessons from this approach. What changed for the software developer are the goal and the craft of project management with accentuation on aggressiveness.

The new goal emphasizes that projects must be completed faster, and its product must be better and cheaper than the competition. The change in the craft, however, has numerous elements but first and foremost, the most important one is the renewed emphasis on the optimization of the available resources. How we go about doing this optimization? This is the focus of attention of this article.
One of the best ways to solve a problem fast is to break the problem into pieces and arrange for all the pieces to be solved simultaneously parallel processing. These pieces are variably called, tasks, elementary tasks, pebbles, activities or a number of other terms preferred by various organizations for their internal use. In this article we will call these pieces elementary tasks. The more the elementary tasks, the quicker the resolution of the total problem. This simple and obvious observation underlines the science and art of modern project management the theoretical essence of the project management. In practice, however, almost always the environment is not as accommodating. There are a variety of reasons that this breaking-up into pieces and simultaneous solution of those pieces can work only up to a point. They all relate to the practical problems of (1), cohesiveness of the elementary activity, (2), dependency of the elementary activities on each others, and (3), assignment of resources to complete each elementary activity. Lets discuss each of these elements as follows:

Cohesiveness

Cohesiveness of an elementary activity occurs when further division of it is either impossible or will not yield any additional advantage that is, when it reaches the point of diminishing returns. A skilled project manager will reduce the size of each elementary activity to its minimum manageable extent and then chart an attack strategy that will complete the activity with minimum possible resources and will also conform to the overall project completion goal. He will avoid miss allocation of resources by assigning suitable resources that are just appropriate for that particular elementary element.

Dependency

Dependency is a state in the life cycle of an elementary activity where it has to wait for one or more other elementary activities to be completed before work on this activity can be concluded. For example, in a house construction work the building of the roof cannot be completed until the walls have been erected and ready to support the roof. Although, some assembly work can be worked on during the time the walls are being raised. In this case the erection of the walls is a dependency for the construction of roof activity. Project manager will also define these dependencies for each of the elementary activity. If designed poorly it can come back and haunt the development staff with lots of frustration and uneasiness, perhaps cost and time overruns and, conceivably, defective software products.

Assignment of resources

Project managers have many essential resources available to them to assign to the individual elementary activities. These include computer time, clock time, human resources, and software development tools, etc. Assigning proper resources to proper elements is a valuable skill. To achieve a high level of optimization a project manager will design the project such that the number of elementary elements simultaneously being worked on is at the maximum the available resources can possibly sustain. The allocation of resources to each element is also built into the project design. This is a dynamic process with constant shifting of resources from one element to another. Resources freed up from one element are to be immediately reallocated to others waiting to be completed. Idling resources is a waste that must be avoided by all means. It also shows poor project design. Some contingency plans must also be built into the project design to circumvent this eventuality in situations where idling is caused by external factors beyond the control of the project manager. A skillful project manager will constantly keep an eye on the dependent elements upcoming to be worked on and the freed up resources for immediate reassignment to that element. This transition must be smooth without the occurrence of idling or delays.

These strategies play an important role in developing software projects that will satisfy the intended goals of the project. Although there are project management software tools available, they mostly deal with tracking the project after it has been designed and defined by the project manager. The basic work of identifying the elementary elements, dependencies, and the allocation of the resources still have to be worked out by the project manager. Project managers paying attention to these basic strategies will get the biggest bang for their buck and efforts with instant results.

During his 25-year career as project manager, the writer has developed large, complex, multi-million dollar software projects for the state government in the US. He has provided training and consultancy services in project management to software houses in the USA, India, China, and Japan.

 

   Latest