{"id":23,"date":"2023-09-04T18:35:40","date_gmt":"2023-09-04T18:35:40","guid":{"rendered":"https:\/\/libraryresources.nse.org.ng\/setextbook\/chapter\/agile\/"},"modified":"2026-03-16T14:20:29","modified_gmt":"2026-03-16T14:20:29","slug":"agile","status":"publish","type":"chapter","link":"https:\/\/libraryresources.nse.org.ng\/setextbook\/chapter\/agile\/","title":{"raw":"Agile","rendered":"Agile"},"content":{"raw":"<div class=\"imgbleed\"><a href=\"https:\/\/open.oregonstate.education\/app\/uploads\/sites\/174\/2023\/09\/CoverChapter02.png\"><img class=\"aligncenter size-full wp-image-20\" src=\"https:\/\/libraryresources.nse.org.ng\/wp-content\/uploads\/sites\/16\/2021\/08\/CoverChapter02.png\" alt=\"Chapter cover\" width=\"2550\" height=\"1320\"><\/a><\/div>\n<h2 class=\"chtitle\">Chapter 1\nAgile<\/h2>\nThis book is geared toward [pb_glossary id=\"788\"]Agile[\/pb_glossary], but there are other [pb_glossary id=\"793\"]software process models[\/pb_glossary]. Each has a different way of proceeding through the [pb_glossary id=\"790\"]software development life cycle (SDLC)[\/pb_glossary]. This chapter starts by describing Scrum, the SDLC, Agile, and a contrasting software process model called Waterfall. That is followed by a discussion of [pb_glossary id=\"791\"]Scrum[\/pb_glossary] (an Agile framework) and notable Agile methods.\n\nThis chapter will give you the flavor of Agile and Scrum rather than being a comprehensive guide. For more detailed information about topics introduced here, see the References section at the end of the chapter.\n<h1>1.1 The Software Development Life Cycle<\/h1>\nThe software development lifecycle (SDLC) is the progression of a software project through five SDLC stages:\n<ol>\n \t<li><strong>Requirements<\/strong>: Figuring out and writing down what the software must do, how well, and under what limitations or constraints.<\/li>\n \t<li><strong>Design<\/strong>: Determining how the software\u2019s code will be structured and how users will interact with the software.<\/li>\n \t<li><strong>Implementation<\/strong>: Using the requirements and design to code the software.<\/li>\n \t<li><strong>Testing<\/strong>: Checking that the code was written without fault ([pb_glossary id=\"794\"]verification[\/pb_glossary]) and that the software is what the users or client wants ([pb_glossary id=\"795\"]validation[\/pb_glossary]).<\/li>\n \t<li><strong>Maintenance<\/strong>: Improving software\u2019s existing functionality and code.<\/li>\n<\/ol>\nThere are different ways to travel through the SDLC stages. Patterns of traveling through the stages are called software process models. Commonly, people compare the Agile software process model with the [pb_glossary id=\"792\"]Waterfall[\/pb_glossary] model.\n\nAgile, guided by the Agile <em>Manifesto<\/em> (Beck et al., <span class=\"citation\">[pb_glossary id=\"332\"]2001[\/pb_glossary]<\/span>), moves through the SDLC approximately like in Figure 1.1.\n\n[caption id=\"attachment_98\" align=\"aligncenter\" width=\"1336\"]<a href=\"https:\/\/open.oregonstate.education\/app\/uploads\/sites\/174\/2023\/09\/Fig02.01.png\"><img class=\"wp-image-21 size-full\" src=\"https:\/\/libraryresources.nse.org.ng\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.01.png\" alt=\"Three columns. The first reads RD. The second reads ITM, RD. The third reads ITM, RD\" width=\"1336\" height=\"404\"><\/a> <strong>Figure 1.1<\/strong> How Agile Projects Move through SDLC Stages[\/caption]\n\n<em>Note<\/em>. The vertical lines represent development cycle boundaries. Planning (R,D) for the next development cycle starts during the previous cycle. R, requirements; D, design; I, implementation; T, testing; M, maintenance.\n\nAgile development cycles are relatively short and numerous. Releases are frequent and incremental. Each cycle, there\u2019s a little more working functionality. There are multiple ways to go about developing and managing software in an Agile way, such as by using the Scrum framework (Schwaber &amp; Sutherland, <span class=\"citation\">[pb_glossary id=\"338\"]2020[\/pb_glossary]<\/span>) or Extreme Programming (XP) (Beck &amp; Andres, <span class=\"citation\">[pb_glossary id=\"335\"]2004[\/pb_glossary]<\/span>; Wells, <span class=\"citation\">[pb_glossary id=\"340\"]2013[\/pb_glossary]<\/span>).\n\nWaterfall moves through the SDLC approximately like in Figure 1.2.\n\n[caption id=\"attachment_99\" align=\"aligncenter\" width=\"1246\"]<a href=\"https:\/\/open.oregonstate.education\/app\/uploads\/sites\/174\/2023\/09\/Fig02.02.png\"><img class=\"size-full wp-image-22\" src=\"https:\/\/libraryresources.nse.org.ng\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.02.png\" alt=\"Text that reads R D I T M with an arrow pointing to the next letter in the sequence.\" width=\"1246\" height=\"338\"><\/a> <strong>Figure 1.2<\/strong> How Waterfall Projects Move through SDLC Stages[\/caption]\n\nMovement is fairly linear and sequential. Each stage depends on the previous stage having been completed. Lots of documentation is produced.\n\nIronically, people often associate Waterfall with an article that describes Waterfall\u2019s major flaws. The second figure in Royce\u2019s (<span class=\"citation\">[pb_glossary id=\"337\"]1970[\/pb_glossary]<\/span>) article depicts the Waterfall model with seven stages and downward movement from one stage to the next, suggesting that movement to the previous stage is not allowed\u2014you can\u2019t swim up a waterfall. Later in the article, Royce suggests modifications to the Waterfall model, such as making and implementing a preliminary program design (then going back to the requirements stage as needed).\n\nWaterfall might not make sense for many software projects, but how about for building a bridge?\n<h2>1.1.1 Why Care about Agile, Other Software Process Models, and Software Engineering Methods?<\/h2>\n<div class=\"textbox textbox--sidebar\">\n\nThe 2015 CHAOS report contains aggregate data about more than 25,000 software projects.\n\n<strong>Some findings about software projects<\/strong>:\n\n9% of Agile projects failed\n29% of Waterfall projects failed\n23% of large Agile projects failed\n42% of large Waterfall projects failed\n4% of small Agile projects failed\n11% of small Waterfall projects failed\n\n<\/div>\n<ul>\n \t<li>So you can <strong>detect and\/or understand what a software development team is doing<\/strong>. When you\u2019re new to a team, having a general understanding of different software process models can <strong>help you ask good questions, identify what you see the team doing, and look competent in front of your team and managers<\/strong>.<\/li>\n \t<li class=\"page-break-before\">So you have <strong>ideas<\/strong> to choose from when you need to select a software process model or method for a new project. You might need to choose or recommend how your team proceeds.<\/li>\n \t<li>So you have ideas to choose from when a project is in trouble. According to CHAOS Report from the Standish Group International, Inc. (<span class=\"citation\">[pb_glossary id=\"339\"]2015[\/pb_glossary]<\/span>), during fiscal years 2011 to 2015, <strong>17% to 22% of software projects failed <\/strong>of the 25,000+ software projects in their database, with the likelihood of project failure <strong>increasing drastically with project size<\/strong>. Sometimes, you can save a project if you have the right methods.<\/li>\n<\/ul>\nSince this book is focused on Agile, the remainder of the chapter summarizes the Agile software process model, one Agile framework (Scrum), and a few Agile methods.\n<h1>1.2 Agile, Scrum, and Agile Methods<\/h1>\n<h2>1.2.1 Agile<\/h2>\nThe Agile philosophy is summed up by the Agile <em>Manifesto for Software Development<\/em> (Beck et al., <span class=\"citation\">[pb_glossary id=\"332\"]2001[\/pb_glossary]<\/span>):\n<div class=\"textbox\">\n\nWe are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:\n<ul>\n \t<li><strong>Individuals<\/strong> and <strong>interactions<\/strong> over processes and tools.<\/li>\n \t<li><strong>Working software<\/strong> over comprehensive documentation.<\/li>\n \t<li><strong>Customer collaboration<\/strong> over contract negotiation.<\/li>\n \t<li><strong>Responding to change<\/strong> over following a plan.<\/li>\n<\/ul>\nThat is, while there is value in the items on the right, we value the items on the left more.\n\n<\/div>\nWhy does this book have a whole chapter about Agile and not one about Waterfall or any other software process model? Because most organizations use Agile for software or IT projects.\n\nFor example, an HP survey of 601 respondents (Hewlett Packard Enterprise, <span class=\"citation\">[pb_glossary id=\"336\"]2017[\/pb_glossary]<\/span>) found the following distribution of what organizations use as their primary software process model:\n<ul>\n \t<li>51%: Leaning toward Agile<\/li>\n \t<li>24%: Hybrid<\/li>\n \t<li>16%: Pure Agile<\/li>\n \t<li>7%: Leaning toward Waterfall<\/li>\n \t<li>2%: Pure Waterfall<\/li>\n<\/ul>\nWhy do organizations choose Agile? According to HP, out of 403 organizations that have primarily adopted Agile, the following percentage of respondents agreed with the following statements about Agile development:\n<ul>\n \t<li>54%: <strong>Enhances collaboration<\/strong> between teams that don\u2019t usually work together.<\/li>\n \t<li>52%: <strong>Increases<\/strong> the level of <strong>software quality<\/strong> in organizations.<\/li>\n \t<li>49%: Results in increased <strong>customer satisfaction.<\/strong><\/li>\n \t<li>43%: Shortens<strong> time to market<\/strong>.<\/li>\n \t<li>42%: <strong>Reduces cost<\/strong> of development.<\/li>\n<\/ul>\n<h2>1.2.2 Scrum<\/h2>\nScrum is a well-known framework for software project management. It aligns with the Agile philosophy. For example, the Scrum Guide (the ever-evolving manual for Scrum; Schwaber &amp; Sutherland, <span class=\"citation\">[pb_glossary id=\"338\"]2020[\/pb_glossary]<\/span>) says that to reflect the \u201cresponding to change\u201d value, a software project should be broken into development Sprints that are usually two to four weeks long. Each Sprint has a Sprint Plan. Sprint Plans can be defined shortly before the Sprint; Teams (and their customers) might only know what is happening with the project\u2019s development for a couple weeks at a time.\n\nScrum Teams fit their own methods into the Scrum framework, which the current version of the Scrum Guide divides into three categories: the <strong>team<\/strong>, the <strong>events<\/strong>, and the <strong>artifacts<\/strong>. To give you a quick, convenient introduction to Scrum, each element of the framework is listed below, by category.\n\n<strong>The Team<\/strong>. The Scrum Team \u201cconsists of one <strong>Scrum Master<\/strong>, one <strong>Product Owner<\/strong>, and <strong>Developers<\/strong>.\u201d\n<ul>\n \t<li><strong>Scrum Master<\/strong>: \u201caccountable for <strong>establishing Scrum<\/strong> as defined in the Scrum Guide.\u201d<\/li>\n \t<li><strong>Product Owner<\/strong>: \u201caccountable for <strong>maximizing the value of the product<\/strong> resulting from the work of the Scrum Team.\u201d<\/li>\n \t<li><strong>Developers<\/strong>: \u201cpeople in the Scrum Team that are <strong>committed to creating<\/strong> any aspect of a usable Increment each Sprint.\u201d<\/li>\n<\/ul>\nThe Scrum Master\u2019s focus is <strong>process<\/strong>, the Product Owner\u2019s focus is the <strong>product<\/strong> (software), and the Developers\u2019 focus is <strong>creating<\/strong> a product while following Scrum processes.\n\n<strong>The Events<\/strong>. There are five Scrum events:\n<ul>\n \t<li><strong>The Sprint<\/strong>: <strong>fixed-length<\/strong> <strong>development periods<\/strong> of \u201c<strong>one month or less<\/strong> . . . A new Sprint starts immediately after the conclusion of the previous Sprint.\u201d<\/li>\n \t<li><strong>Sprint Planning<\/strong>: \u201cinitiates the Sprint by <strong>laying out the work<\/strong> to be performed.\u201d<\/li>\n \t<li><strong>Daily Scrum<\/strong>: \u201ca <strong>15-minute<\/strong> event for the Developers of the Scrum Team . . . focuses on progress toward the Sprint Goal and produces an actionable plan for the next day of work.\u201d<\/li>\n \t<li><strong>Sprint Review<\/strong>: \u201cto <strong>inspect the outcome of the Sprint<\/strong> and determine future adaptations. The <strong>Scrum Team<\/strong> presents the results of their work to key <strong>stakeholders . . .<\/strong>\u201d<\/li>\n \t<li><strong>Sprint Retrospective<\/strong>: \u201cto <strong>plan<\/strong> ways to increase quality and effectiveness . . . <strong>Scrum Team<\/strong> inspects how the last Sprint went . . .\u201d<\/li>\n<\/ul>\nA Sprint is a development period that occurs in a series of Sprints, which are each laid out during Sprint Planning. Each day, the Developers have a 15-minute meeting about planning the next workday. Sprints end with a Sprint Review (team and stakeholders) and a Sprint Retrospective (team only).\n\n<strong>The Artifacts<\/strong>. There are three Scrum artifacts:\n<ul>\n \t<li><strong>Product Backlog<\/strong>: \u201can emergent, <strong>ordered list of what is needed<\/strong> to improve the product.\u201d<\/li>\n \t<li><strong>Sprint Backlog<\/strong>: \u201ccomposed of the <strong>Sprint Goal<\/strong> (why), the set of <strong>Product Backlog items<\/strong> <strong>selected<\/strong> for the Sprint (what), as well as an <strong>actionable plan<\/strong> for delivering the Increment (how).\u201d<\/li>\n \t<li><strong>Increment<\/strong>: \u201ca concrete <strong>stepping stone toward the Product Goal<\/strong>.\u201d<\/li>\n<\/ul>\nThe Product Backlog contains a rough list of tasks the Scrum Team is planning to do some time, but the tasks haven\u2019t yet been scheduled and may not be defined in detail. The Sprint Backlog contains tasks the team has decided to work on and has added details about completing the tasks. An Increment is an achievement toward creating the product (e.g., finishing a feature implementation).\n\nThe <em>Scrum Guide<\/em> (Schwaber &amp; Sutherland, <span class=\"citation\">[pb_glossary id=\"338\"]2020[\/pb_glossary]<\/span>) describes the Scrum framework elements in more detail and defines some of the terms that were unexplained here (e.g., Sprint Goal).\n<h2>1.2.3 Agile Methods<\/h2>\nThere are several notable Agile methods that can be used within Scrum (or other frameworks, or other software process models). A few of them:\n<ul>\n \t<li><strong>Scrum board<\/strong>: A way to organize and visualize tasks or work as cards on a board. The board has columns for different categories, and each card is placed within a column. A Scrum board could be a physical bulletin board with sticky notes or index cards. It is also a common feature of task management software.<\/li>\n \t<li><strong>Spike<\/strong>: A quick and to-the-point investigation for gathering information to help the team answer a question or choose a development path.<\/li>\n \t<li><strong>User story<\/strong>: A short description of a software feature from the perspective of fulfilling a user need (e.g., using this format: As a &lt;role&gt; I can &lt;capability&gt;, so that &lt;receive benefit&gt;). Tasks, priorities, time\/cost estimates, and acceptance criteria may be associated with a user story.<\/li>\n<\/ul>\n<h1>1.3 Summary<\/h1>\n\u201cAgile\u201d has associated values but no concrete meaning: it\u2019s a philosophy, and there\u2019s not just one way to follow it. Agile frameworks such as Scrum give more concrete guidance on software development and [pb_glossary id=\"1053\"]project management[\/pb_glossary]. Scrum is defined by the current version of the <em>Scrum Guide<\/em> (Schwaber &amp; Sutherland, <span class=\"citation\">[pb_glossary id=\"338\"]2020[\/pb_glossary]<\/span>), which changes frequently.\n<h1>References<\/h1>\n<p class=\"hanging-indent\">Beck, K., Beedle, M., van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., Grenning, J., Highsmith, J., Hunt, A., Jeffries, R., Kern, J., Marick, B., Martin, R. C., Mellor, S., Schwaber, K., Sutherland, J., &amp; Thomas, D. (2001). <em>Manifesto for Agile software development<\/em>. <a href=\"https:\/\/agilemanifesto.org\/\">https:\/\/agilemanifesto.org\/<\/a><\/p>\n<p class=\"hanging-indent\">Beck, K., &amp; Andres, C. (2004). <em>Extreme programming explained: Embrace change<\/em> (2nd ed.). Addison-Wesley.<\/p>\n<p class=\"hanging-indent\">Hewlett Packard Enterprise (2017). <em>Agile is the new normal: Adopting Agile project management<\/em>. <a href=\"https:\/\/softwaretestinggenius.com\/docs\/4aa5-7619.pdf\">https:\/\/softwaretestinggenius.com\/docs\/4aa5-7619.pdf<\/a><\/p>\n<p class=\"hanging-indent\">Royce, W. W. (1970). Managing the development of large software systems. <em>Proceedings of IEEE WESCON, 26<\/em>, 1-9.<\/p>\n<p class=\"hanging-indent\">Schwaber, K., &amp; Sutherland, J. (2020, November). <em>The 2020 scrum guide<\/em>. <a href=\"https:\/\/scrumguides.org\/scrum-guide.html\">https:\/\/scrumguides.org\/scrum-guide.html<\/a><\/p>\n<p class=\"hanging-indent\">Standish Group International, Inc. (2015). <em>CHAOS report 2015<\/em>. <a href=\"https:\/\/standishgroup.com\/sample_research_files\/CHAOSReport2015-Final.pdf\">https:\/\/standishgroup.com\/sample_research_files\/CHAOSReport2015-Final.pdf<\/a><\/p>\n<p class=\"hanging-indent\">Wells, D. (2013, October 13). <em>Extreme programming: A gentle introduction.<\/em> <a href=\"http:\/\/www.extremeprogramming.org\/\">http:\/\/www.extremeprogramming.org\/<\/a><\/p>","rendered":"<div class=\"imgbleed\"><a href=\"https:\/\/open.oregonstate.education\/app\/uploads\/sites\/174\/2023\/09\/CoverChapter02.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-20\" src=\"https:\/\/libraryresources.nse.org.ng\/wp-content\/uploads\/sites\/16\/2021\/08\/CoverChapter02.png\" alt=\"Chapter cover\" width=\"2550\" height=\"1320\" srcset=\"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2021\/08\/CoverChapter02.png 2550w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2021\/08\/CoverChapter02-300x155.png 300w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2021\/08\/CoverChapter02-1024x530.png 1024w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2021\/08\/CoverChapter02-768x398.png 768w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2021\/08\/CoverChapter02-1536x795.png 1536w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2021\/08\/CoverChapter02-2048x1060.png 2048w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2021\/08\/CoverChapter02-65x34.png 65w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2021\/08\/CoverChapter02-225x116.png 225w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2021\/08\/CoverChapter02-350x181.png 350w\" sizes=\"(max-width: 2550px) 100vw, 2550px\" \/><\/a><\/div>\n<h2 class=\"chtitle\">Chapter 1<br \/>\nAgile<\/h2>\n<p>This book is geared toward Agile, but there are other software process models. Each has a different way of proceeding through the software development life cycle (SDLC). This chapter starts by describing Scrum, the SDLC, Agile, and a contrasting software process model called Waterfall. That is followed by a discussion of Scrum (an Agile framework) and notable Agile methods.<\/p>\n<p>This chapter will give you the flavor of Agile and Scrum rather than being a comprehensive guide. For more detailed information about topics introduced here, see the References section at the end of the chapter.<\/p>\n<h1>1.1 The Software Development Life Cycle<\/h1>\n<p>The software development lifecycle (SDLC) is the progression of a software project through five SDLC stages:<\/p>\n<ol>\n<li><strong>Requirements<\/strong>: Figuring out and writing down what the software must do, how well, and under what limitations or constraints.<\/li>\n<li><strong>Design<\/strong>: Determining how the software\u2019s code will be structured and how users will interact with the software.<\/li>\n<li><strong>Implementation<\/strong>: Using the requirements and design to code the software.<\/li>\n<li><strong>Testing<\/strong>: Checking that the code was written without fault (verification) and that the software is what the users or client wants (validation).<\/li>\n<li><strong>Maintenance<\/strong>: Improving software\u2019s existing functionality and code.<\/li>\n<\/ol>\n<p>There are different ways to travel through the SDLC stages. Patterns of traveling through the stages are called software process models. Commonly, people compare the Agile software process model with the Waterfall model.<\/p>\n<p>Agile, guided by the Agile <em>Manifesto<\/em> (Beck et al., <span class=\"citation\">2001<\/span>), moves through the SDLC approximately like in Figure 1.1.<\/p>\n<figure id=\"attachment_98\" aria-describedby=\"caption-attachment-98\" style=\"width: 1336px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/open.oregonstate.education\/app\/uploads\/sites\/174\/2023\/09\/Fig02.01.png\"><img decoding=\"async\" class=\"wp-image-21 size-full\" src=\"https:\/\/libraryresources.nse.org.ng\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.01.png\" alt=\"Three columns. The first reads RD. The second reads ITM, RD. The third reads ITM, RD\" width=\"1336\" height=\"404\" srcset=\"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.01.png 1336w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.01-300x91.png 300w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.01-1024x310.png 1024w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.01-768x232.png 768w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.01-65x20.png 65w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.01-225x68.png 225w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.01-350x106.png 350w\" sizes=\"(max-width: 1336px) 100vw, 1336px\" \/><\/a><figcaption id=\"caption-attachment-98\" class=\"wp-caption-text\"><strong>Figure 1.1<\/strong> How Agile Projects Move through SDLC Stages<\/figcaption><\/figure>\n<p><em>Note<\/em>. The vertical lines represent development cycle boundaries. Planning (R,D) for the next development cycle starts during the previous cycle. R, requirements; D, design; I, implementation; T, testing; M, maintenance.<\/p>\n<p>Agile development cycles are relatively short and numerous. Releases are frequent and incremental. Each cycle, there\u2019s a little more working functionality. There are multiple ways to go about developing and managing software in an Agile way, such as by using the Scrum framework (Schwaber &amp; Sutherland, <span class=\"citation\">2020<\/span>) or Extreme Programming (XP) (Beck &amp; Andres, <span class=\"citation\">2004<\/span>; Wells, <span class=\"citation\">2013<\/span>).<\/p>\n<p>Waterfall moves through the SDLC approximately like in Figure 1.2.<\/p>\n<figure id=\"attachment_99\" aria-describedby=\"caption-attachment-99\" style=\"width: 1246px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/open.oregonstate.education\/app\/uploads\/sites\/174\/2023\/09\/Fig02.02.png\"><img decoding=\"async\" class=\"size-full wp-image-22\" src=\"https:\/\/libraryresources.nse.org.ng\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.02.png\" alt=\"Text that reads R D I T M with an arrow pointing to the next letter in the sequence.\" width=\"1246\" height=\"338\" srcset=\"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.02.png 1246w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.02-300x81.png 300w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.02-1024x278.png 1024w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.02-768x208.png 768w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.02-65x18.png 65w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.02-225x61.png 225w, https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-content\/uploads\/sites\/16\/2026\/03\/Fig02.02-350x95.png 350w\" sizes=\"(max-width: 1246px) 100vw, 1246px\" \/><\/a><figcaption id=\"caption-attachment-99\" class=\"wp-caption-text\"><strong>Figure 1.2<\/strong> How Waterfall Projects Move through SDLC Stages<\/figcaption><\/figure>\n<p>Movement is fairly linear and sequential. Each stage depends on the previous stage having been completed. Lots of documentation is produced.<\/p>\n<p>Ironically, people often associate Waterfall with an article that describes Waterfall\u2019s major flaws. The second figure in Royce\u2019s (<span class=\"citation\">1970<\/span>) article depicts the Waterfall model with seven stages and downward movement from one stage to the next, suggesting that movement to the previous stage is not allowed\u2014you can\u2019t swim up a waterfall. Later in the article, Royce suggests modifications to the Waterfall model, such as making and implementing a preliminary program design (then going back to the requirements stage as needed).<\/p>\n<p>Waterfall might not make sense for many software projects, but how about for building a bridge?<\/p>\n<h2>1.1.1 Why Care about Agile, Other Software Process Models, and Software Engineering Methods?<\/h2>\n<div class=\"textbox textbox--sidebar\">\n<p>The 2015 CHAOS report contains aggregate data about more than 25,000 software projects.<\/p>\n<p><strong>Some findings about software projects<\/strong>:<\/p>\n<p>9% of Agile projects failed<br \/>\n29% of Waterfall projects failed<br \/>\n23% of large Agile projects failed<br \/>\n42% of large Waterfall projects failed<br \/>\n4% of small Agile projects failed<br \/>\n11% of small Waterfall projects failed<\/p>\n<\/div>\n<ul>\n<li>So you can <strong>detect and\/or understand what a software development team is doing<\/strong>. When you\u2019re new to a team, having a general understanding of different software process models can <strong>help you ask good questions, identify what you see the team doing, and look competent in front of your team and managers<\/strong>.<\/li>\n<li class=\"page-break-before\">So you have <strong>ideas<\/strong> to choose from when you need to select a software process model or method for a new project. You might need to choose or recommend how your team proceeds.<\/li>\n<li>So you have ideas to choose from when a project is in trouble. According to CHAOS Report from the Standish Group International, Inc. (<span class=\"citation\">2015<\/span>), during fiscal years 2011 to 2015, <strong>17% to 22% of software projects failed <\/strong>of the 25,000+ software projects in their database, with the likelihood of project failure <strong>increasing drastically with project size<\/strong>. Sometimes, you can save a project if you have the right methods.<\/li>\n<\/ul>\n<p>Since this book is focused on Agile, the remainder of the chapter summarizes the Agile software process model, one Agile framework (Scrum), and a few Agile methods.<\/p>\n<h1>1.2 Agile, Scrum, and Agile Methods<\/h1>\n<h2>1.2.1 Agile<\/h2>\n<p>The Agile philosophy is summed up by the Agile <em>Manifesto for Software Development<\/em> (Beck et al., <span class=\"citation\">2001<\/span>):<\/p>\n<div class=\"textbox\">\n<p>We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:<\/p>\n<ul>\n<li><strong>Individuals<\/strong> and <strong>interactions<\/strong> over processes and tools.<\/li>\n<li><strong>Working software<\/strong> over comprehensive documentation.<\/li>\n<li><strong>Customer collaboration<\/strong> over contract negotiation.<\/li>\n<li><strong>Responding to change<\/strong> over following a plan.<\/li>\n<\/ul>\n<p>That is, while there is value in the items on the right, we value the items on the left more.<\/p>\n<\/div>\n<p>Why does this book have a whole chapter about Agile and not one about Waterfall or any other software process model? Because most organizations use Agile for software or IT projects.<\/p>\n<p>For example, an HP survey of 601 respondents (Hewlett Packard Enterprise, <span class=\"citation\">2017<\/span>) found the following distribution of what organizations use as their primary software process model:<\/p>\n<ul>\n<li>51%: Leaning toward Agile<\/li>\n<li>24%: Hybrid<\/li>\n<li>16%: Pure Agile<\/li>\n<li>7%: Leaning toward Waterfall<\/li>\n<li>2%: Pure Waterfall<\/li>\n<\/ul>\n<p>Why do organizations choose Agile? According to HP, out of 403 organizations that have primarily adopted Agile, the following percentage of respondents agreed with the following statements about Agile development:<\/p>\n<ul>\n<li>54%: <strong>Enhances collaboration<\/strong> between teams that don\u2019t usually work together.<\/li>\n<li>52%: <strong>Increases<\/strong> the level of <strong>software quality<\/strong> in organizations.<\/li>\n<li>49%: Results in increased <strong>customer satisfaction.<\/strong><\/li>\n<li>43%: Shortens<strong> time to market<\/strong>.<\/li>\n<li>42%: <strong>Reduces cost<\/strong> of development.<\/li>\n<\/ul>\n<h2>1.2.2 Scrum<\/h2>\n<p>Scrum is a well-known framework for software project management. It aligns with the Agile philosophy. For example, the Scrum Guide (the ever-evolving manual for Scrum; Schwaber &amp; Sutherland, <span class=\"citation\">2020<\/span>) says that to reflect the \u201cresponding to change\u201d value, a software project should be broken into development Sprints that are usually two to four weeks long. Each Sprint has a Sprint Plan. Sprint Plans can be defined shortly before the Sprint; Teams (and their customers) might only know what is happening with the project\u2019s development for a couple weeks at a time.<\/p>\n<p>Scrum Teams fit their own methods into the Scrum framework, which the current version of the Scrum Guide divides into three categories: the <strong>team<\/strong>, the <strong>events<\/strong>, and the <strong>artifacts<\/strong>. To give you a quick, convenient introduction to Scrum, each element of the framework is listed below, by category.<\/p>\n<p><strong>The Team<\/strong>. The Scrum Team \u201cconsists of one <strong>Scrum Master<\/strong>, one <strong>Product Owner<\/strong>, and <strong>Developers<\/strong>.\u201d<\/p>\n<ul>\n<li><strong>Scrum Master<\/strong>: \u201caccountable for <strong>establishing Scrum<\/strong> as defined in the Scrum Guide.\u201d<\/li>\n<li><strong>Product Owner<\/strong>: \u201caccountable for <strong>maximizing the value of the product<\/strong> resulting from the work of the Scrum Team.\u201d<\/li>\n<li><strong>Developers<\/strong>: \u201cpeople in the Scrum Team that are <strong>committed to creating<\/strong> any aspect of a usable Increment each Sprint.\u201d<\/li>\n<\/ul>\n<p>The Scrum Master\u2019s focus is <strong>process<\/strong>, the Product Owner\u2019s focus is the <strong>product<\/strong> (software), and the Developers\u2019 focus is <strong>creating<\/strong> a product while following Scrum processes.<\/p>\n<p><strong>The Events<\/strong>. There are five Scrum events:<\/p>\n<ul>\n<li><strong>The Sprint<\/strong>: <strong>fixed-length<\/strong> <strong>development periods<\/strong> of \u201c<strong>one month or less<\/strong> . . . A new Sprint starts immediately after the conclusion of the previous Sprint.\u201d<\/li>\n<li><strong>Sprint Planning<\/strong>: \u201cinitiates the Sprint by <strong>laying out the work<\/strong> to be performed.\u201d<\/li>\n<li><strong>Daily Scrum<\/strong>: \u201ca <strong>15-minute<\/strong> event for the Developers of the Scrum Team . . . focuses on progress toward the Sprint Goal and produces an actionable plan for the next day of work.\u201d<\/li>\n<li><strong>Sprint Review<\/strong>: \u201cto <strong>inspect the outcome of the Sprint<\/strong> and determine future adaptations. The <strong>Scrum Team<\/strong> presents the results of their work to key <strong>stakeholders . . .<\/strong>\u201d<\/li>\n<li><strong>Sprint Retrospective<\/strong>: \u201cto <strong>plan<\/strong> ways to increase quality and effectiveness . . . <strong>Scrum Team<\/strong> inspects how the last Sprint went . . .\u201d<\/li>\n<\/ul>\n<p>A Sprint is a development period that occurs in a series of Sprints, which are each laid out during Sprint Planning. Each day, the Developers have a 15-minute meeting about planning the next workday. Sprints end with a Sprint Review (team and stakeholders) and a Sprint Retrospective (team only).<\/p>\n<p><strong>The Artifacts<\/strong>. There are three Scrum artifacts:<\/p>\n<ul>\n<li><strong>Product Backlog<\/strong>: \u201can emergent, <strong>ordered list of what is needed<\/strong> to improve the product.\u201d<\/li>\n<li><strong>Sprint Backlog<\/strong>: \u201ccomposed of the <strong>Sprint Goal<\/strong> (why), the set of <strong>Product Backlog items<\/strong> <strong>selected<\/strong> for the Sprint (what), as well as an <strong>actionable plan<\/strong> for delivering the Increment (how).\u201d<\/li>\n<li><strong>Increment<\/strong>: \u201ca concrete <strong>stepping stone toward the Product Goal<\/strong>.\u201d<\/li>\n<\/ul>\n<p>The Product Backlog contains a rough list of tasks the Scrum Team is planning to do some time, but the tasks haven\u2019t yet been scheduled and may not be defined in detail. The Sprint Backlog contains tasks the team has decided to work on and has added details about completing the tasks. An Increment is an achievement toward creating the product (e.g., finishing a feature implementation).<\/p>\n<p>The <em>Scrum Guide<\/em> (Schwaber &amp; Sutherland, <span class=\"citation\">2020<\/span>) describes the Scrum framework elements in more detail and defines some of the terms that were unexplained here (e.g., Sprint Goal).<\/p>\n<h2>1.2.3 Agile Methods<\/h2>\n<p>There are several notable Agile methods that can be used within Scrum (or other frameworks, or other software process models). A few of them:<\/p>\n<ul>\n<li><strong>Scrum board<\/strong>: A way to organize and visualize tasks or work as cards on a board. The board has columns for different categories, and each card is placed within a column. A Scrum board could be a physical bulletin board with sticky notes or index cards. It is also a common feature of task management software.<\/li>\n<li><strong>Spike<\/strong>: A quick and to-the-point investigation for gathering information to help the team answer a question or choose a development path.<\/li>\n<li><strong>User story<\/strong>: A short description of a software feature from the perspective of fulfilling a user need (e.g., using this format: As a &lt;role&gt; I can &lt;capability&gt;, so that &lt;receive benefit&gt;). Tasks, priorities, time\/cost estimates, and acceptance criteria may be associated with a user story.<\/li>\n<\/ul>\n<h1>1.3 Summary<\/h1>\n<p>\u201cAgile\u201d has associated values but no concrete meaning: it\u2019s a philosophy, and there\u2019s not just one way to follow it. Agile frameworks such as Scrum give more concrete guidance on software development and project management. Scrum is defined by the current version of the <em>Scrum Guide<\/em> (Schwaber &amp; Sutherland, <span class=\"citation\">2020<\/span>), which changes frequently.<\/p>\n<h1>References<\/h1>\n<p class=\"hanging-indent\">Beck, K., Beedle, M., van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., Grenning, J., Highsmith, J., Hunt, A., Jeffries, R., Kern, J., Marick, B., Martin, R. C., Mellor, S., Schwaber, K., Sutherland, J., &amp; Thomas, D. (2001). <em>Manifesto for Agile software development<\/em>. <a href=\"https:\/\/agilemanifesto.org\/\">https:\/\/agilemanifesto.org\/<\/a><\/p>\n<p class=\"hanging-indent\">Beck, K., &amp; Andres, C. (2004). <em>Extreme programming explained: Embrace change<\/em> (2nd ed.). Addison-Wesley.<\/p>\n<p class=\"hanging-indent\">Hewlett Packard Enterprise (2017). <em>Agile is the new normal: Adopting Agile project management<\/em>. <a href=\"https:\/\/softwaretestinggenius.com\/docs\/4aa5-7619.pdf\">https:\/\/softwaretestinggenius.com\/docs\/4aa5-7619.pdf<\/a><\/p>\n<p class=\"hanging-indent\">Royce, W. W. (1970). Managing the development of large software systems. <em>Proceedings of IEEE WESCON, 26<\/em>, 1-9.<\/p>\n<p class=\"hanging-indent\">Schwaber, K., &amp; Sutherland, J. (2020, November). <em>The 2020 scrum guide<\/em>. <a href=\"https:\/\/scrumguides.org\/scrum-guide.html\">https:\/\/scrumguides.org\/scrum-guide.html<\/a><\/p>\n<p class=\"hanging-indent\">Standish Group International, Inc. (2015). <em>CHAOS report 2015<\/em>. <a href=\"https:\/\/standishgroup.com\/sample_research_files\/CHAOSReport2015-Final.pdf\">https:\/\/standishgroup.com\/sample_research_files\/CHAOSReport2015-Final.pdf<\/a><\/p>\n<p class=\"hanging-indent\">Wells, D. (2013, October 13). <em>Extreme programming: A gentle introduction.<\/em> <a href=\"http:\/\/www.extremeprogramming.org\/\">http:\/\/www.extremeprogramming.org\/<\/a><\/p>\n<div class=\"glossary\"><span class=\"screen-reader-text\" id=\"definition\">definition<\/span><template id=\"term_23_788\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_788\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_23_793\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_793\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_23_790\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_790\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_23_791\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_791\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_23_794\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_794\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_23_795\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_795\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_23_792\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_792\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_23_332\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_332\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_23_338\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_338\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_23_335\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_335\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_23_340\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_340\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_23_337\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_337\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_23_339\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_339\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_23_336\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_336\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_23_1053\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_23_1053\"><div tabindex=\"-1\"><\/div><button><span aria-hidden=\"true\">&times;<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><\/div>","protected":false},"author":1,"menu_order":1,"template":"","meta":{"pb_show_title":"","pb_short_title":"Agile","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[48],"contributor":[],"license":[],"class_list":["post-23","chapter","type-chapter","status-publish","hentry","chapter-type-standard"],"part":19,"_links":{"self":[{"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/pressbooks\/v2\/chapters\/23","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":1,"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/pressbooks\/v2\/chapters\/23\/revisions"}],"predecessor-version":[{"id":24,"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/pressbooks\/v2\/chapters\/23\/revisions\/24"}],"part":[{"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/pressbooks\/v2\/parts\/19"}],"metadata":[{"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/pressbooks\/v2\/chapters\/23\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/wp\/v2\/media?parent=23"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/pressbooks\/v2\/chapter-type?post=23"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/wp\/v2\/contributor?post=23"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/setextbook\/wp-json\/wp\/v2\/license?post=23"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}