Chapter 6 Agile Project Development – Core Concepts of Project Management

CHAPTER 6

Agile Project Development

Key Points

  • Description of agile approaches to project development
  • Related systems, to include scrum and lean techniques

A response to the poor performance record of information systems with respect to time, budget, and functionality, some in the software industry developed collaborative techniques to develop software much faster and closer to user requirements. These techniques are known as agile methods, and include a number of versions (scrum, extreme programming, lean techniques). However, the common bases for these techniques include working closely with users throughout the project, iteratively develop software versions in the spirit of prototyping, demonstrating these prototypes with users to identify required changes in direction, and avoiding heavy documentation in favor of getting software developed faster. While agile techniques might seem the reverse of the Capability Maturity Model approach, a number of Level 5 software producers have been found to use agile techniques when faced with stiff schedules and budgets for important projects.

PMI View of Agile

The Project Management Institute (PMI) publishes its Project Management Body of Knowledge (PMBOK) regularly, seeking to standardize project management concepts and practice. The PMI views a project as a temporary group of activities designed to produce a unique product, service, or result. PMBOK provides rules, guidelines, and characteristics for project management, viewing project management as a process divided into the groups of:

  • Initiation—define and authorize the project
  • Planning—define project scope, and plan needed actions to reach the goal
  • Execution—train people to follow the project management plan
  • Monitoring and control—during project evolution, identify needed corrective actions
  • Closing—formal acceptance by owner and project conclusion

These process groups are supported by PMBOK knowledge areas:

  1. Project integration management—activities needed to coordinate a group of processes and their activities
  2. Project scope management—activities guaranteeing that the project covers all planned elements
  3. Project time management—activities guaranteeing project conclusion in planned time
  4. Project cost management—plan, estimation, budgeting, and control of costs to accomplish the project
  5. Project quality management—determination of responsibilities, objectives, and quality policies
  6. Project human resource management—management of the project team
  7. Project communication management—generation, collection, distribution, storage, and recovery of data
  8. Project risk management—identification, monitoring, analysis, and proposed solutions to manage risks
  9. Project procurement management—purchase and supply of products and services required

The PMBOK seeks to provide a general structure applicable to all projects. In practice, this can be found to be bureaucratic and rigid. Agile approaches were intended to overcome some of these limitations, although it must be noted that formal approaches do have benefits in well-established project environments where change is less common.

Agile Definition

Agile is a project management ideology providing a lightweight alternative to the waterfall approach of systems analysis and design. Agile was intended to be more responsive, relying on close working relationships among teams dealing with specific development components.

Agile methods have proven very effective when applied to small projects. They also work (with care) for larger projects, although effort is needed to get teams to work well together. The best case is when a small, self-organized and motivated team located in the same location works with a small number of on-site customers. There are even cases when teams have worked in a geographically separated environment, although synchronization of efforts is required.

Differences between agile and traditional (waterfall model) systems development are demonstrated in Table 6.1.

Table 6.1 Comparison of agile with traditional project development1

Factor

Traditional model

Agile

Management style

Process (command and control)

People (leadership/collaboration)

Assignments

Individual

Team

Communication

Formal (hierarchical)

Self-organizing (open)

Development model

Lifecycle

Evolutionary iterative

Organizational structure

Mechanistic (matrix, project)

Organic (participative team)

Team location

Often distributed

Collocated

Documentation

Substantial—before project start

Less—interactive input during project

Resource utilization

Optimize plan

Ad hoc

Customer involvement

Requirement analysis

Continuous

Cost estimation

Initial

Guess in each sprint

Quality control

At end of phases

Continuous

Contractual issues

Clear initial definition

Estimates evolve

Conforto et al.2 administered questionnaires to 19 Brazilian firms involved with projects in new product development, in part motivated by an examination of the idea that agile methodology could be applied outside of the software industry. Literature review was used to identify agile project management practices, to include:

  • Focus on product vision

    It was found that those using the agile approach had minimal textual description, followed by more detail at the end.

  • Use of simple project planning and communication tools and processes

    Those applying the traditional approach used Gantt charts or work breakdown structure, as opposed to less formal tools like spreadsheets or visual panels, pictures, or drawings.

  • Use of iterative planning

    Those firms using the traditional approach applied more detailed project planning.

  • Frequent monitoring of planning and updating processes

    Those firms using the traditional approach applied detailed planning with revision, while the agile firms developed by iteration.

  • Activities developed (and monitoring and updating) by self-managed teams

    Traditional firms updated the project plan at the end of each phase. Agile firms updated weekly.

