Document Details

Polytechnic University of the Philippines

Tags

agile software development software development methodologies agile project management software engineering

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.

Use Quizgecko on...
Browser
Browser