Skip to content

Software development process

Based largely on Chinese Whispers, no formal communication

A system was needed. Waterfall technique was brought in from construction/engineering

Agile process is iterative and designed specifically for software development but can be more slow to begin with.

Waterfall Technique

System and Software requirements

  1. Analysis: *captured in a product requirement document*
  2. Design: *resulting in models, schema, and business rules*
  3. Coding: *the development, proving, and integration of software*
  4. Testing
  5. Operations

Based on engineering and construction project management methodology Linear process with each stage usually depending on the previous stages(s) Lots of documentation Focus on process over prodect

Agile Technique

The agile software development life cycle is the structured series of stages that a product goes through as it moves from beginning to end. It contains six phases:

  1. concept
  2. inception
  3. iteration
  4. release
  5. maintenance
  6. retirement


  • Flexible, collaborative approach to a software project
  • Emphasis on the Product rather than the Process
  • Iteration: when dealing with errors, go back to a prior step and work through the process again
  • Self-organizing teams - Introspection, Reflective, Mindful!
  • Simple design
  • Involve users at every stage
  • Accept changing requirements as a given
  • Short "Sprints" to produce "quick wins" and timely feedback

The Agile Manifesto

  • individuals and interactions over processes and tools
  • working software over comprehensive documentation
  • customer collaboration over contract negotiation
  • responding to change over following a plan

Examples of Agile methodologies include:

  • Scrum
  • Extreme Programming
  • Rational Unified Process (More a Business Framework - IBM!)
  • PRINCE2 - Used in many (UK) Government and public projects

DevOps

  • DevOps is a set of practices combining software development and IT operations
  • It aims to shorten the systems development life cycle and provide continuous delivery with high software quality
  • DevOps is complementary with Agile software development; several DevOps aspects came from the Agile way of working
  • Other than it being a cross-functional combination (and portmanteau) of the terms and concepts for "development" and "operations", academics and practitioners have not developed a universal definition for the term DevOps.
  • Most often, DevOps is characterized by key principles: shared ownership, workflow automation, and rapid feedback.