Influential Agile Software Parameters

Influential Agile Software Parameters

Subhas C. Misra (Carleton University, Canada), Vinod Kumar (Carleton University, Canada) and Uma Kumar (Carleton University, Canada)
DOI: 10.4018/978-1-60566-026-4.ch305
OnDemand PDF Download:
$37.50

Abstract

Successful software systems development is a delicate balance among several distinct factors (Jalote, 2002) such as enabling people to grow professionally; documenting processes representing the gained experiences and knowledge of the organization members; using know how to apply the suitable processes to similar circumstances; and refining processes based on achieved experience. Software projects have two main dimensions: engineering and project management. The engineering dimension concerns the construction of a system, and focuses mainly on issues such as how to build a system. The project management dimension is in charge with properly planning and controlling the engineering activities to meet project goals for optimal cost, schedule, and quality. For a project, the engineering processes specify how to perform activities such as requirement specification, design, testing, and so on. The project management processes, on the other hand, specify how to set milestones, organize personnel, manage risks, monitor progress, and so on (Jalote, 2002). A software process may be defined as “a set of activities, methods, practices, and transformations that people use to develop and maintain software, and the associated products and artifacts.”1 This is pictorially depicted in Figure 1 (Donaldson & Siegel, 2000).
Chapter Preview
Top

Introduction

Successful software systems development is a delicate balance among several distinct factors (Jalote, 2002) such as enabling people to grow professionally; documenting processes representing the gained experiences and knowledge of the organization members; using know how to apply the suitable processes to similar circumstances; and refining processes based on achieved experience.

Software projects have two main dimensions: engineering and project management. The engineering dimension concerns the construction of a system, and focuses mainly on issues such as how to build a system. The project management dimension is in charge with properly planning and controlling the engineering activities to meet project goals for optimal cost, schedule, and quality.

For a project, the engineering processes specify how to perform activities such as requirement specification, design, testing, and so on. The project management processes, on the other hand, specify how to set milestones, organize personnel, manage risks, monitor progress, and so on (Jalote, 2002).

A software process may be defined as “a set of activities, methods, practices, and transformations that people use to develop and maintain software, and the associated products and artifacts.”1 This is pictorially depicted in Figure 1 (Donaldson & Siegel, 2000).

Figure 1.

Software processes

Top

Background

Premise of Agile Software Development

The professional goal of every development team is to deliver the highest possible value to the project and customers. Yet, projects fail, or fail to deliver value, at a frustrating rate due to an increase in process inflation. Plan-driven methods are those in which work begins with the elicitation and documentation of a complete set of requirements, followed by architectural and high-level design development and inspection. In this context, the concept of agile appeared where principles and values were shaped as a way to help teams avoid the cycle of process inflation and to focus on simple techniques for reaching their goals.

Agile processes allow adjustments of requirements during all phases of the development cycle and stress collaboration between software developers and customers and early product delivery (Donaldson & Siegel, 2000).

Key motivations of agile methods apparition are

  • Iterative development is of lower risk than waterfall development (Larman, 2004).

  • Early risk discovery and improvement.

  • Promotes early change: consistent with new product development.

  • Early partial product apparition.

  • Satisfaction through early and repeated successes.

  • Continuous testing activity.

  • Final product matches client’s desires better.

Key Terms in this Chapter

Agile Software Development: An approach for software development advocated by a group of software developers believing in developing software in shorter time boxes, faster communication, working closely with customers, and allowing changes to requirements even late in the software development process, among others.

Agile Manifesto: A public declaration of principles and intentions shared by a group of software developers who advocated the philosophy of software development.

Iterative Development: The art of developing software incrementally in versions by taking advantage of lessons learned from producing previous deliverables of software.

Project: A plan or proposal, which is undertaken, usually over a fixed time duration.

Agile Methodologies: Methodologies that follow the manifesto, principles, and values of agile software development.

Agile: The quality of being quick.

Process: A sequence of steps following which can lead to an outcome.

Complete Chapter List

Search this Book:
Reset