The economy in recent years has had a major impact on the software industry. Because of the increased importance of bringing software products to market faster, revision of traditional methods has been apparent. Agile methods are techniques of software development designed to deliver these products faster, with more functionality necessary to users.

There are many different techniques that have been used in this effort to attain agile programming. These include collaborative techniques (pair programming, having customers work on site as team members). What this amounts to is very closely working with customers to ensure that the software products developed are what customers needed. For instance, a common agile practice is to have customers write acceptance tests.

This approach emphasizes:

  • Focus on individuals and their interactions over focus on processes and tools.
  • Delivering working software is more important than comprehensive documentation.
  • Customer collaboration is sought rather than contract negotiation.
  • Response to change is preferred to following plans.

This manifesto clearly diverges from the principles of the Capability Maturity Model. However, the agile approach maximizes cooperation with users that has been found to be so critical to information system project success. The principles behind the agile movement are:

  • Highest priority is given to satisfy the customer through early and continuous delivery of valuable software.
  • Requirement changes are welcomed, even late in the development process. Agile processes harness change with the aim of improving customer competitive advantage.
  • Working software is delivered frequently, from a couple of weeks to a couple of months, preferably to shorter timescales.
  • Cooperative work among business people and developers is needed on a daily basis.
  • Projects are built around motivated individuals, who operate in a positive environment with all the support they need, and who are trusted to get the job done.
  • Face-to-face conversation is relied upon as the most efficient and effective method of communication.
  • The primary measure of progress is working software.
  • Agile processes promote sustainable development.
  • Technical excellence and good design are sought continuously, enhancing agility.
  • Simplicity is essential, seeking to maximize the amount of work not done.
  • Self-organizing teams develop the best architecture, requirements, and designs.
  • Teams reflect on ways to become more effective at regular intervals, and tune and adjust behavior accordingly.

Agile emphasizes team performance. Thus attention should be given to team composition and building teams that work well together. Thus conflict resolution is important. The method emphasizes working together and collocation, diverging from a recent tendency in information technology of distributed teams.

Stakeholder engagement is also important, with focus on the total quality management concept of delighting customers. This requires a thorough understanding of stakeholder needs to build a shared vision across the development team. Creativity needs to be fostered, along with strong communication with stakeholders by applying critical interpersonal skills.

Agile calls for progressive elaborations of project development. Problems, risks, threats, and issues need to be uncovered and understood to develop sound solutions. Decisions should be made at the last responsible moment to consider all important factors.

The outcome of agile project management includes the project and team charter, backlog preparation and refinement, and activities to include stand-up, retrospective, and demonstration reviews. Performance needs to be measured to enable troubleshooting. Agile provides a means to intensively develop products and is useful when creativity needs to be emphasized and time is a factor. Traditional approaches work better for larger-scale projects.

Scrum

The scrum approach is one form of agile development approach, focusing on performing work in short iterations, usually from a week to a month. During these periods (time-boxes), sprints occur where a cross-functional team performs all tasks (such as design, building, and testing) needed to complete a working feature. Scrum teams usually involve 6 to 10 members providing cross-functionality. One team member is the product owner representing the stakeholders. There also is a ScrumMaster, a coach, facilitator, and remover of impediments. Each sprint involves meetings, to include planning (identification of issues and their prioritization), stand-ups (daily meetings where team members describe what they have accomplished and plan on doing next), reviews, and retrospectives.

The relative advantages of agile and traditional software development approaches (waterfall) have been compared.3 The traditional approach was perceived as ineffective in software project management, as project releases were often late as well as failing to meet client requirements. Part of the problem is that clients have minimal interaction with the project team, at which time the clients often do not have a clear idea of what they want. Agile software development follows a project plan, but without great initial detail. Plans are designed in stages iteratively. The focus is on completing projects faster and at a lower cost.

The scrum methodology is structured around the components of roles, artifacts, and processes:

Roles—the three key roles are the scrum master, the product owner, and the scrum team. The scrum master provides loose team leadership, and interacts with the environment. The product owner sets the scope of the project and prioritizes product requirements, constantly refined as the project progresses. The scrum team is self-organized and builds the product in sprints (iterations).

