Software Development Models – Understanding What’s Right for Your Project Pt. 2

sdlc agile models

And we’re back! In our previous article, we focused on the difference between stricter and more flexible Software Development Life Cycle Models (SDLC). Specifically, we looked at the Waterfall and Agile models, both which Flux has had success in applying to different projects.

But wait, there’s more! In fact, there are several types of agile models. In this piece, we’ll be focusing on Agile Scrum, Lean, and Kanban. Understanding them will make you more informed when you begin your next negotiations with a software development team. So without further ado, let’s get started…

Agile Scrum

Agile Scrum (or Scrum for short) is one of the most used frameworks within the scope of agile. Compared with other agile models, Scrum stands out as one of the more structured ones. For example, the model entails daily meetings and a Scrum Master that oversees and reports on project progress. So if you are looking to be more engaged with your software development team throughout the process, this model is one you might consider.

Scrum Framework

Pros of Agile Scrum

As is typical with agile, each sprint lasts roughly 2-4 weeks in Scrum. This gives you a great deal of flexibility to change requirements as you go. Scrum also uncomplicates the process of identifying and overcoming issues as they come up. Similarly, teams can prioritize key features and requirements. But most of all, arguably one of the greatest selling points for Scrum is that communication plays a vital role. In our experience, when communication is set as a priority, the result is that both DevOps and the client understand one another and therefore, expectations are properly met. With this model, you are always developing the product further based on feedback, which leads to higher quality.

Cons of Agile Scrum

One point folks typically don’t like about Scrum is that several sprints can add a lot of time to the overall project development process. Like with other flexible models, it’s tough to predict costs at the outset. So it stands to reason that only very experienced developers should work on a Scrum-based project. Daily meetings and reporting are great for communication, but it also can take up a lot of time.

When to Use

This model is definitely not suited for small projects with strict budgets. However, medium-sized projects can afford this kind of flexibility. Scrum is also recommended for those entrepreneurs of businesses that already have a foundational understanding of Scrum and also that have the time to be more hands-on. 

Lean

Lean is another agile framework with feedback and optimization at the heart of its methodology. The main goal is efficiency. Henc the term, Minimum Viable Product (MVP), which is often associated with Lean. MVPs allow developers to discuss and optimize the initial plan and then proceed to create a very simple version of the software. This will get the ball rolling. As always with agile models, user feedback and client input are key. 

Moreover, there are five core principles used when implementing Lean:

  • Value
  • Value stream
  • Flow
  • Pull
  • Perfection

These principles describe the five-step process that is the backbone of lean implementation.

Advantages of Lean

Names are always a pretty clear indicator when it comes to SDLC models. And like it’s name ‘Lean’ this model saves you time and money since you only have to invest minimal resources into developing a viable version of the product. Lean also gives you a competitive advantage by beating your competitors to a launch. But not only that. You allow having the opportunity to start gathering feedback and making subsequent adjustments faster than your competitors.

Disadvantages of Lean

The main disadvantage of using lean and MVPs is that they are harder to scale. Lean projects depend a lot on the team’s overall cohesiveness and the individual commitments of the team members. This makes it harder to ensure a fast scalable future when compared to more traditional SDLCs. Also in order to develop a product using minimal resources, it’s necessary to have strict documentation and stick to it. 

When to Use

As opposed to Scrum, Lean is perfect for projects with a time limit and a tight budget. However, our suggestion is to choose this approach only if you are available for daily communications with your team. If you prefer to be less involved in the decision-making process, skip this model. 

Kanban

Kanban is the final agile model we’ll be looking at. Actually, it falls under the category of Lean. The goal of Kanban is to identify expected bottlenecks in the work cycle and fix them so work can continue without slowing down.  

Tasks are visualized that give the team a view of progress and process, from start to finish. Typically, a Kanban board will be used for this purpose. As opposed to tasks being pushed into the process when requested, Kanban does the opposite – adds more tasks as capacity permits. 

Kanban Board

Advantages of Kanban

First off, Kanban is easy and intuitive to apply to a team. It also fosters continuous and sustainable improvements. The Kanban approach is made up of more than just manual guidelines or cards. It also ensures that process outputs are visible. This, in turn, makes analyzing work easier. With this, teams can see what areas need more attention. Kanban also encourages maximal adaptability, which is great if you have an extensive project that is going to require ongoing changes. Finally, Kanban makes the process of task oversight and management easier and more minimal with the help of the board.

Disadvantages of Kanban

Kanban is not a method that can be used independently and is usually combined with Scrum, JIT or others before it can fully work. Moreover, it is not nest suited for a dynamic environment. Also, Kanban relies on the fact that plans are stable to a certain degree. There are also no time frames associated with each phase, which can lead to a level of disorder if teams are disorganized.

Final Thoughts 

As an entrepreneur or company, being familiar with Software Development Life Cycle models empowers you to know what you’re talking about and to have more constructive talks with your DevOps team. We hope this guide has demystified some of the inner processes you may encounter while working on your next project.

Subscribe to our newsletter to receive new blogs and tips – straight to your inbox

* indicates required



BY Flux Team