Agile Process Models PDF
Document Details
Polytechnic University of the Philippines
Tags
Summary
This document is a lecture or presentation on Agile methodology and demonstrates various concepts, methodologies, and tools used in Agile software development. It covers different Agile Models/Methods such as XP (Extreme Programming), ASD (Adaptive Software Development), DSDM (Dynamic Systems Development Method), Kanban, and Scrum.
Full Transcript
Review of Lesson 2B PrescriptiveSDLC models perform the 5 generic activities Waterfall model suggests a linear progression Incremental process models produce software as a series of increment releases Evolutionary models are designed to accommodate change and produce incremental work...
Review of Lesson 2B PrescriptiveSDLC models perform the 5 generic activities Waterfall model suggests a linear progression Incremental process models produce software as a series of increment releases Evolutionary models are designed to accommodate change and produce incremental work products quickly Component-based model emphasizes component reuse and assembly The Unified Process Models is a framework for UML methods and tools Lesson 2C Agile Process Models “Agility” is … Effective (rapid and adaptive) response to change Effective communication among all stakeholders Drawing the customer onto the team Organizing a team so that it is in control of the work performed Yielding … Rapid, incremental delivery of software Agile Methods Agile methods were developed for use by small programming teams who could work together in the same room and communicate informally. Agile methods have therefore been mostly used for the development of small and medium-sized systems Agile Process A plan-driven software process can support incremental development and delivery. It is perfectly feasible to allocate requirements and plan the design and development phase as a series of increments. An agile process is not inevitably code-focused and it may produce some design documentation. Agile Modeling Originally proposed by Scott Ambler Suggests a set of agile modeling principles Model with a purpose Use multiple models Travel light Content is more important than representation Know the models and the tools you use to create them Adapt locally Agile Models Is driven by customer descriptions of what is required (stories, or scenarios) Recognizes that plans are short-lived Develops software iteratively with a heavy emphasis on construction activities Delivers multiple software increments Adapts as changes occur Agile Models/ Methods include XP (Extreme Programming) Adaptive Software Development (ASD) Dynamic Systems Development Method (DSDM) Kanban Scrum XP (Extreme Programming) 1 The most widely used agile process, originally proposed by Kent Beck XP Planning Begins with the creation of “user stories” Agile team assesses each story and assigns a cost Stories are grouped to form a deliverable increment A commitment is made on delivery date After the first increment “project velocity” is used to help define subsequent delivery dates for other increments XP (Extreme Programming) 2 XP Design Follows the KIS (Keep It Simple) principle Encourages the use of CRC (Class Responsibility Collaborator) cards For difficult design problems, suggests the creation of spike solutions—a design prototype Encourages refactoring—an iterative refinement of the internal program design Through methods Through inheritance Through delegation XP (Extreme Programming) 3 XP Coding Recommends the construction of a unit test for a story before coding commences Encourages pair programming XP Testing Allunit tests are executed daily Acceptance tests are defined by the customer and executed to assess customer visible functionality From Software Engineering: A Practitioner’s Approach, 6/e Adaptive Software Development Originally proposed by Jim Highsmith ASD — distinguishing features Mission-driven planning (uses customer mission statement) Component-based focus Uses time-boxing Explicit consideration of risks Emphasizes collaboration for requirements gathering Emphasizes learning throughout the process Focus groups Formal technical reviews Postmortems (self examination) From Software Engineering: A Practitioner’s Approach, 6/e Dynamic Systems Development Method Similar in most respects to XP and/or ASD Nine guiding principles Active user involvement is imperative. DSDM teams must be empowered to make decisions. The focus is on frequent delivery of products. Fitness for business purpose is the essential criterion for acceptance of deliverables. Iterative and incremental development is necessary to converge on an accurate business solution. All changes during development are reversible. Requirements are baselined at a high level Testing is integrated throughout the life-cycle. Kanban Originating from the Japanese language, the translation of the word ‘Kanban’ is “visual board or signboard” and is connected to the concept of “just in time”! Initially, the Kanban concept was introduced as a lean manufacturing system and slowly drove its way to agile software development teams. This method uses visual methods for developing and managing projects. Kanban Projects through Kanban are overseen with the help of the Kanban Board, which is divided into columns to depict the process flow of the software development. This helps in increasing visibility teams as the teams can see the progress through every stage of development and prepare for the upcoming tasks to deliver the product “just in time”! This method requires thorough interaction and transparency to enable the team members to be equipped with the right stage of the development at any time and have a cohesive flow of work at all times. Kanban board sample SCRUM One of the most popular agile methodology examples is the agile scrum development methodology, which is depicted by various cycles of development. Similar to Kanban, Scrum breaks down the development phases into stages or cycles called ‘sprints’. The development time for each sprint is maximized and dedicated, thereby managing only one sprint at a time. Scrum and agile methodologies focus on continuous deliverables, and thus this method lets designers adjust priorities to ensure that any incomplete or overdue sprints get more attention. Scrum Originally proposed by Schwaber and Beedle Scrum—distinguishing features Development work is partitioned into packets Testing and documentation are on-going as the product is constructed Work occurs in sprints and is derived from a backlog of existing requirements Meetings are very short and sometimes conducted without chairs demos are delivered to the customer with the time-box allocated Website Address: Use of Agile Tools https://trello.com/ Summary Agile SDLC Model is driven by customer descriptions of what is required (stories, or scenarios) XP (Extreme Programming) Adaptive Software Development (ASD) Dynamic Systems Development Method (DSDM) Kanban Scrum - End of Lesson 5 Any question Group Exercises 1. Create a Trello account for your group. 2. Start adding TO DO, DOING, DONE task card.