Transcription
Hello everyone!
Today, we will discuss development methodologies.
But before we start, please subscribe to my Telegram channel linked in the description. The latest information, cheat sheets, assistance, interview tips, and advanced materials are all there. So, go to the description, and the first link will be my Telegram channel. Click on it and subscribe.
Now, let's begin with development methodologies.
In fact, there are major methodologies in development, and there are two main approaches: Waterfall and Agile. Waterfall is very old; it was invented back in the 1950s. The essence of Waterfall is that we have known requirements. We have a project that we document thoroughly. We document our projects because they are small. If a project was not too large, we could document it relatively quickly, and it was generally clear from the start. We document it and then move on to development.
We have a certain number of qualified personnel, and we take on the project. There are no divisions into MVP versions; we just execute the project. In contrast, with Agile methodologies, we first complete the initial version, then identify additional features for the second and third versions, and so on.
Thus, in Agile, our projects are maximally flexible, allowing us to continuously add features. In Waterfall, we gradually complete our project in one iteration. We finish the project, and everything is great for small projects. However, we cannot complete a large project using Waterfall; it would take too long. We need to have as many iterations in development as possible.
This way, we can break it down into smaller parts, like MVP 1, MVP 2, MVP 3, and then further divide it into sprints to protect ourselves from the client. When we use Waterfall, we must complete the entire application. We understand that there are many factors in development that do not always depend on us.
Therefore, it is best to use Agile methodologies for large projects. Agile methodologies, in turn, are divided into two approaches: Kanban and Scrum. Agile is a flexible methodology that allows us to structure our project easily. We break tasks into sprints and execute them.
In Kanban, we have a flow of similar tasks. We complete one task and move on to the next. Kanban works well when we know how long a task will take, which is usually the case with repetitive tasks. If we have new functionality for each sprint, Kanban may not be the best choice.
Kanban assumes that we know what the task looks like; we have completed it before. We should have a Kanban board, which is like a to-do list where we simply drag tasks around. In Kanban, there are no strict divisions of roles, such as who the product owner is or how the development team operates.
Therefore, Kanban is suitable for small projects or large ones with a flow of work. We take on a task, complete it, and move on. We also have sprints, but we eliminate some events like retrospectives and planning meetings. However, daily stand-ups are still present, just in a more simplified format compared to Scrum.
Now, I want to recommend that you check out my Telegram channel in the description because that’s where the latest information and consultations are available. You can get interview tips, advanced materials, and participate in ongoing contests. So, everything is there. Click the first link in the description to subscribe to my Telegram channel.
The next approach we will discuss is Scrum. Scrum is when we don’t know what the final outcome will be. We divide our project into MVP versions. First, we need to gather tasks, and we should have a backlog for each MVP version.
Once we have the backlog, we need to conduct certain events while developing MVP 1. These events include meetings with the team to plan how long each task will take, assigning story points or time estimates, and documenting when a task will be completed.
Additionally, we have daily stand-ups where we discuss what we accomplished the previous day. We also have retrospectives, where we meet to discuss what went well and what didn’t. Finally, we have demos where we present our work to the client.
In Scrum, our development model is divided into sprints, which can be one or two weeks long, with two weeks being preferable. We plan, check in daily, and keep our finger on the pulse. At the end, we have a retrospective and a demo.
Scrum clearly defines roles: we have the development team, the product owner, and a business analyst or someone responsible for gathering requirements. This way, we have someone who is aware of the project and can gather the complete picture, along with a team that can execute it.
Scrum is well-suited for large teams and companies because it allows us to manage smaller Scrum teams within a larger group.
As I mentioned, there are approaches to development methodologies: non-Agile and Agile. Non-Agile methodologies, like Waterfall, are the oldest and are not commonly used for projects anymore. Agile methodologies, like Scrum, provide a flexible framework for managing projects, allowing us to change priorities and add functionality even mid-sprint.
Agile is further divided into Kanban and Scrum, which differ in complexity and project size. Kanban is suitable for repetitive, flow-based work, while Scrum is more appropriate for larger projects with an iterative approach, delivering each MVP version to the client.
Additionally, there are other development models, such as the V-Model, which focuses on requirements gathering and verification. The essence of the V-Model is that we must test our requirements during the gathering phase to ensure feasibility.
We also have the Incremental Model, where functionality is developed gradually. This is often referred to as Waterfall with incremental additions.
Then, there’s the Iterative Model, which is similar to the Incremental Model but focuses on developing parts of the project separately and then integrating them later.
Lastly, we have the RAD (Rapid Application Development) model, which involves breaking down components into smaller teams that work in parallel, speeding up the development process.
As I said, there are no pure development methodologies; there are always elements of one or another, whether it’s Waterfall or Agile, which includes Kanban and Scrum.
So, that’s all for today. Please subscribe to the channel, like the video, and don’t forget to follow me on Telegram. Let’s stay connected!