Puy Web
Profile Blog
EN TH
Blog Talking About Modern Development Methodologies (2019)
Talking About Modern Development Methodologies (2019)
Experience Jun 02, 2019

Talking About Modern Development Methodologies (2019)

In this article, I will share my experiences in improving the software development methodology within my team and the organization I work for.

First, let's briefly go over the main Software Development Life Cycles (SDLC) currently utilized in our local tech industry:

Waterfall

This is an easy process to understand because it follows clear, sequential steps: requirement gathering, system design, coding, testing, deployment, and maintenance. However, its major flaw lies with the initial estimation. If the upfront estimate is inaccurate, it heavily impacts the end of the project. And realistically, it is almost 100% impossible to estimate with absolute accuracy.

Because of this, most estimations aren't a "win/win" situation, but rather "win/lose." If any phase fails to meet the estimated timeframe or if mistakes occur, the project timeline stretches. More importantly, if requirements change during development, fixes are pushed to the very end, causing further delays. Consequently, most estimates must include a risk buffer. Overestimating risk can negatively impact costs and timelines, while underestimating it can lead to teams failing to deliver on time and schedules being derailed.

Despite these drawbacks, Waterfall is still widely used today. Many organizations rely on clear sequential processes. In large corporations, transitioning to a new methodology is highly problematic due to the scale of change required, team unfamiliarity, and rigid departmental boundaries.

Agile

Because the Waterfall model had significant pain points, a new SDLC was developed to address them. Agile is highly suited to modern needs because software development is not like building a house, which has a rigid process (drafting blueprints, laying the foundation, erecting pillars, beams, walls, a roof, and decorating). Software, on the other hand, changes constantly. Development must be able to accommodate this constant change. Furthermore, Agile was created to eliminate issues like the excessive and often unnecessary documentation required in Waterfall.

Agile is fundamentally a mindset. From this mindset, many practices have emerged, such as Extreme Programming (XP), Pair Programming, Iterations, Test Automation, and more. There is no absolute right or wrong way to implement Agile. As mentioned, it is a mindset, and its application will inevitably look different in every organization.

Kanban

Originally, Kanban was developed by Toyota for their automotive manufacturing plants to manage the logistics of parts across the factory floor—from initial production to delivery to distributors or buyers. It was used to solve problems like overproduction, incorrect deliveries, and lost items.

In software, Kanban helps visualize the status of the work currently in development. The most widely used status columns are To Do, Doing, and Done. Kanban is a form of Agile that is not based on iterations, but rather on Lean principles, focusing heavily on flow. Many organizations adopt Kanban because it doesn't require drastic changes to the team's existing workflow. It makes tracking work status easier and helps identify overlapping or redundant processes so they can be consolidated. In software development, teams often blend Kanban with other Agile practices.

Scrum

This is currently one of the most popular methodologies because it has a clear structure of what needs to be done and specific timeframes. Scrum adopts certain Agile practices and operates in an iteration-based format, working in defined cycles. It utilizes specific roles:

  • Product Owner (PO): Manages requirements to deliver the highest business value in each development cycle.

  • Scrum Master: Facilitates and assists the team and PO, while coaching the team to understand necessary Agile activities.

  • Scrum Team: A cross-functional development team (capable of dev, test, design, etc.) that builds and delivers the product.

Scrum focuses heavily on communication and delivering a product that closely matches the stakeholder's needs. Scrum events include Sprint Planning, Sprint Execution, Daily Scrum, Sprint Review, and Sprint Retrospective. Essentially, it compresses the entire Waterfall process into a single Sprint, requiring the team to turn requirements into a usable, working product within a timeframe of less than one month. Because of the requirement to deliver a fully functional product increment every Sprint, working in Scrum can be quite high-pressure.

Others

Beyond Kanban and Scrum, there are several other development methodologies, such as:

  • Scrumban: A hybrid combining Scrum and Kanban.

  • Extreme Programming (XP): An Agile framework where developers and stakeholders work closely together from the beginning until the product is finished.

  • Prototype Methodology: Focuses on building a prototype first, then developing the software to meet the established specifications.

  • Rapid Application Development (RAD): After planning, the focus shifts to user design, prototyping, and development in a continuous, rapid loop.

  • Spiral Model: Essentially Waterfall executed in iterative cycles.

  • Feature Driven Development (FDD).

Alongside these methodologies, there are various other models used in the industry.

Share this article:

Related Articles

Preparing for the PSM I Exam
Experience
Jun 10, 2019

Preparing for the PSM I Exam

Today, I’m going to share my personal experience taking the PSM I (Professional Scrum Master I) certification exam from Scrum.org.

Read More
What is Scrum?
Experience
Jun 07, 2019

What is Scrum?

Nowadays in the IT industry, wherever you go, you hear the buzzwords "Agile" and "Scrum." Everyone is talking about them. But what exactly is Agile, and how does Scrum relate to it?

Read More
From Waterfall to Scrum
Experience
Jun 03, 2019

From Waterfall to Scrum

In my previous article, "Talking About Modern Development Methodologies," I briefly introduced various frameworks. In this article, I will share my personal experience of adopting Agile within my team—a journey that led us to our current Scrum process and our future plans to transition to SAFe.

Read More