 Hello, and welcome to this session in which we will discuss the waterfall model versus the agile method when it comes to system development life cycle. In the prior session, we looked at the system development life cycle steps. So it's very important that you are familiar with this topic, the system development life cycle. The two most popular system development life cycle in the IT industry are the waterfall model and the waterfall model would look something like this. Think about two people sprinting, running. Well this person does not start until the first individual hand in the baton. So once they hand in the baton, this person will start. So in other words, it's a sequence, it's a steps. You don't start running until someone hand you off the baton versus the agile method. The agile method, the person is constantly running and those two illustration will show you the difference or will illustrate the difference as I'm going along. Before we proceed any further, I have a public announcement about my company farhatlectures.com. Farhat Accounting Lectures is a supplemental educational tool that's going to help you with your CPA exam preparation as well as your accounting courses. My CPA material is aligned with your CPA review course such as Becker, Roger, Wiley, Gleam, Miles. My accounting courses are aligned with your accounting courses broken down by chapter and topics. My resources consist of lectures, multiple choice questions, true-false questions as well as exercises. Go ahead, start your free trial today, no obligation, no credit card required. So in a waterfall model, in waterfall it looks something like this, waterfall model. We're looking at a linear and sequential approach. It means we don't move on until the previous step has been completed like a water, the waterfall one after the other. This is what we mean by a waterfall approach. Each stage in the system development life cycle must be completed. So this individual don't start running until the prior individual hand in the baton before we move into the next stage. And each stage has a specific deliverables that must be completed before moving on to the next stage. We know what we need to do. The other group, the second group is waiting for us until we give them the go ahead. And this type of model is well suited for where the requirements are well defined and the scope is fixed. So you know exactly what you're doing step by step. An example would be maybe a government agency building a new system to manage the citizens data. The requirement for the system will be well defined, there's a fixed budget, there's a timeline for the project. Here the waterfall model will be appropriate because we have a clear plan and each stage must be completed, can be completed in a structural manner. And this is what an example of a waterfall. So if you want to summarize what a waterfall approach looks like, it's a rigid approach. It's a traditional approach because we don't start any phase until the prior phase is completed and the prior phase cannot be revisited without going back to the beginning of the process. So once we are done, we know we are sure we are done 100%. This gives us less flexibility, less adaptability to changes because once it's done, that's it, you're going to have to do major changes in order to change it. So it can lead to delays in the development process if changes are required. So if you made a mistake because your steps are so rigid, you're going to have to go back and spend more time. So it's a traditional approach to software development and follow strict sequence of phases, strict sequence of phases, step by step. We don't move on until we complete the prior step with each phase dependent on the completion of the previous step. It's a structural top down approach that's well suited for project with well-defined requirement and a fixed scope. So we know exactly what we're doing. We know the roadmap step by step and each steps don't start until the previous step is completed. So this is a summary of the waterfall approach. On the other hand, the agile methodology is different. It's an iterative or iterative and incremental approach to software development that's based on collaboration, flexibility and continuous improvement. So what do we mean by iterative or iterative approach? Well, in system development or software development, this involved basically building a basic version of the software or the system, testing it, getting feedback from users, then making an improvement based on the feedback. So we don't know exactly what it looks like, but let's go ahead and get started, get something done. Let's assume you're building a website. You don't have a clear map. You don't have a clear picture of the final website. What you do is you build a version of it or part of it, you'll get feedback from the customer, feedback from the users, you'll go back and you improve on it. So the process might be repeated multiple time until the software or the website or the IT or the system meet the desired specification and user needs versus remember the waterfall is you have the steps right from the beginning. The steps are well-defined, well-structured and once one step is completed, it's very hard to go back and change. The agile method is more flexible and the agile method is based on the agile manifesto which outlined 12 principles. At the last slide, I will show you the 12 principles, but you're not responsible for them. So just so you have an idea why it's called the agile principle. So agile software development is focused on delivering value to the customer through a rapid delivery of a working software. Just give me something to work with so I can see it. I'll give you feedback. You'll go back and you will change it and we'll improve upon that. We don't have a clear picture of what's the final product looks like. So it's more flexible and adaptable than the waterfall model. It focuses on delivering working software quickly and adapting to changes as they occur. We expect changes, we like changes, we want changes. This is how the agile method works. It's based on collaboration between the people that are developing the software, developing the website and the customer which helps to ensure that the software or the website or the IT system meet the requirement of the customer. So we have faster feedback and allow for changes as needed. The agile method is well suited for a project with evolving requirement, requirement that are changing and a need for frequent change. And this is particularly useful for a project where the end users may not know what they want until they see it. And often time in a website or in an IT system or a software you really don't know what you want. You will discover it throughout the way. So not well defined and the scope is likely to change. Let's summarize the key differences between the two. When it comes to approaches, waterfall is sequential, agile is iterative approach. You go back and you expand on it, improve it. When it comes to flexibility, waterfall is rigid and does not allow for changes once a stage is completed. It's well planned. Agile allows for changes throughout the project. That's the nature of it. The requirement, the waterfall would require well defined requirement right from the get-go. The agile method is better suited for a project with evolving and changing requirement. The deliverables, waterfall produces documentation. This is the final product. This is exactly what we need and deliverables for each stage. Agile method focuses on workable software or workable system that can be subject to change. The timeframe is also different. The waterfall is slower compared to the agile system such as each stage must be completed before moving to the next. So in a waterfall, if one stage takes longer than if all the subsequent changes are waiting for it, well, the agile method allows for faster feedback and changes and we can move on. And these are the 12 principles of our agile software development. If you're interested in them, I don't think you'll be responsible for them, whether you're studying for the CPA, CMA or accounting information system. But if you read them, it gives you an idea that there's a close relationship between the developing team, the users, the customers, the owners, the stakeholders, someone and so forth. So what did you do now? Whether you are a CPA candidate, CMA candidate, accounting students, go to Farhat Lectures, work MCQs that can help you understand these topics better, makes you more prepared for the exam, a more prepared for your professional certification. Good luck, study hard and invest in yourself.