YTread Logo
YTread Logo

What is Agile? | Agile Methodology | Agile Frameworks - Scrum, Kanban, Lean, XP, Crystal | Edureka

Jun 06, 2021
Hello everyone, my name is Michaan and I will be your instructor for the day. The main topic of the day is to understand

what

is meant by

agile

development and how it can really help different organizations to have a better approach to deploying the application. I have been working as a DevOps engineer with multiple development teams for the last 10 years. This session is being held on behalf of Eddie Rekha. Now the agenda for the day is some very simple questions that you will need to answer in order. to really understand

what

people mean when they say you're HR. so why do we need a job? what is still ajar development the key terms of

agile

the advantages over ciaochao and how you implement agile in your organization or in the team you are working with and the various methods, philosophies and

frameworks

that are available to actually implement a work in the team that you have, so in the past there was something called waterfall development or waterfall development model, so when I say Waterfall, you can think of something like, for example, a banking application, an insurance application or some Department application of cop.
what is agile agile methodology agile frameworks   scrum kanban lean xp crystal edureka
The moment I say waterfall model, you can think of a really huge application, which is made up of small pieces of code, for example, this. The application could have a front-end, this application would obviously have a back-end and then it has some DNS routes and some services that it depends on, so it doesn't really matter how many services are part of this application, but rather the entire application. it was shipped as a single hole application, that's how they used to happen in the past and it was referenced to this or this development method, the waterfall method, the application was called monolithic application, now it is called monolithic if I can write it correctly . monolithic application now you know everything was fine in D&D unless it was two thousand in 2002 and that's when things started to get a little extreme because customers would have ten different requirements that would change almost every day now if you have a single application , you have a single point of failure, so if we were changing even this part of this application and if this part failed, the entire application would stop working, that's when people started thinking about better approaches to software development and how You can meet the millennium requirements of today's world, without really affecting how software or any application is written in the first place, that's where agile development ideas came into the picture, so that was one part of the problem, the second Part of the problem was because it was a monolithic application, the time it took to push the changes, for example, let's say you have an application running in your production environment and your development team actually created a new feature or they modify the existing feature now that feature is supposed to go away. into production, but it actually used to take days and months in the past because you would never really know what will happen if you put it into production.
what is agile agile methodology agile frameworks   scrum kanban lean xp crystal edureka

More Interesting Facts About,

what is agile agile methodology agile frameworks scrum kanban lean xp crystal edureka...

