5.1: Comparison of Agile Frameworks - Video Tutorials & Practice Problems
Video duration:
11m
Play a video:
Video transcript
<v ->Now, let's compare the major Agile frameworks.</v> In the first introductory lesson, we provided a summary of the major delivery frameworks. To recap, traditional project management, also informally referred to as Waterfall, provides a list of consecutive steps in delivering an outcome. For example, if we want to build a house, we spoke about preparing the construction site, pouring the foundation, doing framing, electrical, installing insulation, and so forth. And we spoke about not being able to start doing framing until the construction site is ready and the foundation is in place. In software delivery, traditional project management assumes that requirements are well defined before the coding starts, testing starts after coding is completed and the users do not see the finished product until it is ready. In traditional project management, delivery follows sequential phases, such as initiation, planning, execution, monitoring and controlling and closing. The same is true for Agile approach with one major difference. In Agile, the sequence repeats many times and in the end of each cycle, a new feature or a new customer-ready product is produced incrementally, as it is shown on the bottom of the slide. Each star here represents a minimum shippable product, a feature or an enhancement that is ready to be delivered to the customer, the one that brings immediate value to the end user. There are other fundamental differences between Agile and Waterfall as summarized in this slide. Since the product in Agile is delivered incrementally, customers are able to provide their feedback on the product and the functionality from the very beginning. Then the team is able to get on this feedback for the incoming iteration. No need to wait until the project is delivered to hear customer feedback. One more difference is that in Agile, there are usually dedicated longstanding teams, this means that one, the majority of the project team members are working full time on this specific project, and two, teams are not assembled for a specific project, they work together for a long period of time from the same backlog. In Waterfall, teams are created for the purpose of a specific project and frequently, team members are multitasking, or working on several projects simultaneously. That creates 20% time loss during the contact switch. In Agile, the focus is on team-level delivery for one specific product. Cross-functional teams are jointly delivering value to the customer. By cross-functional, we mean that the team members combined have all skills required for end-to-end delivery. The team has user experience designers, user researchers, developers, testers, and so on. Now, let us focus on Agile. Agile is a mindset of iterative product delivery, it includes multiple frameworks and methodologies. Based on the product and people-oriented nature of Agile and its ability to deliver value frequently and flexibly, these frameworks are becoming more and more popular. According to the latest "State of Agile Report" that is provided by a company called VersionOne, 80% of software teams are using Agile, and the most popular Agile framework is Scrum, adopted by 66% of Agile organizations. So let's review this framework. Scrum is defined in a "Scrum Guide." It defines it as a lightweight framework that helps people, teams and organizations generate value through adaptive solutions for complex problems. There are three pillars in Scrum, transparency, the emergent process and work must be visible to those performing the work as well as those receiving the work. The second pillar is inspection. The Scrum artifacts and the progress towards agreed goals must be inspected frequently and diligently to detect potential undesirable variations of problems. The third pillar is adaptation. If any aspects of the process change outside acceptable limits, or if the resulting product isn't unacceptable, the process that is being implied or the materials being produced must be adjusted. Continuous change, the adjustments must be made as soon as possible to minimize further deviation. A Scrum team is expected to adapt the moment it learns anything new through inspection. The most important feature of Scrum is its cyclical delivery within timeboxed iterations. A timeboxed iteration in Scrum is called a Sprint. Sprints are the heartbeat of Scrum, where ideas are turned into value. Sprints have consistent duration, usually, two, three or four weeks. A new Sprint starts immediately after the previous one is completed. Sprint consists of Sprint Planning, daily Scrums, Sprint review and Sprint retrospective. The next widely-adopted Agile methodology is Kanban. It originates from lean manufacturing and is focused on optimizing the flow of value throughout the system, end-to-end. Kanban is based on system thinking where the value delivery process, or the flow, as we learned from the lean description, is optimized throughout delivery. It's optimized from the initial input to customer delivery. There are no timeboxed iterations in Kanban, only continuous delivery, the flow, think of a car conveyor, one unit at a time. Kanban allows for defining the flow, controlling the batch size or how many elements are worked on at any moment of time, and ensuring the optimal pace of delivery. The goal of Kanban is to visualize the body of work and define the optimal way of producing a desirable income, hence the Kanban board that you see on your slide. Every process has its flow. A flow is a step or the number of steps to deliver a product or a service. Companies such as Microsoft, Motorola, Sprint use Kanban for their software development process. As opposed to Scrum, which requires significant organizational changes to build your teams, Kanban is evolutionary. It's built on optimizing delivery of removing bottlenecks, reducing waste and maximizing value of delivery. Kanban can be used by itself or it can be combined with another methodology, such as Scrum. The combination of Scrum and Kanban is referred to as Scrumban, it includes two things, optimized flow from Kanban and timeboxed iterations from Scrum. There are many other Agile frameworks, let's mention one more, it is called XP, or Extreme Programming. XP is a style of software development that focuses on the excellent application of programming techniques. It includes clear communication, teamwork, it allows to accomplish things that we previously could not even imagine. Similar to Scrum, it's based on short iterations and progressive software development. Many practitioners think that XP is primarily focused on such practices as Pair Programming, test-driven development, so it's fully technically focused. This is correct, but first of all, XP is about teamwork, flexibility and change. This is how Scrum works. Product owner keeps a product backlog, product backlog is a list of requirements presented as user stories from user perspective. This backlog collects all the prioritized top to bottom requirements for this specific product. In the beginning of Sprint, the timeboxed iteration, the team is doing Sprint Planning. What it does it selects those requirements that they want to commit to complete in the current Sprint. So let us say one, two and three, they feel they can complete. This is called, you may have guessed, Sprint backlog. Once the team selects the scope of the Sprint represented in a Sprint backlog, they start their Scrums. Scrums are done within the Sprint, and we said, usually, it is two to four weeks. Frankly, the shorter, the better, and some companies have even one week-long Sprint when they do integration within the Sprint. During the Sprint, everyday, they meet for their daily Scrum meeting. In this meeting, they usually answer three questions, what have I done yesterday? What am I doing today? And what are my impediments? And the whole team helps the team member remove those impediments and support them in unblocking delivery. In the end of the Sprint, two things happen. So one is the team is showing the results of the Sprint to the customers, that is called Sprint review. During the Sprint review, they talk about the scope of Sprint and show the finished product. Customers, internal or external, here have an option to provide immediate feedback. Sorry, this is Sprint review, and they can provide immediate feedback so that the product owner can take this feedback and move it immediately to the product backlog. Maybe they need to prioritize some lower-priority requirements or remove a requirement completely from the product backlog. Also, another thing that happens in the end of the Sprint is the opportunity for the team to make their process better, which is called retrospective. During retrospective, the team discusses how they can make their process, their deliverables, and overall, their teamwork better and agree on three to five action items that they want to complete so that they work better throughout the following Sprints. So this is Scrum in a nutshell.