The choice of a digital system development approach depends on various factors, including the nature of the project, the requirements, the team's expertise, and the timeline. There are several well-known development approaches, each with its strengths and weaknesses. Here are a few prominent ones:

Waterfall Methodology

When?  Waterfall is suitable when the requirements are well-defined and stable, and changes are expected to be minimal during development.

How?  It follows a linear sequence of phases: requirements, design, implementation, testing, deployment, and maintenance.

Strengths

  • System requirements identified long before construction begins
  • Requirements are “frozen”, crystal clear requirements as project proceeds – no moving targets allowed

Weaknesses

  • Must wait a long time before there is “visible” evidence of the new system
  • Long time, work for 1 year before your client sees a product but if you guys don't like it then you have to restart
  • Takes a long time from start to finish

Agile Methodology

When?  Agile is ideal when requirements are dynamic and subject to change, and delivering incremental improvements is important.

How?  It involves iterative cycles (sprints) of planning, development, testing, and review, with continuous user feedback guiding the process.

Strengths

  • Output is faster in users hands
  • Fast delivery of results
  • Works well in projects with undefined or changing requirements

Weaknesses

  • Requires discipline
  • Significant user involvement is essential
  • Initial high learning curve

Waterfall & Agile in action

Scrum

When? Scrum is useful for complex projects with a focus on collaboration and constant improvement.

How?  It's an Agile framework that divides work into fixed-length iterations (sprints) and involves roles like Scrum Master and Product Owner.

Daily short meetings

Product owners defines features of project or software to be developed

  • Extracted from user scenarios, need to have login, transaction, securities, etc.
  • Composed of smaller parts called units, which are tasks that can be done within 2-4 week sprints
  • List of tasks called product backlog, independently implementable
  • Product owner prioritizes small tasks and work with n numbers that are doable
  • Get feedback from end users who give retrospective of end sprint, this needs to be changed or done etc.
  • Number of project management tools

Scrum at a glance

Kanban

When?  Kanban is suitable for projects where flexibility in managing work items and minimizing bottlenecks are crucial.

How?  It's a visual workflow management method that emphasizes real-time monitoring and incremental improvements.

DevOps

When?  DevOps is important when seamless collaboration between development and operations teams is needed to ensure continuous integration and delivery.

How?  It promotes automation, collaboration, and faster feedback loops between development and IT operations.

Extreme Programming (XP)

When?  XP is useful for projects where there's a need for high-quality code and frequent customer interactions.

How?  It focuses on practices like continuous integration, test-driven development, and pair programming.

Rapid Application Development (RAD)

When?  RAD is suitable for projects that require fast development and prototyping.

How?  It emphasizes iterative development and prototyping to quickly create a functional system.

  • Wanted a faster way to develop
  • Instead of waiting for software to be produced as a whole, we have a partially working application at the end of each phase. Then users can have an earlier exposure to the system.
  • Goal – get some portion of system developed quickly and in the users’ hands

Three RAD Approaches

  • Iterative development
  • A series of versions developed sequentially
  • System Prototyping
  • Create prototype (model) of system and “grow” it into the final system
  • Throw-away prototyping
  • Prototype alternative designs in an experimental way
  • Build system following prototype design but discard the actual prototype

The choice of approach often depends on the project's characteristics:

  • Project Complexity: More complex projects might benefit from Agile or iterative approaches.
  • Scope Stability: If requirements are expected to change, Agile methods can accommodate these changes better.
  • Time Constraints: When time is limited, approaches like RAD or Agile may be more appropriate.
  • Team Collaboration: Collaborative approaches like Scrum and Kanban encourage communication.
  • Regulatory Requirements: Waterfall might be favored when strict documentation and approval processes are needed.

Selection Matrix

Ultimately, there's no one-size-fits-all answer. Projects may also combine elements from different approaches, creating a hybrid model that suits their specific needs.

The key is to assess the project's context and goals to determine the most appropriate development approach.

Image Credit: Alfonso Estevez / Midjourney

Subscribe to Button Insight  ✉️

Our twice-monthly digital services newsletter. Get our best tips, insights and resources delivered straight to your inbox!

Get in Touch!

We love to have conversations with decision makers, technology leaders, and product managers from government and industry. If that sounds like you, and you have a digital project you’d like to let us know about, please fill out our contact form.

Alec or Dave from our business development team will reach out promptly.

Alec Wenzowski

President & Founder

Thank you! Your submission has been received!

What to expect

1. We'll get back to you in 1 business day
2. We'll schedule a discovery meeting at your convenience to get to know you
3. We'll listen attentively and see how we can best provide value as a team

Oops! Something went wrong while submitting the form.