Nowadays, there are so many moving parts that you are never sure if the existing thing will break. The app you have, so people used to do the maintenance. I'm pretty sure you would have received those emails like B is not available during this weekend because there is scheduled downtime, that's what used to happen now, which can't really fly. Now, think about companies like Netflix or Amazon, they really can't be down for even a moment because you never really know how many people are accessing the service. That's the second part of the problem that people were trying to solve.
what is agile agile methodology agile frameworks   scrum kanban lean xp crystal edureka
That's when it becomes agile. came on the scene now agile, put in simple terms it is a philosophy to quickly deploy an application in a much more organized way now obviously there are a lot more details than meets the eye but in a simple sentence that is what you mean by a jar you want fast. deploying the software or code you write without having to wait longer, at the same time you want to make sure you have small pieces of code that can be sent to the client or whatever application you are working with. the reason why Rajal exists today and now we will see what he means by agile and how this can be implemented, so I hope we are pretty clear about why there was a requirement for agile to begin with.
what is agile agile methodology agile frameworks   scrum kanban lean xp crystal edureka
This is what it means. by waterfall model, now this is the traditional practice of building software, so you would gather requirements that you would design or design what you imagined your software would be like and then there would be coding that would run, there would be verification and there would be maintenance. after deployment, so this is what has been happening for the last four decades, but this won't really work in today's world because multiple changes are pushed every day, so you can't really go through months of planning for a time. change, so the way applications are developed has changed and also the way applications are deployed, so that's what you mean by waterfall models now.
I think I've explained it pretty well, there are a lot of companies that still follow this model, but at the end of the day everyone tries to migrate to more agile development, it's not that easy depending on the size of the company, but you will still see some companies that use waterfall and are in the process of moving away from this model. our son to rescue then what is agile? We have talked about the requirement or gap as agile even exists so far. Now let's see what you mean by such an agile chef is nothing more than a chain of rapid development and deployment, that is, the first section.
Developing your software is always the planning part, but now you obviously know what you're about to build, but you break down that entire application into small pieces of code and then work on those small services, one service at a time, ensuring that First of all, you follow the microservices model and at the same time you don't really affect the entire application in general, so you plan, design, architect and actually develop the application, test it, deploy it and review it if You note that the release is actually outside this circle, meaning that every time you make a change it could be something as simple as renaming a single line of available code, so it doesn't matter how small or large the changes are. changes in the idea. by the time the change is made it should be deployed even in a development environment so you can get constant feedback on what is happening with the code which you imagine if you really had to wait a month or two weeks just to get the feedback on If you really want that change or not, that might be a little annoying or frustrating from a developers point of view, so that's the first aspect of Agile: you plan, design, develop, test, deploy the changes and then review the changes.
Before you release them to production, the other important aspect of Agile is that now instead of working with a large part of the application, you work in iterations, so when I say iterations what I mean is that you have a specific set of tasks that must be completed. in specific priority so you already know what you're supposed to be working on and you're not really worried about ten different microservices at the same time, you have a specific requirement that you need to focus on to have the first iteration which could be the first part of your app, second iteration, third iteration, so think about it this way if you have Amazon or if you're working for yourself, you know amazon.com or Amazon tour, which is the shopping website that you can go to amazon.com and you might think yes it is a website, actually it is not a website, it is a website which is divided into several other services, for example the website itself could be called frontend now, at the time when you come to amazon.com, you can click on a product. correct and then you will be able to see the details of a product so the service is no longer really a part of the front end that is called from something else called catalog now, once I decide that this is a product that I want to buy from you. clicking buy from time to time will take you to something called a shopping cart and after you make payments and all that stuff you will have email notifications and text notifications, the point here is that although all of these things work in synergy they are actually completely separate services, completely separate tasks in the underlying architecture, so if I'm working on something on the front-end I don't have to worry about catalogs and purchasing because first I get constant feedback even before the launch I receive comments on what will happen once we release your code to production at the same time.
I don't really have to fear my entire application breaking because they are all developed as separate microservices. one service will never affect another service, of course dependent services can be affected, but the idea is that you never want a single point of failure, that's the idea of ​​a jar. Now let's move on, what are the terms and values ​​of our work? the first value is people over processes and tools, working software over comprehensive documentation, customer collaboration over rigid contracts and responding to change rather than following a plan. , so people, above processes and tools, this type of person gives you a meaning of development-centric and customer-centric environment.
Just because you've been doing something traditionally for the last eight years doesn't mean you don't really explore the options you have now, for example, everything you did with PHP, my sequel yesterday can also be done with Python. and flask today, right, I'm not saying change your entire application, what I'm saying is that the model is quite people-centric, people like the development team and customers and end users are now given more importance and functional software than complete documentation. this is something we would all have noticed at some point so every application would have an internal document of how long 100 pages 150 pages about the entire class all the methods how the application is being built and then why the application is being built who owns a lot of other details that you as an individual don't even care about, you care about what you have to build and how far along you are in that development task, so in agile you are given a lot of more importance to the functional application. than documentation because if you think about it, the code itself is a documentation.
If you knew how to interpret the code, you could look at the code and that can also act as documentation, so I'm not saying it won't be. documentation, all I'm saying is that development is given more importance than the documentation part and then collaborating with the client on rigid contracts and responding to change rather than following the plan, so agility really it depends on feedback, i.e. in the past you knew the managers and the product owners will have several meetings, they will come up with the type of software they bought, everything will be discussed for three four months and then people will want to follow the plan because You've already spent four months planning this now if you wanted to change even a small part of this, all the meetings and planning would have to be done again.
Now agile changes work more with feedback. Just because the plan has been made, it doesn't mean there can't be any changes because you have divided things into smaller chunks of tasks, any of the tasks can be modified according to the requirements at any time, so these are the values ​​that Agile brings to the table, so there are two parts to the puzzle. profit in the new value table, so profit is what you get from the beginning and value is what you get from it, so what we saw before were the values ​​in which everyone you know in the table receives some of the other types of benefits. due to our work principles of agility, satisfied customer, welcome, changing requirements, deliver software that works, frequent iterations with stakeholders, motivated people, face-to-face communications measured by software that works, main in constant rhythm, sustained technical excellence in good design, keep it simple, empower the self-organizing team. reflect and continually now this might seem more like a textbook think here are the 10 benefits that you know just come with a job, but that's not really the case, we're actually going to see how this all comes to fruition, as you know, over time. future slides when we actually talk about how a piece of work can be implemented at work or in the team that you're working with, so now let's talk more about the benefits of agile.
You know we touch on all these things for now? Persistence software.delivers greater stakeholder satisfaction inspect and adapt welcome changes at any stage design is important and daily interactions are now at the heart of the entire presentation you now have a basic idea of ​​Persia, but the question everyone has at any time it's what's in it. For me, okay, you told me what a gel is and how can I know, but how can it help me as an individual or how can I actually implement a job? So there are multiple

