@rkenmi - Software Methodologies

Software Methodologies


Software Methodologies


Back to Top

Updated on January 13, 2020

Agile

Agile in a nutshell is basically a set of principles laid out to promote fast and efficient development cycles.

Scrum

Scrum is an Agile methodology, so it attempts to cover the Agile principles by bringing in processes and rules to help facilitate them.

Scrum brings in the concept of sprints, which are pre-planned events that have a specific duration of length. Developers work by the sprints and go through other Scrum events such as:

  • Sprint retrospectives
  • Sprint closures
  • Daily scrum (stand-up)
  • Sprint planning
  • Product Demos
  • and more..

Kanban

Kanban (看板) is another Agile methodology and it literally means a sign post, but in the software world it means a bit more than that. This term, used to refer to a methodology used in the workforce, originated from Toyota in the early-mid 20th century to improve productivity in the factories - this was a major contributor to Toyota's booming success during their entry into the automotive industry.

In the software world, the reality is that Kanban is an extension of Agile methodologies and has some similarities with Scrum.

For example, the Kanban board and the Scrum board may have the same To-Do, In Progress, and Done columns. The Kanban board is not necessarily a sprint board however, since the concept of sprints is mainly from Scrum. The Kanban board is conceptually a generic bulletin board of postings (representing tasks) and lanes representing the status of the tasks, which is similar to a Scrum board. The postings are intended to be dragged into the appropriate status, one lane at a time from left to right.

The main distinguishing feature between a Kanban board and Scrum board is the WIP Limit, which limits the amount of effort to be spent on one lane, so that work can be better prioritized depending on the situation. For example, having a WIP Limit for the In Progress lane is a great way to identify what tasks are constantly being blocked, and the Limit can be adjusted over time to fit the team's needs.

Waterfall

Waterfall is a linear workflow methodology which is actually very different from the Agile methodologies mentioned above. Essentially, Waterfall represents a linear sequence of stages, where a certain amount of time is allotted to each one. For example, having two weeks to gather requirements and documents, two weeks for system design, and four weeks for implementation might sound like a game plan using the traditional Waterfall flow.

There is a caveat however, which is also the main takeaway of this workflow; you either move forward, or you start from zero. This means that, if you need to go back to an earlier stage for whatever reason, you simply can't. You'll have to restart the sequence from zero; i.e. start from the gathering of requirements and documents again.

Summary

The Agile methodologies (Scrum, Kanban) are actually intertwined in practice a lot, and can go hand in hand, often complimenting each other and improving the software development process. Meanwhile, the Waterfall method stands out due to its lifecycle nature of allocating time and committing to the stages as per schedule. There is no winner methodologies here; there are pros and cons of each and it all depends on your project needs.

Scrum and Waterfall cannot be combined, since the idea of Scrum is to fully complete tasks in bite-size pieces (or sprints for a lack of a better word), where as Waterfall focuses on completing phases of large stories, sequentially. The key difference isn't necessarily the time allotted. Instead, the big difference here is that in Scrum, multiple phases in the Waterfall method may be completed all in one or two sprints, simply because the sprints take on micro-sized work, as opposed to the large scale work in Waterfall.


Article Tags:
AgileScrumKanban