Skip to content
SE eBook
Menu

RAD AND Popular Agile Methods

Public section
Preferences are saved on this device.

8.2 Rapid Software Development (RAD)

Rapid Application Development (RAD) is a methodology focused on delivering software quickly through iterative and incremental development. RAD uses techniques such as prototyping, component-based development, and visual programming tools to accelerate the development process.

An analogy to understand RAD is the construction of a bridge or dam: unlike software development, where changes and improvements can be made incrementally, such structures must be fully functional from the outset. In software, rapid delivery is often necessary to remain competitive, even if it means sacrificing some aspects of quality temporarily. Non-functional requirements (e.g., performance, security) can be improved over time as the product matures.

The goal of RAD is to have working software available quickly, showing progress to stakeholders while the remaining functionality is delivered in stages. For a more in-depth understanding, the book "Rapid Development: Taming Wild Software Schedules" (McConnell, 2010) is a useful resource.

8.3 Agile Methods

There are several popular agile methodologies, each with its own approach to software development:

  • Extreme Programming (XP)
  • Scrum
  • Crystal
  • Adaptive Software Development (ASD)

Each method has its own emphasis and practices but shares the common Agile values of incremental delivery, customer collaboration, and responsiveness to change.

Overview of Agile Principles and Methods A conceptual diagram showing Agile principles at the core, surrounded by four major agile methods: Extreme Programming, Scrum, Crystal, and Adaptive Software Development. Agile Principles Delivery · Change · Collaboration · Simplicity · Feedback · Sustainability Agile Software Development Extreme Programming (XP) Scrum Crystal Adaptive SD (ASD)
Figure 8.1: Agile principles at the core guiding different agile methods such as XP, Scrum, Crystal, and ASD.

8.3.1 Extreme Programming (XP)

Extreme Programming (XP), introduced by Kent Beck (Beck, 1999), emphasizes collaboration between customers and developers to keep the process simple and responsive. XP encourages developers to focus on current needs without worrying too much about future changes, as requirements may evolve.

XP identifies four key control variables:

  • Cost
  • Time
  • Quality
  • Scope

XP's success is built around five core values:

  1. Communication
  2. Simplicity
  3. Feedback
  4. Courage
  5. Respect

XP is an iterative process. The project is divided into a sequence of mini-projects or releases, each resulting in a working version of the software. Feedback is collected continually, and frequent releases (every one to three months) ensure that the product remains aligned with business needs.

Key XP practices include:

  • Small, frequent releases
  • Test-driven development (TDD)
  • Pair programming
  • Continuous integration
  • Simple design and constant refactoring

Release planning is typically done through Planning Games, where:

  • The customer defines and prioritises the features (user stories) to be included in a release.
  • The developers estimate the effort required and indicate how much can be realistically delivered within the available time.

In some cases, the customer fixes the scope and the developers estimate the time; in others, the customer fixes the time-box and the developers commit to a realistic subset of features.

XP Development Process Cycle A flow of Extreme Programming activities: select user stories, break them down into tasks, plan the release, develop and test the software, release it, and evaluate the system before selecting the next set of stories. XP Development Process Cycle Select user stories for this release Break down stories to tasks Plan release Develop / integrate / test software Release software Evaluate system iteration work
Figure 8.2: XP Development Process Cycle.

Each release is broken into short iterations (usually not more than three weeks), each of which results in a stable, integrated build.

8.3.2 Scrum

Scrum, developed by Jeff Sutherland and others in the early 1990s, is an Agile framework centred around sprints—short, time-boxed iterations (typically 2–4 weeks) during which the team delivers a potentially shippable product increment.

Key Scrum roles include:

  • Product Owner: Manages the Product Backlog and prioritises features according to business value.
  • Scrum Master: Facilitates the process, removes impediments, and ensures Scrum practices are followed.
  • Development Team: A self-organising, cross-functional team that plans and executes the work within each sprint.

Within each sprint, the team performs:

  • Sprint Planning
  • Design and development
  • Testing and integration
  • Sprint Review (demonstration to stakeholders)
  • Sprint Retrospective (reflection and process improvement)

Scrum is particularly suitable for projects where requirements can change rapidly, as the backlog can be reprioritised at the start of each sprint.

Further reading: "Scrum: The Art of Doing Twice the Work in Half the Time" (Sutherland, 2014).

Scrum Framework Scrum workflow showing Product Backlog and Product Goal, Sprint Planning creating a Sprint Goal and Sprint Backlog, the Scrum Team executing the Sprint with Daily Scrum, producing an Increment that is inspected in the Sprint Review, with product feedback flowing back to the Product Backlog and process improvements from the Sprint Retrospective feeding the next Sprint Planning. Product Backlog Product Backlog Refinement Product Goal Sprint Planning Sprint Backlog Sprint Goal Scrum Team Dev SM PO Daily Scrum Increment Definition of Done Sprint Review Product feedback updates Product Backlog Sprint Retrospective Process improvements for next Sprint
Figure 8.3: Scrum Framework.

8.3.3 Crystal

Crystal is a family of Agile methodologies tailored to different team sizes and criticality levels (e.g., Crystal Clear, Crystal Orange). Crystal places strong emphasis on:

  • Frequent delivery
  • Reflective improvement
  • Osmotic communication (easy, informal information flow)
  • Simplicity and light documentation

Crystal recognises that different projects need different levels of rigor, and it adapts practices accordingly. Its lightweight nature makes it especially suitable for small to medium-sized teams.

8.3.4 Adaptive Software Development (ASD)

Adaptive Software Development (ASD) focuses on rapid delivery and adaptability. Like other agile methods, ASD values working software over documentation and emphasizes collaboration between developers, customers, and stakeholders. Frequent iterations and continuous feedback ensure the product remains aligned with evolving business needs.

For further study, consider "Adaptive Software Development: A Collaborative Approach to Managing Complex Systems" (Highsmith, 2000).

Login to add personal notes and bookmarks.