Artifacts—the product backlog consists of prioritized project requirements, and provides a road map. After the product backlog is completed, the scrum team breaks it into sections of work, creating the sprint backlog. Progress is constantly monitored and time estimates are updated daily. These estimates can be plotted, creating a burn-down chart, showing daily estimates of time remaining. User stories are stored as sprint backlog items. These stories consist of an ID, name, importance, initial estimate, demo procedure, and notes. User stories are sorted into smaller tasks for teams to complete.

Processes

  1. Kick-off—project launch
  2. Sprint planning meeting—determine sprint backlog and objectives—all attend
  3. Daily scrum meeting—Scrum master and team spend about 15 minutes to track progress and identify issues and delays
  4. Sprint review meeting—held after a sprint to demonstrate functionalities—all attend
  5. Retrospective meeting—after sprint review meetings, scrum master and team identify problems experienced and evaluate backlog, as well as develop ways to improve future sprints
  6. Interruptions—lead to requirements changes

Agile has been proposed for smaller firms. Scrum has been proposed as workable for large firms as well. Scrum has project risk management features, with product owner meetings providing a forum for risk consideration in backlog development, while daily team communication, scrum meetings, and sprint planning give means to identify and mitigate risks.

Kanban

The kanban approach has been applied in lean manufacturing for decades (Toyota factories in the 1940s and thereafter), credited with improving quality by immediate detection and correction of problems, with residual benefits of reducing clutter by controlling work in process (WIP) and inventory by ordering materials to arrive just in time. Kanban is another agile methodology that has been applied to software development projects (and by inference can be applied to other projects. In kanban, roles are not prescribed. Signals of work process are used to limit WIP.

Workflow visualization—work is divided into specific tasks, visualized in columns on a board, indicating its state in the workflow

Limiting WIP—explicit limits to the number of tasks are defined for each workflow state

Measuring lead time—defined as the time from task creation to completion—measured to optimize workflow and to make it as fast and predictable as possible

Table 6.2 shows a comparison of scrum and kanban agile methodologies:

Table 6.2 Comparison—Scrum and Kanban4

Scrum

Kanban

Iterations

Sprints

None

Product release

At end of each sprint, at owner discretion

Constant development

Teams

Cross functional

Specialized

Roles

Product owner, Scrum master, team

None prescribed

Change management

Changes at the beginning of new sprints

Prompt response to any change

Meetings

Planned

None required

WIP

Limited per sprint

Limited per workflow state

Product backlog

Listed prioritized items

Board cards

Visualization

Board, product backlog, sprint backlog

Board to visualize the process

Bottleneck management

Addressed immediately

Avoided

Scrum splits work into small tasks, accelerating completion, and major backlog items, making it suitable for software projects. Kanban splits work into even smaller items to ensure a continuous work process, not using the concept of sprints. Both methodologies work on items by prioritizing, allowing product release immediately upon completion. This makes the kanban approach highly suitable for customer service environments.

Summary

Agile practices provide a means to rapidly develop projects, providing a platform conducive to creativity. It works if teams work closely together in a spirit of collective ownership. Team leaders need to develop and maintain a close collaborative working environment. The process includes daily meetings with a demonstration of features emphasized, and documentation delayed until the product takes firm form. Agile needs full stakeholder participation, and operates in the spirit of just in time.

Glossary

Agile. Project management approach streamlining project execution to obtain quicker project completion.

Artifacts. Documents describing product backlog.

Capability maturity model (CMM). Carnegie Mellon Institute system of software development functionality standards widely used to assess organizational software development process capability.

Kanban. Agile lean manufacturing approach.

Project Management Body of Knowledge (PMBOK). PMI set of standards comprehensively covering project management processes.

Scrum. Project management approach focusing on short iterations of work to gain quicker project completion.

Work in process (WIP). Partially completed inventory—in the context of project management, the number of tasks defined for a project.

PMBOK Items Relating to Chapter 6

6.1 Plan Schedule Management—establish activities needed for agile implementation of the project.

Thought Questions

  1. Compare agile, scrum, and lean approaches to waterfall methodology.
  2. Try to find evidence of success or failure in agile project applications.

Notes

  1. Sundararajan, Bhasi, and Vijayaraghavan (2013).
  2. Conforto et al. (2014).
  3. Tanner and Mackinnon (2015).
  4. Yordanova and Toshkov (2019).