frameworks

or philosophies when it comes to agile and extreme programming, read Kanban

crystal

. are some of the examples, the most popular one out there is called

scrum

, now again, these philosophies are not set in stone, it's not like if you follow

scrum

you know it's 100% what scrum dictates to you how to do it.
That way, that's not really the case in most cases, what people do is mainly implement scrum and then they have some ideas from canva and extreme and

lean

and then they have their own philosophy that works for their organization, but scrum is the one which is used by most people, so before we even look at the slide, you know, before we go over what we see on the slide, I can explain scrumpy to you as I know it well because I worked with several development teams. I've seen most of these implemented and know how each of them works in real world example.
So what is scrum? So, scrum is basically an iterative philosophy, which means I change the changes, you change the implementations and software development. at a time, so if you wanted to talk about scrum, scrum is an iteration of the plan, so build Cass and then review now, you would be constantly iterating on all of these aspects. What I mean by this? So let's first look at how or what does a team implemented with scrum look like? So on the team implemented with scrum, you have the first person I want to talk about: someone corners the product owner.
Now when I say product owner, if you come from there, you know more about a traditional software development environment. You can think of a product owner as a manager; He is the person who has the responsibility of ensuring that the application is deployed when committed, while also ensuring that the application is built exactly as it should be built, thus the product owner. He's the guy with the ideas, he may not necessarily be a technical person, he could also be a management guy, he doesn't necessarily have to know development or technicalities in detail, he's the guy with the idea and the owner of the app. that would be developed so pretty much all the responsibility falls on him and then there is someone called a scrum master, now scrum master is someone you would have traditionally referred to as a team leader or project owner, now you can think of scrum master as a team leader in the hierarchical sense, this is the person who is just below the product owner and this is the person who actually handles the data or handles the day to day operations, like you know, leading meetings or handing off tasks that must be done. done and then you have the team itself, which will be made up of your developers and testers and you know, depending on your requirements, it may have a few more roles, but then you have the actual team, but we will execute the tasks, so these are the three functions. that you have, but now that we know the people involved, how exactly this works, I mean, this is pretty similar to what you do in your office, they're just fancy names, you have a manager, you have a team leader and you have a team .
So how is it different from what you do in your office? That's what we want to see now. I hope the roles are clear to you now that you have them defined. Let's look at the development first. The first part of the development we want to see is called product backlogs. This is where things start to be a little different from how you might have been working in a traditional environment. Now, in a traditional environment, you have an application that has already been planned. for months and you, along with others, have been working on the implementation of the application and you know that the project usually lasts a few months or even a year or two, depending on the size of the project.
Now, in the product backlog, you actually have the same app iterated over. into smaller tasks so when I say smaller tasks you can think of the same amazon.com so the first iteration will have a plan it will be built tested and reviewed now in this case I'm not really building . the entire application. Obviously I have an idea of ​​what the app is supposed to look like, but for now let's say I'm only concerned with the front-end or what the main or main website would look like, so I have a second iteration. where you would like to know the same build cycle, test and review plan, but this is where I'm actually working with the email notification.
I'm actually coding how my email notifications would be sent and you know how to manage the email queues and the rest of the stuff and then you have a third iteration which could just be your payment processing, so in this case again, the same cycle that you plan, build, test and review, but the benefit here is that once you have the product backlog, this is all done. your product backlogs, these are the things that are supposed to be done over a period of time, so the first thing you need to do is define the product backlogs, not you as the developer, but the product owner and the scrum master, these are the people who actually create all the backlogs instead of, you know, a single application that says I want this to work, they actually break it down into little pieces of code, so that's the owner's job. of the product and the scrum master because as I said, product owner may not necessarily be a technical person, so the scrum master is the one who will have all his technical rights, so both of them will create a product board.
Rox, once you have a product backlog, there is something called user stories, so each of these would now be known as user stories and your scrum master actually ends up prioritizing them, that is, if you have a payment processor by front-end email and ten other backlogs that need to be developed, say over the next five or seven months, in that case the scrum master and product owner would prioritize now, obviously the payment processor is of no use if neither You don't even have a project, so logically I would like to prioritize my frontend over my payment processor so that the scrum master and product owner prioritize the user stories you have and depending on the priorities that have been said, something called sprint backlog happens to them.
Now the extended backlog is when your development team really gets into this because now you already have user stories organized and prioritized. You're supposed to be working on it, so you're not thrown ten different things at once, you're given logical and reasonable tasks that need to be executed one at a time and once you have a sprint backlog, you can start working on it. . as development, now I'm going to get rid of this beautiful drawing that was made for now, so let's now look at a sprint backlog. Sorry, I can't really, you know, type with my mouse, but I hope you realize it's called sprint.
Now there are different, you could call them ceremonies or rituals, but there is something called sprint planning. Now, sprint planning again, is just a fancy name for the processes and discussions you have during sprint planning. The product owner will actually explain how he envisions it. the end goal or the product for the application to look like, then you have something called sprint planning, you have something called daily scrum now daily scrum is nothing more than the 15 minute meeting that happens every day where developers and testers and any other role you have in the game can actually discuss what happened and where you stand if you need help there are roadblocks and what you plan to do today or tomorrow and then there's something called a sprint review so the sprint review in It actually happens at the end of the user's story or battle they've been working on, so each and every one of these user stories is usually designed with a two-week timeline in mind.
Now, some Sprint companies may vary as they might. It can be two to four weeks, but in most cases each sprint will last two weeks, so you will know exactly what you are supposed to do for the next two weeks, at the end of the two weeks, and you will know that you are When planning your daily meetings, once your sprint is completed, you have a sprint review, but you actually demo the code you have or you know there's some kind of check to make sure the sprint is actually completed and then you pass to a new sprint or you move on to a new user story that you have to work on, so that's the idea, that's how things generally work now, with that in mind, if we move to the next slide, that's it what scrum looks like, so you have a product backlog. and then you have a sprint planning now, as I mentioned before, each of these sprints, the schedule is usually a couple of weeks, depending on the size of your organization, it can last up to a month, but for all companies, it has always been like that. between 1 and 3 weeks, so you plan what needs to be done over the next two weeks and then you have the user story or backlog that you're supposed to work on and then you have your team actually working on it together with the daily scrum so that you have the daily meetings at the same time and at the end of the sprint you have the review and then you send the part that you code now when I say you send the part I don't necessarily mean that you put it in production, but you know that the piece is ready to be assembled into the application you have, so the idea is that at the end of every two weeks you have a shippable part of the application that is ready to be deployed, so instead from working on a huge app that would have taken a year anyway, now you break it down into things that can actually be shipped in two weeks depending on the priorities that the product owner and the scrum master have set, that's the idea of scrum. breaking everything down into smaller pieces of coal, smaller pieces of tasks so that everyone knows exactly what they are supposed to do.
That's the methodical part. You have a method. There is a specific set of best practices that you should follow. the technical aspect because you have a quick implementation the moment you write a code you can test it in the development environment. That's where people like me, DevOps, come in, but the idea is that you don't really have to wait a month. just to see what you code right now, if you push the code right now in a matter of minutes, you'll actually see that it works in the development environment, so that's the technical side, you have instant feedback to determine if you need to move forward or you know , if you have to make some changes in the code that you have now, which is crumb and agile in general, then there is a second method, so scrum was one of the philosophies or framework, then you have something called extreme programming, now this was one of the first that a group of developers came up with back in 2001.
I think the guy was called Kent, so they came up with the idea of ​​agile development, came up with a set of best practices, and then even signed a manifesto , so they created a manifesto that says these are the things we should follow in the industry, these are the best practices and these are the principles, and they even signed it, so extreme programming has been around for almost a couple of years. decades and scrum is kind of the next iteration of extreme programming, it's a big difference, but like I said before, most organizations use scrum programming, so in extreme programming they came up with the set of basic principles, like people centric environmental discipline and then you have rapid implementation, so project requirements, stories, test cases, task completion, customer input, iteration planning, now both things are happening in parallel, so which has project requirements, has stories, test cases, tasks and completion, and at the same time, has input from the client and at some point. point, you have customer relations in the meeting for example you developed 20% of the application and your end user or your customer came back with a better idea or if they need some modifications then those are the changes then you have your UNT test , it has client secondary testing and acceptance at the end of programming so extreme the ideas are somewhat similar to scrum but at the end of the day all these philosophies are trying to improve the lives of developers and end users and not compromise on technicalities instead of making the ideais that the product can be shipped better and faster, okay, let's move on, then you have

