In this Course, you will explore how the software development lifecycle is adapted into different software development methodologies.
- Hello, and welcome to this video exploring common software methodologies. In practice, there are quite a few of these, but as you will learn there is no single best approach as each one has some pros and cons. Let's start with the Waterfall method. A Waterfall project moves along clearly defined phases so a preceding phase must be fully completed before the next one starts. However, this does have some shortcomings. For starters, it can be tough to completely define requirements at the beginning of the process, and accommodating changes at later stages can be almost impossible. For this reason, prototype is often used which also improves user involvement. The Waterfall approach works well when there's a low chance of business change, where requirements are clearly understood, and if you're working with well-understood tools and systems. But it's not a good pick if changes are likely to happen. Next up, the V Model. This approach is an extension of the Waterfall model with tests then taking place at every stage of the project focusing on approach, tasks, and schedule. This involves Unit Testing, Integration Testing, Systems Testing, and User Acceptance Testing. And regular reviews are also performed to check products and deliverables. So that's the V Model, now let's look at the Incremental model. The Incremental model is quite different to the Waterfall and V Model approaches. That's because with the Incremental model, the product's broken down into several different components. Each component is then designed and tested with a little more added to it piece by piece until all the requirements are met and the whole thing is done. A key strength here is that each component is released on completion. This reduces development time and allows users early access to parts of the system. However, the potential for frequent scope changes can result in multiple different versions of the system. Now let's look at Iterative development which offers another possible approach. Iterative development involves a life cycle where the overall project has several small timebox developments. These are called iterations and take place in a sequence. Each iteration is a self-contained mini project with analysis and design, development, and testing. On the upside, there's lots of collaboration, but it's harder to manage overall and unanticipated changes in scope can often emerge. Next up, the Spiral model. This consists of stages that combine design with prototyping. It aims to reduce risks by breaking development up into mini projects, with each one addressing a specific major risk. At the end, the product is delivered once on completion of the final iteration. The Spiral model is most often used in large projects needing constant review to stay on target. On a downside, overall costs can be higher and the system can be harder to maintain as things are constantly changing. However, it allows great collaboration with users so customers feel very involved. Finally, Agile. Agile is probably one of the most well-known methodologies out there. Agile focuses on producing working software and reducing bureaucracy and documentation. There are 12 core principles in Agile, and its lightweight approaches are easy to start using immediately. However, Agile projects can be more complex to manage as there are multiple people, teams, and changes. And organizations that follow strict audit, regulatory, and safety critical requirements won't benefit from Agile approach. So as you can see there's more than one way for your software project to be delivered. And, of course, your business and team will have their own preferences based on how they work, so be sure to investigate this topic further. Thank you for watching.
A world-leading tech and digital skills organization, we help many of the world’s leading companies to build their tech and digital capabilities via our range of world-class training courses, reskilling bootcamps, work-based learning programs, and apprenticeships. We also create bespoke solutions, blending elements to meet specific client needs.