Agile Software Development

Slides:



Advertisements
Similar presentations
Keith McMillan Principal, Adept Technologies Copyright (C) 2008, Adept Technologies llc.
Advertisements

Colin Weaver The Eleven Essential Behaviours of Successful Agile Project Teams.
E X treme Programming & Agile Modeling Copyright © 2003 Patrick McDermott UC Berkeley Extension
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Agile Architecture? Paul Lund 24 th Nov Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it.
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 Principles Suradet Jitprapaikulsarn 1. What is Agility? Effective (rapid and adaptive) response to change Effective communication among all stakeholders.
The Agile Alliance By Mark Rucker. The Agile Alliance What is the Agile Alliance? History of the Agile Alliance What is the Agile Alliance today? The.
Does it work with Data Warehouses?. “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we.
An Agile View of Process
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
Agile Development Methods: Philosophy and Practice
1 Agile Methodology & Programming Ric Holt July 2009.
Software Engineering Modern Approaches
Agile Programming Principles.
The Agile Primer July 2008 © ThoughtWorks 2008.
Agile Web Development C. Daniel Chase University of Colorado at Boulder.
Developed by Reneta Barneva, SUNY Fredonia Agile Development.
Chapter 4 Agile Development
"The thinking it took to get us into this mess is not the same thinking that is going to get us out of it."
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.
Chapter 5 애자일 개발 Agile Development
CS1: Classic Software Life Cycle “Waterfall” method: 1.Requirements/Analysis Determine the problem to be solved – client-centered 2.Specification.
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
AGILE COTS Václav Pergl We are uncovering better ways of developing software by doing it and helping others do it. Through this work.
1 11/21/2015 ã 2007, Spencer Rugaber Agile Manifesto February, 2001 XP, SCRUM, DSDM, Adaptive Software Development,
Why (or When) Agile Fails Creating high performance software delivery teams.
Jeff Briggs Senior Consultant Capstone Consulting.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
- 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.
Chapter 3 Agile Development
Agile Introduction Emerson Murphy-Hill. Agile Manifesto/Alliance XP, SCRUM, DSDM, Adaptive Software Development, Crystal, FDD February 2001 (Snowbird,
By: Isuru Abeysekera AGILE DEVELOPMENT. WHAT IS AGILE DEVELOPMENT? Broad term used to describe several methods for a development process Introduced in.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
By Manish Shrotriya CSE MS 4 Point Agile Manifesto 1.Individuals and interactions over processes and tools 2.Working software over comprehensive.
Baby Steps to Agility How to Grow Into Agile. A little about me A little about Agile Growing into Agile Questions Goals.
Introduction to Software Engineering
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Forget about Agile for a second!
Agile Project Management and the yin & yang of
Manifesto for Agile Software Development
The low hanging fruit is gone!
Introduction to Agile Software Development
Principles for Agile Development
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Agile MDA Stephen J. Mellor
The Current Conversation in Agile Software Development Aug-2002
Teaching Agile Methods CSEE&T 2017, Savannah, Georgia
Agile Development Methods: Philosophy and Practice
Agile Development Methods: Philosophy and Practice
Introduction to Software Engineering
Agile Development Methods: Philosophy and Practice
Agile Software Development Paradigms
Rosa María Torres de Paz
Agile Development Agile Development Damian Gordon Damian Gordon.
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 Development.
Agile Development Methods: Philosophy and Practice
Agile Development Methods: Philosophy and Practice
Presentation transcript:

Agile Software Development Agile Characterized by quickness, lightness, and ease of movement; nimble.

Manifesto Individuals and interactions over processes and tools We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas

Individuals and interactions over processes and tools Individuals are the biggest asset Individuals are creative and need space Team work and collaboration are more important than ‘star’ player Tools can be useful to a point Grow into sophisticated tools, do not start with them

Working software over comprehensive documentation Software itself is the documentation Documentation tends to diverge Documentation needs to be crisp and short, verbose comments pollute the code Martin’s First Law of documentation Produce no document unless its need is immediate and significant

Customer collaboration over contract negotiation Customers are the members of your team Your manager is your customer Understand what they want, deliver what they want Make customers part of the process Rely on customer feedback

Responding to change over following a plan Be ready for change, embrace the change Pride yourself on being adaptive Do not be afraid to change things, when you changing something you own it, when you do not it owns you Evaluate the change in the current context Ensure progress

Principles of Agile Development Our highest priority is to satisfy the customer through early and continuous delivery of valuable software

Principles of Agile Development Welcome changing requirements even late in the development. Agile processes harness change for the customer advantage.

Principles of Agile Development Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to a shorter time scale.

Principles of Agile Development Business people and developers must work together daily through the project.

Principles of Agile Development Build projects around motivated individuals. Give them environment and support that they need, and trust them to get the job done.

Principles of Agile Development The most effective method of conveying information to and within development team is a face to face conversation.

Principles of Agile Development Working software is a primary measure of progress.

Principles of Agile Development Continuous attention to technical excellence and good design enhances agility.

Principles of Agile Development Simplicity – the art of maximizing the amount of work not done – is essential.

Principles of Agile Development The best architectures, requirements and designs emerge from self-organizing teams.

Extreme Programming Pioneered by Kent Beck Somewhat of a misnomer, better called Adaptive programming Agile software methodology centered around User stories, short deliverables, Testing, Refactoring and pair programming.

Practices of Extreme Programming: User Stories A user story is 1-2 sentences on an index card. For example: Our web site will need to have a login screen that will validate customers. The car needs to have adjustable seats User story is a planning tool used by the customer to convey the requirements.

Practices of Extreme Programming: Short Cycles XP project delivers every 2 weeks Each iteration addresses specific need of the stakeholders (User stories) User stories in the plan are chosen by the customer according to priority Short term releases (2 weeks) are called iterations, long term releases (3 months) are called production releases.

Practices of Extreme Programming: Acceptance Testing The test is written before or in conjunction with the implementation of the story Tests are written in the scripting language and can be ran automatically and repeatedly. Once acceptance test is passed is never allowed to fail in the future. So once feature is implemented it should never be broken.

Practices of Extreme Programming: Pair Programming The code is written by pair of programmers working together They both discuss the design and the code, both are engaged in act of writing software. One of them types the code the other one watches for errors and improvements. The roles change frequently and people rotate to different pairs Collective ownership of the code is implied. Knowledge spreads quickly, junior programmers learn faster.

Practices of Extreme Programming: Test-Driven Development First write the test, then write the code Leads to smaller cleaner code If you can not test it you can not be responsible for it The code must always pass all the tests. If the test fails you need to fix the code. Programmers switch between writing tests and code frequently. Testing facilitates refactoring

Practices of Extreme Programming: Collective Ownership No programmer is responsible for any particular module, all code is shared. Reduces risk for companies Facilitates faster individual growth

Practices of Extreme Programming: Continuous Integration Hourly check-ins If something broke – fix it The checked in code must pass all unit tests. Daily build and test

Practices of Extreme Programming: Sustainable Pace Software development is a marathon XP teams do not work overtime Must be fresh, alert and ready to go

Practices of Extreme Programming: Open Workspace Teams work together in the open room Pairs can overhear nearby conversations and decide to switch around and help others. Open environment leads to greater productivity and more personal software development

Practices of Extreme Programming: Simple Design The designs are as simple as possible Sufficient to address the needs of User stories Do not worry about the stories to come Infrastructure emerges as oppose to being specifically created. Simplest thing that can work You think you need it but you do not Write it once and only one

Practices of Extreme Programming: Refactoring Always change the code to make it simpler Always merge code to ensure reuse Do not let code degrade, refactor continuously Run Unit tests to ensure that you did not break anything

Practices of Extreme Programming: Metaphor Always keep the big picture in mind Always keep the structure in mind Use natural analogies to understand and explain to others your design and code

User Stories Short Cycles Acceptance Testing Pair Programming Collective Ownership Test-Driven Development Continuous Integration Sustainable Pace Open Workspace Simple Design Refactoring Metaphor