lean

programming, so the lean principles even this has been around for a while, so eliminate waste, amplify learning, decide the most late as possible, decide as quickly as possible, strengthen the team, build integrity. and see the whole, yes, then you could call it a framework, you could call it a philosophy or a

methodology

.
Now it really depends on you knowing the word you want to use, but at the end of the day, you're again trying to become a focused, people-centric developer and establishing best practices to make sure everyone on the team knows exactly what they're supposed to do. they need to do and have a cross-functional team when I say essentially cross-functional, I'm pretty sure if you're watching this video it's because you have some experience in development and if you do, you would have come across this point right when talking to someone. Okay, you've seen that feature and we looked at the code and that guy would say you know that code.
I'm not worried, it's none of my business. I'm working on something completely different. You know, we're used to that kind of development where people individually know what they're supposed to do and aren't even worried about what's going to happen. someone else is doing now, it's time to break down the silos. Just because you're not coding that part doesn't mean the code doesn't concern the part of the code you're writing, so everyone has to come together and work on it. The same application, which is what you will call a cross-functional team in the scrum example. Once you have the user stories and backlogs you're supposed to work on in the next two weeks, it doesn't really matter what role you play. in the team it is your team's responsibility to make sure that the task has been completed and the task is also being designed keeping the schedule in mind, so it's not like you are expected to do six weeks of development in two weeks, so that the task itself is designed with the schedule in mind and then you have something like Kanban, so Kanban is similar to scrum, the difference here is that in the case of scrums you have smaller chunks of backlog that It assumes that you have to work for the next two or three weeks, in the case of Kanban, it is a continuous process, so there is no such thing as a sprint, what you can do in Kanban is have a list of tasks that are supposed to be done and for example you have something like know, a whiteboard, you have a build queue, you have a test queue and you have a ship queue now this is a hypothetical example, obviously you would have a plan and the rest of the X, but the point is that you could have four things that need to be built or let's just say three services that need to be built and once the first service has been created, it actually goes on to test it and then this place is occupied by another service and once that is done, it is goes to test and is occupied by another service, meanwhile if this test is done it will go to the submit queue and will eventually be submitted, so the idea is that any task that has been accomplished will be placed by a new item in the queue, so if you have a build Q test queue and you submit it, these would all be moving parts, so if your job is to build this and let's say your colleague pushed this protest.
The moment you insert this first element into the test, another element will replace this first element so that you know what is the next element you are supposed to work on. so Kanban is more like a continuous implementation of software development, so that's what you mean by agility in general, even if you think about it, the English word agility means to be really fast, right agility would mean that whatever you are doing happens in quick succession. Well, that's what you mean by agility in general, so in case of development, by providing agility to your team, you ensure that everyone is happy at the end of the day and you still have a technically smarter team that can get feedback instant.
I'll give you a quick example of this. I'm pretty sure all of us, or at least most of us, know about Netflix. You would be surprised to know that Netflix is ​​making more than 1,000 changes every day to its productions if you really worked. On a Netflix development team you would know that these guys are driving a thousand changes into production every day. How do you think that is possible? They're obviously not pushing it into production without reviewing it and testing it, even with all those things in place. How can they implement 1000+ changes every day now? These could be very small changes, as you know, some UI fixes, some database fixes, some payment processes and fixes, so we're not really worried about what the changes are, but I know for sure. that's the number, that's the amount of change that they actually drive every day, that's possible because you're talking about rapid deployment for agility or becoming a jar, so that's the level of agility that you can actually get in the moment when you have an organized team that is working.
Based on the principles of a jar now, obviously there are external factors, like knowing how your infrastructure is, how your downtime is, but it's possible at the end of the day and then there's one more framework called Crystal, so These are the ideas of a work now, I hope I have made it clear to me how I can help your team to become a better development team, so there are three correct aspects, philosophical, technical and the way the software is built, so philosophical, being best practices, such as how you define your team's. who is a scrum master who is the product owner what is the team what is a sprint what are the tasks you are supposed to do then you have the technical side, for example if you build a code, how exactly can you deploy the code automatically How can you review the code?
How can you test code automatically? And then there's an aspect of software development where you're moving away from a monolithic application toward the idea of ​​microservices. These are the three aspects that move in parallel and at the same time. At the end of the day, it gives you peace of mind, it gives your product manager and end user peace of mind, with better deployment ideas so you don't have to run around 10 different desktops confirming whether your changes were actually deployed or not, That's all for me. If you have any questions, please do not hesitate to contact Ed Eureka.
I'm pretty sure he'll find the contact details somewhere around this video and thank you very much for his time. Have a good day everyone and good luck. I hope you enjoyed listening to this video. Kindly like and comment on any of your doubts and queries and we will respond to them as soon as possible. Stay tuned for more videos in our playlist and subscribe to any Rekha channel for more happy learning

If you have any copyright issue, please Contact