This paper describes the practices of agile methods from the viewpoint of project management.
The project management techniques are complex processes that require the understanding and coordination of several domains of knowledge.
As more and more software projects engage Agile Methods, there are emerging patterns of success and failure. With growing adoption of Agile Methods, project managers increasingly need to understand the applicability to their projects and factors that drive key project performance characteristics.
Agile Methods have advantages, especially in accommodating change due to volatile requirements. However, they also present concomitant risks with managing the many dependent pieces of work distributed across a large project.
The paper is divided into four parts. In the first part an overview of the project management and its processes and knowledge areas discussed. after that the agile methods discussed following with a short history of RAD(We should mention that just three most used and famous methodologies are discussed).
In the second part the project management approaches and a brief definition of each approach are given.
In the third part we looked at the agile methodologies from project management areas view such as cost, time, quality and risk management and we compared agile methodologies and we explained their advantages and disadvantages.
In the fourth part we discussed about combination of agile methodologies and their utilization in large and complex projects.
And finally we propose our own idea about the future of project management in agile methods.
Keywords Project Management, Rapid Development Methodologies, Agile Project Management, History of RAD, Project management approaches, Agile Performance Measurement, Investment and Risk, Agile Enterprise Framework, Agile Methodology Fit
What is Project?
- A human activity that achieves a clear objective against a time scale
- “A project is a one-shot, time-limited, goal-directed, major undertaking, requiring the commitment of varied skills and resources”.
A project is a temporary endeavor undertaken to create a unique product or service. A project is temporary in that there is a defined start (the decision to proceed) and a defined end (the achievement of the goals and objectives). Ongoing business or maintenance operations are not projects. Energy conservation projects and process improvement efforts that result in better business processes or more efficient operations can be defined as projects. Projects usually include constraints and risks regarding cost, schedule or performance outcome.
What is Project Management?
Many have attempted to define project management. One example, Oisen,3 referencing views from the 1950’s, may have been one of the early attempts. Project Management is the application of a collection of tools and techniques (such as the CPM and matrix organization) to direct the use of diverse resources toward the accomplishment of a unique, complex, one-time task within time, cost and quality constraints. Each task requires a particular mix of theses tools and techniques structured to fit the task environment and life cycle (from conception to completion) of the task.
Notice in the definition are included some the success criteria, The Iron triangle. Those criteria for measuring success included in the description used by Oisen3 continue to be used to describe project management today. The British Standard for project management BS60794 1996 defined project management as:
The planning, monitoring and control of all aspects of a project and the motivation of all those involved in it to achieve the project objectives on time and to the specified cost, quality and performance. The UK Association of project Management (APM) have produced a UK Body of Knowledge UK (BoK)5
which also provides a definition for project management as:
The planning, organization, monitoring and control of all aspects of a project and the motivation of all involved to achieve the project objectives safely and within agreed time, cost and performance criteria. The project manager is the single point of responsibility for achieving this. Other definitions have been offered, Reiss6 suggests a project is a human activity that achieves a clear objective against a time scale, and to achieve this while pointing out that a simple description is not possible, suggests project management is a combination of management and planning and the management of change.
Lock’s7 view was that project management had evolved in order to plan, co-ordinate and control the complex and diverse activities of modern industrial and commercial projects, while Burke8 considers project management to be a specialized management technique, to plan and control projects under a strong single point of responsibility.
While some different suggestions about what is project management have been made, the criteria for success, namely cost, time and quality remain and are included in the actual description. Could this mean that the example given to define project management Oisen3 was either correct, or as a discipline, project management has not really changed or developed the success measurement criteria in almost 50 years.
Project management is a learning profession. Based upon past mistakes and believed best practice, standards such as BS 60794 and the UK Body of Knowledge5 continue to be developed. But defining project management is difficult, Wirth,9 indicated the differences in content between six countries own versions of BoK’s. Turner10 provided a consolidated matrix to help understand and moderate different attempts to describe project management, including the assessment. Turner10 further suggested that project management could be described as: the art and science of converting vision into reality. Note the criteria against which project management is measured is not included in that description. Is there a paradox however in even attempting to define project management? Can a subject which deals with a unique, one-off complex task as suggested as early as Oisen3 be defined? Perhaps project management is simply an evolving phenomena, which will remain vague enough to be non-definable, a flexible attribute which could be a strength. The significant point is that while the factors have developed and been adopted, changes to the success criteria have been suggested but remain unchanged. Could the link be, that project management continues to fail because, included in the definition are a limited set of criteria for measuring success, cost, time and quality, which even if these criteria are achieved simply demonstrate the chance of matching two best guesses and a phenomena correctly. Prior to some undergraduate lectures and workshops about project management, the students were asked to locate some secondary literature describing project management and produce their own definition. While there were some innovative ideas, the overriding responses included the success criteria of cost, time and quality within the definition. If this is the perception about project management we wish those about to work in the profession to have, the rhetoric over the years has worked. Has this however been the problem to realizing more successful projects? To date, project management has had the success criteria focused upon the delivery stage, up to implementation. Reinforced by the very description we have continued to use to define the profession. The focus has been to judge whether the project was done right. Doing something right may result in a project which was implemented on time, within cost and to some quality parameters requested, but which is not used by the customers, not liked by the sponsors and does not seem to provide either improved effectiveness or efficiency for the organization, is this successful project management?
Project Management Life Cycle
The process flow of Project management processes is shown below. The various elements of project management life cycle are
- Need identification
- Closing out
a) Need Identification
The first step in the project development cycle is to identify components of the project. Projects may be identified both internally and externally:
- Internal identification takes place when the energy manager identifies a package of energy saving opportunities during the day-to-day energy management activities, or from facility audits.
- External identification of energy savings can occur through systematic energy audits undertaken by a reputable energy auditor or energy service company.
- In screening projects, the following criteria should be used to rank-order project opportunities.
- Cost-effectiveness of energy savings of complete package of measures (Internal rate of return, net present value, cash flow, average payback)
- Sustainability of the savings over the life of the equipment.
- Ease of quantifying, monitoring, and verifying electricity and fuel savings.
- Availability of technology, and ease of adaptability of the technology to Indian conditions.
- Other environmental and social cost benefits (such as reduction in local pollutants, e.g. SOx)
Initiating is the basic processes that should be performed to get the project started. This starting point is critical because those who will deliver the project, those who will use the Bureau of Energy Efficiency project, and those who will have a stake in the project need to reach an agreement on its initiation. Involving all stakeholders in the project phases generally improves the probability of satisfying customer requirements by shared ownership of the project by the stakeholders. The success of the project team depends upon starting with complete and accurate information, management support, and the authorization necessary to manage the project.
The initiation stage should include a plan that encompasses the following areas:
- Analyzing the business needs/requirements in measurable goals
- Reviewing of the current operations
- Financial analysis of the costs and benefits including a budget
- Stakeholder analysis, including users, and support personnel for the project
- Project charter including costs, tasks, deliverables, and schedule
The planning phase is considered the most important phase in project management. Project planning defines project activities that will be performed; the products that will be produced, and describes how these activities will be accomplished and managed. Project planning defines each major task, estimates the time, resources and cost required, and provides a framework for management review and control. Planning involves identifying and documenting scope, tasks, schedules, cost, risk, quality, and staffing needs.
The result of the project planning, the project plan, will be an approved, comprehensive document that allows a project team to begin and complete the work necessary to achieve the project goals and objectives. The project plan will address how the project team will manage the project elements. It will provide a high level of confidence in the organization’s ability to meet the scope, timing, cost, and quality requirements by addressing all aspects of the project.
Project planning generally consists of
- determining how to plan (e.g. by level of detail or rolling wave);
- developing the scope statement;
- selecting the planning team;
- identifying deliverables and creating the work breakdown structure;
- identifying the activities needed to complete those deliverables and networking the activities in their logical sequence;
- estimating the resource requirements for the activities;
- estimating time and cost for activities;
- developing the schedule;
- developing the budget;
- risk planning;
- gaining formal approval to begin work.
Additional processes, such as planning for communications and for scope management, identifying roles and responsibilities, determining what to purchase for the project and holding a kick-off meeting are also generally advisable.
For new product development projects, conceptual design of the operation of the final product may be performed concurrent with the project planning activities, and may help to inform the planning team when identifying deliverables and planning activities
Once a project moves into the execution phase, the project team and all necessary resources to carry out the project should be in place and ready to perform project activities. The project plan is completed and base lined by this time as well. The project team and the project manager’s focus now shifts from planning the project efforts to participating, observing, and analyzing the work being done.
The execution phase is when the work activities of the project plan are executed, resulting in the completion of the project deliverables and achievement of the project objective(s). This phase brings together all of the project management disciplines, resulting in a product or service that will meet the project deliverable requirements and the customers need. During this phase, elements completed in the planning phase are implemented, time is expended, and money is spent.
In short, it means coordinating and managing the project resources while executing the project plan, performing the planned project activities, and ensuring they are completed efficiently.
e) Monitoring and Controlling
Project Control function that involves comparing actual performance with planned performance and taking corrective action to get the desired outcome when there are significant differences. By monitoring and measuring progress regularly, identifying Bureau of Energy Efficiency variances from plan, and taking corrective action if required, project control ensures that project objectives are met.
Monitoring and Controlling includes:
- Measuring the ongoing project activities (where we are);
- Monitoring the project variables (cost, effort, scope, etc.) against the project management plan and the project performance baseline (where we should be);
- Identify corrective actions to address issues and risks properly (How can we get on track again);
- Influencing the factors that could circumvent integrated change control so only approved changes are implemented
- In multi-phase projects,process also provides feedback between project phases, in order to implement corrective or preventive actions to bring the project into compliance with the project management plan.
Project Maintenance is an ongoing process, and it includes:
- Continuing support of end users
- Correction of errors
- Updates of the software over time
Monitoring and Controlling cycle
In this stage, auditors should pay attention to how effectively and quickly user problems are resolved.
Over the course of any construction project, the work scope may change. Change is a normal and expected part of the construction process. Changes can be the result of necessary design modifications, differing site conditions, material availability, contractor-requested changes, value engineering and impacts from third parties, to name a few. Beyond executing the change in the field, the change normally needs to be documented to show what was actually constructed. This is referred to as Change Management. Hence, the owner usually requires a final record to show all changes or, more specifically, any change that modifies the tangible portions of the finished work. The record is made on the contract documents – usually, but not necessarily limited to, the design drawings. The end product of this effort is what the industry terms as-built drawings, or more simply, “as built.” The requirement for providing them is a norm in construction contracts.
When changes are introduced to the project, the viability of the project has to be re-assessed. It is important not to lose sight of the initial goals and targets of the projects. When the changes accumulate, the forecasted result may not justify the original proposed investment in the project.
f) Closing out
Project closeout is performed after all defined project objectives have been met and the customer has formally accepted the project’s deliverables and end product or, in some instances, when a project has been cancelled or terminated early. Although, project closeout is a routine process, it is an important one. By properly completing the project closeout, organizations can benefit from lessons learned and information compiled. The project closeout phase is comprised of contract closeout and administrative closure.
This phase consists of:
- Project close: Finalize all activities across all of the process groups to formally close the project or a project phase
- Contract closure: Complete and settle each contract (including the resolution of any open items) and close each contract applicable to the project or project phase
Project Management Knowledge Areas with the Related Processes
Each of the nine knowledge areas contains the processes that need to be accomplished within its discipline in order to achieve an effective project management program. Each of these processes also falls into one of the five basic process groups, creating a matrix structure such that every process can be related to one knowledge area and one process group.
Software development projects represent an investment of resources by the project’s sponsor, an investment that often yields little or no return. The Standish Group’s Chaos Report 1994 states that fewer than 10% of software projects in large companies were successful. Medium sized companies do better with 16% of their software projects being successful, and small companies succeed on 28% of their software projects (Standish 1994). Given these statistics it is worthwhile to invest significant effort in Risk Management for software projects. “Research at The Standish Group also indicates that smaller time frames, with delivery of software components early and often, will increase the success rate.” (Standish 1994).
Extreme Programming offers nothing to help integrate the efforts of non-software developers. Unfortunately, some advocates of Extreme Programming suggest that the efforts of technical writers, database managers, and quality assurance specialist are not required. In reality, while Extreme Programming does not explicitly describe how to integrate the work of others, the practices do not preclude the ability to integrate with other efforts. Small Releases make Integration Management a more continuous process in contrast to processes that place deployment, documentation, and testing at the end of the schedule.
At a more tactical level, the Extreme Programming practice of Continuous Integration requires that the work of software developers be integrated on a daily basis. While this practice can cause additional overhead for individual developers, it allows the team to identify problems daily that would otherwise become undiscovered rework accumulating until all developers integrate their individual work products.
Scope Management & Time Management
Ask most software development teams for a copy of their project plan and you will receive an activity list formatted as a Gantt chart. Many times these activity lists will describe several phases of activities such as Analysis, Design, Construction, and Testing. Areas of functionality will be broken out under these headings in order to assign them to specific programmers, but seldom are the assignments identified in the Gantt chart clearly traceable back to a Requirement or other specification documents. All too often, the missing item that would help a team improve their planning practices is a well-constructed Work Breakdown Structure. Extreme Programming focuses almost all of its planning efforts on building a thoughtful Work Breakdown Structure and its constituent Work Packages.
Extreme Programming does not teach Work Breakdown Structures and Work Packages explicitly, however, careful study of the Story Cards used in Extreme Programming reveals that they are almost identical to Work Packages in their key attributes.
Human Resources Management
Often one of the most challenging aspects of project management is managing human resources. For software development projects in particular this includes the complex juggling of technical tasks between individual software developers who have different individual skills, effectively treating each developer’s assigned tasks as an independent subproject. This type of project plan often suffers from key resource bottlenecks and status meetings reduced to determining which individuals are falling furthest behind. Extreme Programming addresses this head-on by eliminating the dependency on individual developers. Work Packages are scheduled and authorized based on the needs of the business and the users not the needs of the software developers. All developers are cross-trained to work in all areas of the code base. Developers broaden their skills, and project managers stop worrying about keeping individual software developers for the entire duration of the project. The process maintains knowledge of the full code base in the team, not in individuals.
As programmers move from work authorization to work authorization, and often from one area of the code to another, it is easy to see that maintaining quality in the work product could be challenging. Extreme Programming requires a very disciplined design approach to allow freedom in assigning resources while maintaining high quality.
When a project manager mentions the need for improved communications on a project, software developers often immediately envision an increased number of meetings and documents. While formal meetings and written documents have their place in a communication plan there are many other tools for facilitation of communication between project participants. The Extreme Programming practices include several simple practices intended to enhance communications.
Often a Project Manager is evaluated on his or her ability to complete a project within budget. The costs include estimated cost, actual cost and variability. Contingency cost takes into account influence of weather, suppliers and design allowances.
How the 80/20 Rule can help a project manager?
The 80/20 Rule means that in anything a few (20 percent) are vital and many (80 percent) are trivial. Successful Project Managers know that 20 percent of the work (the first 10 percent and the last 10 percent) consumes 80 percent of your time and resources.
The History of RAD
Traditional lifecycles devised in the 1970s, and still widely used today, are based upon a structured step-by-step approach to developing systems. This rigid sequence of steps forces a user to “sign-off” after the completion of each specification before development can proceed to the next step. The requirements and design are then frozen and the system is coded, tested, and implemented. With such conventional methods, there is a long delay before the customer gets to see any results and the development process can take so long that the customer’s business could fundamentally change before the system is even ready for use. In response to these rigid, cascading, one-way steps of Stagewise or Waterfall Models of development, Barry Boehm, Chief SW Engineer at TRW, introduced his Spiral
Model. The Spiral Model is a risk-driven, as opposed to code-driven, approach that uses process modeling rather than methodology phases. Through his model, Boehm first implemented software prototyping as a way of reducing risk. The development process of the Spiral Model separates the product into critical parts or levels while performing risk analyses, prototyping, and the same steps at each of these levels. Similarly, Tom Gilb’s Evolutionary Life Cycle is based on an evolutionary prototyping rationale where the prototype is grown and refined into the final product.
The work of Boehm and Gilb paved the way for the formulation of the methodology called Rapid Iterative Production Prototyping (RIPP) at DuPont in the mid-to-late 1980s. James Martin then extended the work done at DuPont and elsewhere into a larger, more formalized process, which has become known as Rapid Application Development (RAD). RAD compresses the step-by-step development of conventional methods into an iterative process. The RAD approach thus includes developing and refining the data models, process models, and prototype in parallel using an iterative process. User requirements are refined, a solution is designed, the solution is prototyped, the prototype is reviewed, user input is provided, and the process begins again.
What is Agility?
There is no Agility for Dummies. Agility isn’t a silver bullet. You don’t achieve it in five easy steps. So what is it? From one view agility characterized in two statements:
“Agility is the ability to both create and respond to change in order to profit in a turbulent business environment.
Agility is the ability to balance flexibility and stability” (Highsmith 2002).
In an uncertain and turbulent world, success belongs to companies that have the capacity to create change, and maybe even chaos, for their competitors. Creating change disrupts competitors (and the entire market ecosystem); responding to change guards against competitive thrusts. Creating change requires innovation: developing new products, creating new sales channels, reducing product development time, customizing products for increasingly smaller market segments. In addition, your company must be able to respond quickly to both anticipated and unanticipated changes created by your competitors and customers.
An example of a product development effort in which all the aspects of agility come into play is that of small, portable DNA analyzers. These instruments can be used for analyzing suspected bio-terror agents (e.g., anthrax), performing quick medical diagnoses, or undertaking environmental bacterial analysis. These instruments must be accurate, easy to use, and reliable under wide-ranging conditions, and their development depends on breakthroughs in nanotechnology, genome research, and micro-fluidics. Developing these leading-edge products requires blending flexibility and structure, exploring various new technologies, and creating change for competitors by reducing delivery time. These are not projects that can be managed by traditional, prescriptive project management methodologies.
Some people mistakenly assume that agility connotes a lack of structure, but the absence of structure, or stability, generates chaos. Conversely, too much structure generates rigidity. Complexity theory tells us that innovation—creating something new in ways that we can’t fully anticipate (an emergent result) occurs most readily at the balance point between chaos and order, between flexibility and stability. Scientists believe that emergence, the creation of novelty from agent interaction, happens most readily at this “edge of chaos.” The idea of enough structure, but not too much, drives agile managers to continually ask the question, “How little structure can I get away with?” Too much structure stifles creativity. Too little structure breeds inefficiency.
This need to balance at the edge of chaos to foster innovation is one reason process-centric methodologies often fail. They push organizations into over-optimization at the expense of innovation. Agile organizations don’t get lost in some gray middle ground; they understand which factors require stabilization and which ones encourage exploration. For example, in a high-change product development environment, rigorous configuration management stabilizes and facilitates flexibility just as a focus on technical excellence stabilizes the development effort.
Overview and definitions
The “Agile Movement” in software industry saw the light of day with the Agile
Software Development Manifesto4 published by a group of software practitioners and consultants in 2001 (Beck et al. 2001; Cockburn 2002a). The focal values honored by the agilists are presented in the following:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
These central values that the agile community adheres to are:
First, the agile movement emphasizes the relationship and communality of software developers and the human role reflected in the contracts, as opposed to institutionalized processes and development tools. In the existing agile practices, this manifests itself in close team relationships, close working environment arrangements, and other procedures boosting team spirit.
Second, the vital objective of the software team is to continuously turn out tested working software. New releases are produced at frequent intervals, in some approaches even hourly or daily, but more usually bi-monthly or monthly. The developers are urged to keep the code simple, straightforward, and technically as advanced as possible, thus lessening the documentation burden to an appropriate level.
Third, the relationship and cooperation between the developers and the clients is given the preference over strict contracts, although the importance of well drafted contracts does grow at the same pace as the size of the software project. The negotiation process itself should be seen as a means of achieving and maintaining a viable relationship. From a business point of view, agile development is focused on delivering business value immediately as the project starts, thus reducing the risks of non-fulfillment regarding the contract.
Fourth, the development group, comprising both software developers and customer representatives, should be well-informed, competent and authorized to consider possible adjustment needs emerging during the development process life-cycle. This means that the participants are prepared to make changes and that also the existing contracts are formed with tools that support and allow these enhancements to be made.
According to Highsmith and Cockburn (2001, p. 122), “what is new about agile methods is not the practices they use, but their recognition of people as the primary drivers of project success, coupled with an intense focus on effectiveness and maneuverability. This yields a new combination of values and principles that define an agile world view.” Boehm (2002) illustrates the spectrum of different planning methods with Figure 1, in which hackers are placed at one end and the so called inch-pebble ironbound contractual approach at the opposite end:
Hawrysh and Ruprecht (2000) state that a single methodology can not work for the whole spectrum of different projects, but instead the project management should identify the specific nature of the project at hand and then select the bes