Back to Basics: In Support of Agile Development

Back to Basics: In Support of Agile Development

Roy Morien
DOI: 10.4018/978-1-4666-6026-7.ch012
OnDemand:
(Individual Chapters)
Available
$33.75
List Price: $37.50
10% Discount:-$3.75
TOTAL SAVINGS: $3.75

Abstract

Massive failures of software development projects have been recorded in the literature, and particularly in the popular press, over the years. Yet, rarely if ever have we seen any objective, detailed analysis of the causes of these failures. Indeed, we usually can only surmise how the projects were managed or what the development methodology or approach was. This chapter analyses some aspects of software development projects and development methodologies in terms of the success or failure potential of these methodologies. The conclusion arrived at is that the system development methodologies handed down since the late 1970s as the preferred development approach, generally known as Structured Methodologies, based on the Structured Design Life Cycle methodology (SDLC), bear the seeds of their own failure. It is asserted that they cannot succeed because of the inherent nature and assumptions embedded in those methodologies. After some analysis of these assumptions, considered to be highly flawed and unworkable, the now not so recently published Agile Development methodologies are discussed and proffered as a workable and inherently successful approach to software system development.
Chapter Preview
Top

Organization Of The Chapter

The chapter develops the theme that to gain support for the adoption of Agile methods in software system development and project management, it is necessary to identify and explain the weaknesses in the traditional development approaches to be able to counter the usual objections to Agile Methods. This is done in the sections discussing, and refuting, the idea of ‘Big Systems’ and the preferred development methods for such systems. The weaknesses and failure of the underlying assumptions supporting the traditional Waterfall Approach are then discussed.

This refutation of traditional development practice finishes with a discussion of the justifying Fear of Change that is still felt, even in the face of significant changes to all or most other development dimensions and the development of a significant marketplace in development tools, application generators and the like.

The chapter continues into a description of what is seen as the true nature of software projects, as being ‘people-centric’, and ‘learning organisations’. The thesis is that these types of group activities need to be managed differently to projects in civil engineering and construction, which seems to be the preferred paradigm for a ‘project management’, regardless of project type. More appropriate means of gathering and specifying requirements are addressed, as a lead in to a discussion on iterative and incremental methods, and the perceived benefits inherent in such approaches.

Finally, the chapter introduces a number of what may be called ‘reference disciplines’ in an attempt to provide an intellectual and theoretical underpinning to a development approach that has been largely promulgated based on practitioner experience, rather than having a principled and theoretical basis.

Key Terms in this Chapter

Structured Design Lifecycle: A systems development approach based on rigorous initial definition of requirements and a linear stream of phases, including Analysis, Design, Construction and Testing. Considered to be ineffective and inefficient.

Chaordic Systems: A term used to describe a system process or organisational structure that combines and blends elements of chaos and order.

Agile Development: A system development approach based on iterative activities and empirical project management and planning.

Lean Development: A development process where every step or phase in the development activity is scrutinised for its contribution to the end-product, and the elimination of waste in the product development process, to ensure efficient process flow.

The Model of Concurrent Perception: A model of product development proposing that product development moves from an initial ‘chaotic’ activity involving individuals and various ideas to converge on an agreed design in an orderly fashion.

Complete Chapter List

Search this Book:
Reset