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.
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.
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.