AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.

Slides:



Advertisements
Similar presentations
Applying Agile Methodologies to Traditional Publishing Kristen McLean Bookigee, Inc. February 12 th, 2011.
Advertisements

Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
E X treme Programming & Agile Modeling Copyright © 2003 Patrick McDermott UC Berkeley Extension
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
3 Traditional Development Methods Of (SDLC) -Prototype -Waterfall -Agile Group9 Q2 Heng shujia 0823.
Agile Architecture Prabhu Venkatesan for COMP-684.
Agile development By Sam Chamberlain. First a bit of history..
Anyone interested in this approach ? Over the past couple of years, I have developed PiVoT software to support the Agile development process. It emphasises.
Project Management – An Overview Project as a metaphor – a way to approach a series of activities Contexts – construction managementt, IT development,
AGILE SOFTWARE DEVELOPMENT AYSE GUL YAMAN. Outline Traditional approach Agile Software Development Agile Values Agile Principles Limitations of Agile.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Agile Methods.
Agile Software Development
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
An Agile View of Process
Software SYSTEMS DEVELOPMENT
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
Rally: One Writer’s Perspective. Background 28 years in technical communications including Symantec, Autodesk, and Cisco. Participated in Rally-based.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
1 Agile Methodology & Programming Ric Holt July 2009.
Software Engineering Modern Approaches
Agile Programming Principles.
Developed by Reneta Barneva, SUNY Fredonia Agile Development.
Chapter 4 Agile Development
Agile Methods. Agile Process/Method lightweight processes/methods that can be used to manage and control software and product development using iterative,
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
Extreme Programming Daniel Baranowski 3/29/06. What is Extreme Programming? An agile development methodology Created by Kent Beck in the mid 1990’s A.
Project Workflow. How do you do it? -Discussion-
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
CS3100 Software Project Management Agile Approaches.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
IS3320 Developing and Using Management Information Systems Lecture 20: Project Management Rob Gleasure
#AgileEd. Using Agile in the Classroom Cindy Royal, Associate Professor Texas State University slideshare.net/cindyroyal #AgileEd.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Agile Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
- Discussion of Chapter 1 in Martin and Martin.  We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Steve Lundquist, PMP, M.Sc..  As a PMP certified program manager, there are numerous tools, processes, methodologies, and tricks that are available to.
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
© University of Liverpool
Chapter 5 Agile Development Moonzoo Kim KAIST
Agile Methods SENG 301.
Agile Project Management and the yin & yang of
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Rapid software development
How to Successfully Implement an Agile Project
The Agile Manifesto is based on 12 principles
Agile and XP Development
Agile and XP Development
Chapter 3 – Agile Software Development
Adjective: Able to move quickly and easily. Principles and Values
Chapter 3: Agile Software Processes
The Manifesto for Agile Software Development
Projects, Assignments, and other Assessments
Agile software development
Agile Development.
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1

AGILE Suggested in 1999/2000 by Kent Beck Agile manifesto  2001 Nothing new Agile manifesto  Individuals and interactions over processes and tools  Working software over comprehensive documentation  Customer collaboration over contract negotiation  Responding to change over following a plan © University of LiverpoolCOMP319slide 2

Agile 12 principles (1-6) Customer satisfaction by rapid delivery of useful software Welcome changing requirements, even late in development Working software is delivered frequently (weeks rather than months) Working software is the principal measure of progress Sustainable development, able to maintain a constant pace © University of LiverpoolCOMP319slide 3

Agile 12 principles (7-12) Face-to-face conversation is the best form of communication (co-location) Projects are built around motivated individuals, who should be trusted Continuous attention to technical excellence and good design Simplicity Self-organizing teams Regular adaptation to changing circumstances © University of LiverpoolCOMP319slide 4

Agile reading (For:) –Beck, K. (1999) Embracing change with extreme programming”, IEEE Computer, 32(1), –Beck, K. (2000) Extreme Programming Explained, Addison-Wesley. –Cockburn, A. (2001) Agile Software Development, Addison-Wesley. –Highsmith, J.A. (2000) Adaptive Software Development: A Collaborative Approch to Managing Complex Systems, Dorset House. –Palmer, S.R. & Felsing, J.M. (2002) A practical guide to feature-driven development, Prentice-Hall. (Critical or Against:) –Stephens, M. & Rosenberg, D. (2003) Extreme programming refactored. Apress. –Demarco, & Boehm (2003) The agile methods fray. IEEE Computer, 35(6), © University of LiverpoolCOMP319slide 5

Evidence for Agile approach © University of LiverpoolCOMP319slide 6

Extreme Programming (XP) Requirements are expressed as ‘user stories’ Programmers work in pairs Tests are developed before code is written All test must be successfully executed New code is then integrated and a new system release is built New release becomes working system © University of LiverpoolCOMP319slide 7

User stories Short descriptions of program functionality which allows the user to “do something” User stories are meant to be  Independent  Negotiable  Valuable  Estimable  Small  Testable © University of LiverpoolCOMP319slide 8

Story points Estimate of size of user story in development time Relative estimation time  For a given team  Using a particular programming environment  Can be estimated using planning poker approach Useful for whole project rather than 1 story © University of LiverpoolCOMP319slide 9

XP user story example “As a user closing the application, I want to be prompted to save anything that has changed since the last save so that I can preserve useful work and discard erroneous work.” © University of LiverpoolCOMP319slide 10

User stories XP criticisms They capture only functional requirements They are too vague for a basis of contract (perhaps only suitable for T&M project) They are only suitable for highly experienced developers Size estimation ignores non functional requirements © University of LiverpoolCOMP319slide 11

XP process Planning  User stories written (customer and developers)  User stories estimated (developers)  User stories prioritized  Project plan - When will features be delivered - How often will project be iterated © University of LiverpoolCOMP319slide 12

XP Development phase Software is released on a regular schedule (weekly, fortnightly) Unit tests Developed by development team Acceptance tests Specified by customer Can be script (user input, acceptable output) Ideally also automated © University of LiverpoolCOMP319slide 13

Problems with Agile Contract issues and costs Code quality and design Managing large projects Does it work? © University of LiverpoolCOMP319slide 14

XP criticisms Feature creep High risk (time or cost overrun) No upfront design  Can be a big issue with database design  Can lead to design contradictions Constant re-factoring  Increased overhead  Can break existing code On site customer  See point 1… © University of LiverpoolCOMP319slide 15

XP criticisms Less documentation  High communications overhead  More assumptions Simplicity impact (object patterns)  Re-use  Flexibility © University of LiverpoolCOMP319slide 16

Pair programming Two programmers Driver  Writes code Observer  Reviews code/makes comments  Ideas for code improvement Collective code ownership  Moving code, reduces risk © University of LiverpoolCOMP319slide 17

Mentor pair programming Lead programmer (mentor)  Solves a problem in the company’s problem domain Trainee programmer learns  Company practises, e.g. coding standards  Company API  Issues to do with the problem domain © University of LiverpoolCOMP319slide 18

Pair programming research University of Utah  Williams et al  15% increase in time to code  15% decrease in bugs Lui 2006  Novices gain more than experts  Complex problems helped more than simple problems © University of LiverpoolCOMP319slide 19

Pair programming criticism Problem with matching skills  Low skill + low skill  Low skill + high skill  High skill + high skill No substitute for code review  Timing Personal issues  Eating habits  Phone calls  Ego © University of LiverpoolCOMP319slide 20