Skip to content

Software Development Methodologies

Process · Chapter 2

Architects usually must work within the methodology their organization has already adopted, but they may influence or even select it. Knowing the common models and their trade-offs lets you suggest process improvements. Agile methodologies now dominate over traditional ones, though many Agile variants exist. Choosing a methodology unsuited to the project is a common, avoidable mistake.

A sequential model: each life-cycle stage is completed fully before the next begins.

Advantages

  • Simple and easy to understand.
  • Predictable for stakeholders (timeline, functionality, cost).
  • Produces documentation artifacts per phase — helps maintenance, onboarding, and reduces the impact of employee turnover.

Phases

PhaseWhat happens
RequirementsElicit and analyze requirements; capture in a requirements document.
DesignCreate technical design specs detailing how requirements are met.
ImplementationActual coding against the design specs.
VerificationTesting to confirm correctness and requirement fulfillment.
MaintenancePost-deployment bug fixes and enhancements.

Names vary (coding/testing instead of implementation/verification); some orgs add analysis or deployment steps.

When it might fit (rarely all true): team already knows the domain and business rules; requirements well-understood and stable; scope fixed; technology/architecture known and stable; project small and low-complexity; acceptable that no working software appears until late; a fixed deadline is already set.

Issues with Waterfall

  • No testing feedback until late (testing follows all implementation).
  • Users get no working software until the end — feedback arrives too late and requirements can be missed.
  • Late changes are expensive → cost/time overruns.
  • If time runs out, end-stage testing gets cut, lowering quality.
  • Rigidity is a major problem because change in software is almost inevitable.

Created by practitioners from real-world experience to address traditional-model limitations. Variants include Scrum, Kanban, Extreme Programming (XP), and Crystal — all centered on adaptability to change and balancing too-little vs. too-much process.

  • Individuals and interactions over processes and tools — people understand the business and drive development.
  • Working software over documentation — keep only enough documentation.
  • Customer collaboration over contract negotiation — continuous engagement increases fit to real needs.
  • Responding to change over following a plan — short iterations let requirements be added/changed anytime they add value.

Documented in the Agile Manifesto plus its 12 principles.

  • Software is built incrementally; each iteration satisfies part of the requirements and ends in a working version.
  • Testing happens in the same iteration as coding → continuous feedback, problems surface sooner.
  • Instead of heavy up-front planning to predict the future, Agile adapts to change as it occurs.
  • User/tester feedback is incorporated immediately into subsequent iterations.

Daily stand-up meeting (daily scrum in Scrum)

Section titled “Daily stand-up meeting (daily scrum in Scrum)”
  • Brief, usually early in the day; everyone gives a status update.
  • A rotating facilitator runs it (no reliance on one person; keeps the team talking to each other).
  • Each person answers three questions: What did I do yesterday? What will I do today? Any impediments?
  • Larger discussions are taken offline to keep it short.
  • Benefits: shared awareness of current work; impediments surface so the team can help; reinforces team identity.
  • Software Architect’s Handbook (Packt, 2018), Ch.2 “Software development methodologies”, pp. 90-101.