EXtreme Programming explained: embrace change by Kent Beck, Addison Wesley, September 1999.

Size: px
Start display at page:

Download "EXtreme Programming explained: embrace change by Kent Beck, Addison Wesley, September 1999."

Transcription

1 XP XP extreme programming (slides partially from Andrew Black, Ras Bodik, and Dan Klawitter s letures) EXtreme Programming explained: embrace change by Kent Beck, Addison Wesley, September What is XP? a light-weight methodology for small to medium sized teams developing software in the face of vague and rapidly changing requirements Why XP? traditional software development methodologies are too rigid and over-constraining, they do not work for small projects, Is XP a religion? 1 2 XP Why XP? XP in context Kent Beck has a Smalltalk background He is part of the Design Pattern community He has worked with Fowler on Refactoring XP and traditional Methodologies XP runs counter to almost all software engineering practice, XP is not a solution for all problems (mostly for small teams), XP is programmer friendly The Risks of Software Development Schedule slips the delivery date is always six months in the future Project canceled after many slips, project canned System goes sour after a couple of years of operation and some changes, bugs start to appear Defect rate so buggy that it is not used Business misunderstood software does not answer all the right questions Business changes the system answers the wrong (out of date) questions False feature rich lots of unused features Staff turnover where have all the good programmers gone? 3 4 1

2 Why XP? Why XP? XP to the rescue Schedule slips short release cycles to limit the scope of slips within release XP uses 1 to 4 wks customer-requested feature iterations within an iteration, 1-3 day tasks implement most important features first, to minimize the impact of slips Project canceled Customer involvement to choose the smallest possible release, to minimize potential bottlenecks and maximize software value. System goes sour create and maintain a comprehensive suite of tests run tests after every change Defect rate unit test (programmer defined) functional tests (user defined) XP to the rescue Business misunderstood customer is an integral part of the team specification continuously refined Business changes shorter release cycles imply less change during development unimplemented features can be replaced at no cost False feature rich only highest priority tasks are addressed Staff turnover religion 5 6 The XP premise The cost of change plays a key role in most software engineering methodologies The XP premise What if the cost of change did not rise exponentially? Cost of change Cost of change REQUIREMENTS ANALYSIS DESIGN IMPLEMENTATION TESTING PRODUCTION TIME 7 8 2

3 The XP premise The Basics How does the premise affect software development? XP relies on 12 principles that are used as guides during the development process. Instead of making big decisions early and little ones late, XP makes each decision quickly, backs them with tests, and is also prepared to modify designs. XP separates software development into 4 activities, these are roles a software engineer can play XP advocates 12 practices that describe how to approach the development process 9 10 The 12 XP principles The 12 XP principles 1. Rapid feedback 2. Assume simplicity 3. Incremental change 4. Embracing change 5. Quality work 6. Small initial investment 7. Concrete experiments 8. Open, honest communication 9. Accepted responsibility 10. Local adaptation 11. Travel light 12. Honest measurements 1. Rapid feedback generate feedback, interpret it and put experience in the system as frequently as possible business learns the benefits and shortcoming of the systems programmers lean how to best test, design, implement seconds/minutes instead of weeks/months 2. Assume simplicity do not design for reuse plan for today and trust your ability to add complexity in the future

4 The 12 XP principles The 12 XP principles 3. Incremental change designs change a little at a time plans change a little at a time teams change a little at a time 4. Embracing change best strategies preserve most options while solving the pressing problems 5. Quality of work quality is not a free variable: the only possible values are excellent and insanely excellent 6. Small initial investment tight budgets force programmers and customers to focus on essentials avoid comfort 7. Concrete experiments every abstract decision should be test the result of a design session should be a series of experiements The 12 XP principles The 4 XP activities 8. Open, honest communication deliver the bad news early 9. Accepted responsibility responsibilities should not be given, they should be accepted 10. Local adaptation there are no fixed rules 11. Travel light keep things small, maintain only the essential 11. Honest measurements strive for accurate measurement of productivity CODING TESTING LISTENING DESIGNING

5 Life Cycle The 12 XP practices Like iterative, but putting to extreme Short cycle (2 weeks): 1. Meet with client to elicit requirements User stories + acceptance tests 2. Planning game Break stories into tasks, estimate cost Client prioritizes stories to do first 3. Implementation Wit Write programmer tests t first Simplest possible design to pass the tests Occasionally refactor the code 4. Evaluate progress and reiterate from step The Planning Game quickly determine scope of next release 2. Small releases put a simple system in production quickly then release new version on a short cycle 3. Metaphor guide development with a simple shared story 4. Simple design system should be as simple as possible, complexity should be removed if at all possible 5. Testing continually write unit tests, customers write functional tests 6. Refactoring restructure the system without changing behavior 7. Pair programming g all code written with 2 programmer at 1 machine 8. Collective ownership anyone can change code anywhere anytime 9. Continuous integration integrate and build many times a day hour week work no more than 40h/wk as a rule 11.On-site customer include a real, live user on the team full time 12.Coding standards code in accord. to rules emphasizing communication 18 Planning Game Example User stories = lightweight use cases 2-3 sentences on a file card (4X6) that the customer cares about can be reasonably tested can be estimated & prioritized Users write stories Stories-> tasks Developers estimate them Users split, merge, & prioritize Plan overall release (loosely) and the next iteration Don t plan too far ahead Create account I can create named accounts List accounts I can get a list of all accounts Question: How is the list ordered? I can get an alphabetical list of all accounts Query account balance I can query account balance Delete account I can delete a named account Question: Even if the balance is not zero? I can delete a named account if the balance is not zero

6 Example Tasks License Enforcement When run for the first time, JeraWorks puts up a license dialog, and will not proceed until the user enters either: a valid non-time-limited (paid) license certificate or a valid time-limited (demo) license that has not yet expired. A valid license is stored so the user doesn't have to re-enter it on subsequent runs. License info is displayed on the splash screen. When a demo license expires, the license dialog re-appears the next time JeraWorks is run. Each story is broken into tasks To split the work and to improve cost estimates Story: customer-centered description Task: developer-centered description Example: Story: I can create named accounts Tasks: ask the user the name of the account check to see if the account already exists create an empty account Break down only as much as needed to estimate cost Tasks Small Releases Validate the breakdown of stories into tasks with the customer If a story has too many tasks: break it down Team assigns cost to tasks We care about relative cost of task/stories Use abstract units (as opposed to hours, days) Experience will tell us how much a unit is Developers can assign units by bidding: I can do this task in 2 units Make every release as small as possible Release makes sense as a whole Make simple designs, sufficient for the current release Small releases provide: rapid feedback sense of accomplishment reduced risk customer confidence adjustments to changing requirements

7 Metaphor Simple Design Guide the project with a single Metaphor e.g., the UI is a desktop Must represent the architecture makes it easier to discuss The customer must be comfortable with it The right design for software: Runs all the tests. Has no duplicated d logic (DRY principle) i States every intention important to the programmers. Has the fewest possible classes and methods Don t worry about having to change a design later CRC Cards What is a CRC Card? Class, Responsibilities, and Collaboration Cards A simple way to specify a design First introduced d by Kent Beck and Ward Cunningham at OOPSLA 89 Not specifically part of Extreme Programming but works well with the XP paradigm On the top of the card is the Class The list on the left are the Responsibilities The list on the right are the Collaborating classes A simple specification/design of a class, and what it does 27 7

8 How are they used? Documenting Your Design Create cards for the obvious classes Talk through a user story, describing how the classes interact with each other Move cards (exploring different designs) Add/Delete cards as needed You don t need to keep the cards, nor do you need to produce any extra design documents. Well written and well tested code is the documentation of the design. Why waste time writing and updating the documentation? Or why live with out-of-date documentation? Testing Test Driven Development XP tests everything that might possibly break, all the time The tests are the specification: An executable specification Two kinds of tests: Functional Tests Specified by the user; implemented by users, developers, and/or test team; automated; run at least daily; part of the specification Unit Tests Written by developers Written before and after coding Always run at 100% Support design, coding, refactoring, and quality. Write unit tests before implementing tasks Unit test: concentrate on one module Start by breaking acceptance tests into units Example of a test addaccount( checking ); if(balance( checking )!= 0) throw ; try { addaccount( checking ); } catch(duplicateaccount e) { };

9 Why Write Tests First Refactoring Testing-first clarifies the task at hand Forces you to think in concrete terms Helps identify and focus on corner cases Testing forces simplicity Your only goal (now) is to pass the test Fight premature optimization Tests act as useful documentation Exposes (completely) the programmer s intent Ensures that you think about testability first How will you know when you are done? In what order do you need to test components? What infrastructure you need to test? Refactor = to improve the structure of code without affecting its external behavior Done in small steps Supported by unit tests, simple design, and pair programming Seek once and only once Refactoring in pairs gives you more courage and confidence Pair Programming Collective Code Ownership Role of one partner uses the mouse and the keyboard thinks about the best way implementing the method Role of the other is the approach going to work think about test cases can it be done simpler Pairing is dynamic Pairing provides discipline Pairing spreads knowledge about the system Anybody can add to any portion of the code subject to current requirements subject to simple design Unit tests protect the system functionality Whoever find a problem, solves it Everybody is responsible for the whole system

10 Continuous Integration 40 Hour Week Integration of tested code every few hours (max. a day) All unit tests need to run successfully If a test fails the pair has to repair it If you can t repair it, throw away the code and start again If you can t do your work in 40 hours, then you have too much work 40-Hour weeks keeps you fresh to tackle problems It prevents making silly, hard to find mistakes late at night Frequent planning prevents you from having too much work Overtime is a symptom m of a serious problem On-Site Customer Writes functional tests Makes priority and scope decisions for the programmers Answers questions Does his or her own work If you cann t get a on-site customer Maybe the project is not important enough

11 Coding Standards Extreme Programming in Summary Complicated constructions are not allowed let s keep things simple Code looks uniform easier to read No need to reformat the code no curly brackets wars 41 What is Different About XP When to Use XP No specialized analysts, architects programmers, testers, and integrators every XP programmer participates i t in all of these critical activities every day. No complete up-front analysis and design start with a quick analysis of the system team continues to make analysis and design decisions throughout development. Use for: A dynamic project done in small teams (2-10 people) Projects with requirements prone to change Have a customer available Do not use when: Requirements are truly fixed Cost of late changes is very high Your customer is not available (e.g., space probe)

12 In Conclusion XP Programming example (by Dan s team) A lightweight development process that emphasizes active and ongoing customer involvement pay-as-you-go design test-before-you-implement This is a very primitive example of using XP programming methodology to revive a project. Project Structure Project: Customize an existing Labor Collection System. Primary User: Human resource Project Team: Programer1, Programer2, Senior Programmer, DBA, Project Manager. Project Manager owns: Project plan, project source code, project user requirements. Prog1 owns Part P1; Prog2 owns Part P2; Senior Part P3; DBA Database objects; User contact in team: project manager Original project structure diagram. Any communication among users and programmers goes through program manager. Code ownership: monopoly. P1, P2, P3 R and Data Prog1 P1 Program manager Pro 2 DBA P2 User Senior Pro. P3 R Problems encountered: In the absence of any member of team, work slows down or stops. Impossible to maintain other programmer s work; System testing and feedback takes long time; Programmers and users are in the dark about requirement interpretation and implementation; Each part of system is owned by a team member; Data 48 12

13 When one person is gone, it s difficult to back up the person s work. When more than one person left, the project is to die unless some critic changes are made to project structure. Three months into project, three people left in two months. Project looked like. P1, P2, P3 R and Data Prog1 P1 Pro 2 P2 User P3 R Implement XP with limited available human resources to revive the project: First work in pair and take over the ownership of code left by the senior programmer. Started to work on each others code in pair. Promote a code standard. Promote a collective ownership of project. Perform unit testing, integration testing, and user test frequently on each implementation. Users are consistently available to each programmer on feedback about changes, requirements implementations. User stories are used to describe requirements, and test the implementation. Data 50 New project diagram after following XP programming method. Direct communication among users and programmers. No middle man; Direct access to any resources of project. No middle barrier; Collective ownership of project. P1, P2, P3 R and Data Prog1 Pro 2 User Pro Lead 13

The problem. extreme Programming (XP) Conclusions Resources. Problems in software development. Practices Why XP works Benefits of XP

The problem. extreme Programming (XP) Conclusions Resources. Problems in software development. Practices Why XP works Benefits of XP Introduction to extreme Programming Contents The problem Problems in software development extreme Programming (XP) Values Practices Why XP works Benefits of XP Conclusions Resources Risks: Problems in

More information

SOFTWARE DEVELOPMENT. Process, Models, Methods, Diagrams Software Development Life Cyles. Part - V

SOFTWARE DEVELOPMENT. Process, Models, Methods, Diagrams Software Development Life Cyles. Part - V SOFTWARE DEVELOPMENT Process, Models, Methods, Diagrams Software Development Life Cyles Part - V Extreme Programming (XP) was conceived and developed by Kent Beck to address the specific needs of software

More information

Extreme Programming, an agile software development process

Extreme Programming, an agile software development process Extreme Programming, an agile software development process Paul Jackson School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models 1.Determine objectives Cumulative cost Progress

More information

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development Agile Software Development T-110.6130 Systems Engineering in Data Communications Software P, Aalto University Agile software development Structured and disciplined, fast-paced Iterative and Incremental

More information

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016 Introduction to Agile Life Cycles CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016 1 Goals Introduction to Agile Life Cycles The Agile Manifesto and Agile Principles Agile Life Cycles

More information

Extreme programming XP 5

Extreme programming XP 5 Extreme programming XP 5 XP is not XP is not XP is not XP is not XP is. a lightweight software development methodology for small to medium sized teams developing software in the face of t vague or rapidly

More information

XP is not hacking. extreme Programming. XP practices. Whole Team. When using XP you write as little documentation as possible.

XP is not hacking. extreme Programming. XP practices. Whole Team. When using XP you write as little documentation as possible. extreme Programming Introduced by Ward Cunningham, Kent Beck, and Ron Jeffries. XP is what it says, an extreme way of developing software. If a practice is good, then do it all the time. If a practice

More information

13. Team evolutionary developement

13. Team evolutionary developement 13. Team evolutionary developement Most of the software projects require a larger effort than a solo programmer can handle Programmers have to organize themselves into teams Agile teams Directed teams

More information

User-centered System Design. Agile

User-centered System Design. Agile User-centered System Design Agile Department of Information Technology Methods - what are they? Why do we have them? Business modeling Usability Design Requirements Analysis & design Implementation Test

More information

CS 5704: Software Engineering

CS 5704: Software Engineering CS 5704: Software Engineering Agile Methodologies Dr. Pardha S. Pyla 1 1 What is wrong with this? System requirements Software requirements Analysis Program design 1. Rigid/heavy weight process 2. Too

More information

Introduction to Agile/Extreme Programming

Introduction to Agile/Extreme Programming Introduction to Agile/Extreme Programming Matt Ganis, Senior Technical Staff Member (Certified Scrum Master) IBM Hawthorne, New York ganis@us.ibm.com August 2007 Session 8061 Current slides at: http://webpage.pace.edu/mganis

More information

Assistant Professor, Integral University, Lucknow, India. Quality Parameters. Correctness. Efficiency. Portability. Usability.

Assistant Professor, Integral University, Lucknow, India. Quality Parameters. Correctness. Efficiency. Portability. Usability. Extreme Programming: Aiming towards Quality Assurance Ayesha Saad Khan, Mohammad Suaib M.tech CSE (2 nd Year), Integral University, Lucknow, India Abstract- Agile methodologies are among the most popular

More information

Agile Manifesto & XP

Agile Manifesto & XP Agile Manifesto & XP Chapter 3.1-3.3 CMPT 276 Dr. B. Fraser Based on slides from Software Engineering 9 th ed, Sommerville. Slides 8 18-06-10 1 Topics 1) What is Agile trying to do? 2) How to choose plan-driven

More information

Tuesday, October 25. Announcements

Tuesday, October 25. Announcements Tuesday, October 25 Announcements Crowdsourcing the Midterm http://www.drsusansim.org/teaching/inf111/pligg Homework 5 Skip lab portion Use anything you want to draw the diagrams for the take home portion

More information

Extreme Programming (XP)

Extreme Programming (XP) Assignment D Draft paper Extreme Programming (XP) Course code: INFOME Course name: Method Engineering Faculty of Science, Department of Information and Computer Sciences, Utrecht University, Princetonplein

More information

Agile Software Development

Agile Software Development Agile Software Development Chapter 3 Agile Software Development in the textbook 3.1 Agile methods 3.2 Plan-driven and agile development 3.3 Extreme programming (XP) - A well known agile method 3.4 Agile

More information

Agile Development Processes. CSCE Lecture 3-08/31/2017

Agile Development Processes. CSCE Lecture 3-08/31/2017 Agile Development Processes CSCE 740 - Lecture 3-08/31/2017 Common Practice: Code & Fix Sit down, write out the code, and fix problems as they occur. No formal structure to development. What is wrong with

More information

Agile Software Construction. This Course. Course information. Course Contents. Daisy: Software Engineering Agile Methods

Agile Software Construction. This Course. Course information. Course Contents. Daisy: Software Engineering Agile Methods Agile Software Construction Beatrice Åkerblom beatrice@dsv.su.se This Course Course Contents Course information Software Engineering Agile Methods Daisy: ~ Schedule ~ Goals ~ Requirements ~ Important dates

More information

Scrum - Introduction. Petri Heiramo. Agile Coach, CST

Scrum - Introduction. Petri Heiramo. Agile Coach, CST Scrum - Introduction Petri Heiramo Agile Coach, CST Scrum Started in the Harvard BR. The relay race approach to product development may conflict with the goals of maximum speed and flexibility. Instead

More information

Foundations of Software Engineering. Process: Agile Practices Michael Hilton

Foundations of Software Engineering. Process: Agile Practices Michael Hilton Foundations of Software Engineering Process: Agile Practices Michael Hilton 1 Learning goals Define agile as both a set of iterative process practices and a business approach for aligning customer needs

More information

Processes and Life- Cycles. Kristian Sandahl

Processes and Life- Cycles. Kristian Sandahl Processes and Life- Cycles Kristian Sandahl 2 Maintenance Requirements Validate Requirements, Verify Specification Acceptance Test (Release testing) System Design (Architecture, High-level Design) Verify

More information

Extreme programming. Why XP?

Extreme programming. Why XP? Extreme programming Timo Tuunanen YOMI 2004 Why XP? In the early 1990s a man named Kent Beck was thinking about better ways to develop software. He had recently spent some time working with Ward Cunningham.

More information

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014 Introduction to Software Life Cycles and Agile CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014 1 Goals Present an introduction to the topic of software life cycles concepts and terminology

More information

Software Engineering Lecture 5 Agile Software Development

Software Engineering Lecture 5 Agile Software Development Software Engineering Lecture 5 Agile Software Development JJCAO Mostly based on the presentation of Software Engineering, 9ed Exercise Describe the main activities in the software design process and the

More information

Chapter 3 Agile Software Development

Chapter 3 Agile Software Development Chapter 3 Agile Software Development Chapter 3 Agile Software Development Slide 1 Topics covered Rapid software development Agile methods Plan-driven vs. agile development Extreme programming (XP) Agile

More information

Processes and Life- Cycles. Kristian Sandahl

Processes and Life- Cycles. Kristian Sandahl Processes and Life- Cycles Kristian Sandahl 2 Maintenance Requirements Validate Requirements, Verify Specification Acceptance Test (Release testing) System Design (Architecture, High-level Design) Verify

More information

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems. Chapter 3 Agile Software Development Lecture 1 Topics covered Agile g methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods Rapid software development

More information

Suitability of Extreme Programming and RUP Software Development Methodologies for SOA Applications

Suitability of Extreme Programming and RUP Software Development Methodologies for SOA Applications Suitability of Extreme Programming and RUP Software Development Methodologies for SOA Applications Guillermo A. Callahan 1 1 Seminar on Enterprise Information Systems : Service Oriented Architecture and

More information

Chapter 1. What is XP?

Chapter 1. What is XP? XP2e_book.fm Page 1 Wednesday, October 27, 2004 8:13 AM Chapter 1 What is XP? Extreme Programming (XP) is about social change. It is about letting go of habits and patterns that were adaptive in the past,

More information

Chapter 3 Software Process Model

Chapter 3 Software Process Model Usman Akram COMSATS Institute of information Technology lahore musmanakram@ciitlahore.edu.pk March 8, 2015 About software process model Outline 1 About software process model Build and Fix Model Why Models

More information

Introduction to Extreme Programming

Introduction to Extreme Programming Introduction to Extreme Programming Brian Button bbutton@objectmentor.com, Inc Overview Motivation Business Case Description Case Studies References 1-800-338-6716 2 My Typical Client Manager doesn t trust

More information

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development Because of rapidly changing business environments, businesses have to respond

More information

Foundations of software engineering

Foundations of software engineering Foundations of software engineering Agile and Extreme Dr. Julie Greensmith G51 Overview (Very) Briefly introduce the concepts of Agile Design and Extreme Programming Also briefly discuss some of the other

More information

Agile Practices in Regulated Railway Software Development

Agile Practices in Regulated Railway Software Development Agile Practices in Regulated Railway Software Development Henrik Jonsson System Development Department Etteplan Industry AB Västerås, Sweden henrik.jonsson@etteplan.com Stig Larsson and Sasikumar Punnekkat

More information

Agile project management in Extreme Programming projects. Carl Erickson Atomic Object LLC

Agile project management in Extreme Programming projects. Carl Erickson Atomic Object LLC Agile project management in Extreme Programming projects Carl Erickson Atomic Object LLC Professor life course planning team supervision evaluation research projects mentoring teaching grant writing This

More information

Lecture 8 Agile Software Development

Lecture 8 Agile Software Development Lecture 8 Agile Software Development Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved. Used with permission. Topics

More information

Agile Test Plan How to Construct an Agile Test Plan

Agile Test Plan How to Construct an Agile Test Plan Agile Test Plan How to Construct an Agile Test Plan XBOSoft White Paper How to Construct an Agile Test Plan www.xbosoft.com 2 Agile is changing not only the way we develop software but the way we work

More information

Agile Development Methods: Philosophy and Practice. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed

Agile Development Methods: Philosophy and Practice. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed Agile Development Methods: Philosophy and Practice CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed History of Agile Methods Particularly in 1990s, some developers reacted against traditional heavyweight

More information

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes Objectives Rapid software development To explain how an iterative, incremental development process leads to faster delivery of more useful software To discuss the essence of agile development methods To

More information

Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods.

Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods. Agile methods Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods. These methods: Focus on the code rather than the design

More information

Agile Methods. Background

Agile Methods. Background Agile Methods Agile Alliance http://www.agilealliance.com/home Background In 2001, a group of lightweight methodologies practioners met to discuss similarities and experiences They wrote the Manifesto

More information

Chapter 14: Iteration Planning. It is a capital mistake to theorize before one has data. Sherlock Holmes, Scandal in Bohemia

Chapter 14: Iteration Planning. It is a capital mistake to theorize before one has data. Sherlock Holmes, Scandal in Bohemia Chapter 14: Iteration Planning It is a capital mistake to theorize before one has data. Sherlock Holmes, Scandal in Bohemia Release Plan: High level view of what is to be built Iteration Plan: More focused

More information

Software Processes. With a focus on Agile/Scrum CPSC310 Software Engineering

Software Processes. With a focus on Agile/Scrum CPSC310 Software Engineering Software Processes With a focus on Agile/Scrum CPSC310 Software Engineering Learning Goals Why do software projects fail? Unrealistic project goals Inaccurate estimates of needed resources Unmanaged risks

More information

Software Engineering Part 2

Software Engineering Part 2 CS 0901341 Software Engineering Part 2 In this part, we look at 2.1 Software Process 2.2 Software Process Models 2.3 Tools and Techniques for Processing Modelling As we saw in the previous part, the concept

More information

Agile Requirements with User Stories. Overview

Agile Requirements with User Stories. Overview Agile Requirements with User Stories Part of the Intro to Agile Track Gerard Meszaros ClearStream Consulting gerard@clrstream.com IUS-1 Overview What s A User Story? Why Do Things Differently? How Do We

More information

Agile Software Development. Lecture 4: Let s Wrap up Agile Fundamentals

Agile Software Development. Lecture 4: Let s Wrap up Agile Fundamentals Agile Software Development Lecture 4: Let s Wrap up Agile Fundamentals Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Slides are a modified version of the slides by Prof. Kenneth M. Anderson Acknowledgment

More information

Non-object-oriented design methods. Software Requirements and Design CITS 4401 Lecture 15

Non-object-oriented design methods. Software Requirements and Design CITS 4401 Lecture 15 Non-object-oriented design methods Software Requirements and Design CITS 4401 Lecture 15 1 (reminder) Software Design is a creative process no cook book solutions goal driven we create a design for solving

More information

Learning Objectives. Agile Modeling and. Major Topics. Prototyping. Patched Up Prototype. Agile Modeling, but First. Prototyping

Learning Objectives. Agile Modeling and. Major Topics. Prototyping. Patched Up Prototype. Agile Modeling, but First. Prototyping Agile Modeling and Prototyping Systems Analysis and Design, 7e Kendall & Kendall 6 Learning Objectives Understand the roots of agile modeling in prototyping and the four main types of prototyping Be able

More information

1. The Case for Agile 2. The Scrum Process 3. Scaling Scrum

1. The Case for Agile 2. The Scrum Process 3. Scaling Scrum 1. The Case for Agile 2. The Scrum Process 3. Scaling Scrum Delivering late Delivering over budget Delivering the wrong thing Unstable in production Costly to maintain Smart people trying to do good work

More information

Chapter 3 Agile Software Development. Part 1b

Chapter 3 Agile Software Development. Part 1b Chapter 3 Agile Software Development Part 1b 1 Testing in XP Testing is central to XP and XP has developed an approach where the program is tested after every change has been made. XP testing features:

More information

Why We Need Architects (and Architecture) on Agile Projects

Why We Need Architects (and Architecture) on Agile Projects Why We Need Architects (and Architecture) on Agile Projects Rebecca Wirfs-Brock rebecca@wirfs-brock.com Twitter: @rebeccawb www.wirfs-brock.com 2015 Wirfs-Brock Associates Three Questions??? What is the

More information

An Overview of Software Process

An Overview of Software Process An Overview of Software Process Objectives To introduce the general phases of the software development life cycle (SDLC) To describe various generic software process models and discuss their pros and cons

More information

Software Process. Overview

Software Process. Overview Software Process Overview What is software process? Examples of process models Unified Process (UP) Agile software development N. Meng, B. Ryder 2 1 Software Process Definition [Pressman] a framework for

More information

Software Engineering G Session 12 Sub-Topic 1 Risk Management in Adaptive Software Engineering. Dr. Jean-Claude Franchitti

Software Engineering G Session 12 Sub-Topic 1 Risk Management in Adaptive Software Engineering. Dr. Jean-Claude Franchitti Software Engineering G22.2440-001 Session 12 Sub-Topic 1 Risk Management in Adaptive Software Engineering Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of

More information

! How work in building software is done: ! e.g., waterfall process. ! e.g., object-oriented development. ! e.g., requirements inspection process

! How work in building software is done: ! e.g., waterfall process. ! e.g., object-oriented development. ! e.g., requirements inspection process Software Process Process CMPUT 401 Module 04! How work in building software is done:! e.g., waterfall process! e.g., object-oriented development! e.g., requirements inspection process Department of Computing

More information

CS 4387/5387 SOFTWARE V&V LECTURE 6 TEST-DRIVEN DEVELOPMENT

CS 4387/5387 SOFTWARE V&V LECTURE 6 TEST-DRIVEN DEVELOPMENT 1 CS 4387/5387 SOFTWARE V&V LECTURE 6 TEST-DRIVEN DEVELOPMENT Agile Processes 2 Some have criticized highly-structured processes (such as those based on a CMM framework) as unresponsive to change during

More information

Chapter 14 Current trends in system development

Chapter 14 Current trends in system development Chapter 14 Current trends in system development Dr. Supakit Nootyaskool Faculty of Information Technology King Mongkut s Institute of Technology Ladkrabang Outline Trends in System Development Methodologies

More information

THE PURPOSE OF TESTING

THE PURPOSE OF TESTING Chapter 6 THE PURPOSE OF TESTING Context-Driven Overview of Quadrants Tests That Support the Team Tests That Critique the Product Quadrant Intro Purpose of Testing Managing Technical Debt Knowing When

More information

Process. CMPUT 401 Module 04. Department of Computing Science University of Alberta Ken Wong, 2008

Process. CMPUT 401 Module 04. Department of Computing Science University of Alberta Ken Wong, 2008 Process CMPUT 401 Module 04 Department of Computing Science University of Alberta Ken Wong, 2008 Software Process How work in building software is done: e.g., waterfall process e.g., object-oriented development

More information

Software Engineering & Project Management Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000)

Software Engineering & Project Management Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000) Software Engineering & Project Management Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000) armahmood786@yahoo.com alphasecure@gmail.com alphapeeler.sf.net/pubkeys/pkey.htm http://alphapeeler.sourceforge.net

More information

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management Introduction to Software Project Management CITS3220 Software Requirements & Project Management "A project gets a year late one day at a time." "Anything that can be changed will be changed until there

More information

Copyright Software Engineering Competence Center

Copyright Software Engineering Competence Center Copyright Software Engineering Competence Center 2012 1 Copyright Software Engineering Competence Center 2012 5 These are mapped categories to the waste categories of manufacturing. An excellent overview

More information

Scrum er ikke en religion

Scrum er ikke en religion Scrum er ikke en religion Jesper Boeg, Agile Coach jbo@trifork.com January 25, 2011 In general Trifork Software development Coaching Workshops, seminars and conferences Please let me know if: You have

More information

XP PROJECT MANAGEMENT

XP PROJECT MANAGEMENT University of Montana ScholarWorks at University of Montana Graduate Student Theses, Dissertations, & Professional Papers Graduate School 2007 XP PROJECT MANAGEMENT Craig William Macholz The University

More information

Software engineering Facts. CSC Compiler Construction Software Engineering Topics. What is software engineering? What is software?

Software engineering Facts. CSC Compiler Construction Software Engineering Topics. What is software engineering? What is software? Software engineering Facts CSC 4181 - Compiler Construction Software Engineering Topics Fact: The economies of ALL developed nations are dependent on software. Fact: More and more systems are software

More information

Success of Agile Environment in Complex Projects

Success of Agile Environment in Complex Projects Edith Cowan University Research Online Australian Information Warfare and Security Conference Conferences, Symposia and Campus Events 2010 Success of Agile Environment in Complex Projects Abbass Ghanbary

More information

04. Agile Development

04. Agile Development 04. Agile Development Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 Background of Agile Software Development Software development until late 90s

More information

AGILE SOLUTIONS. Agile Basics

AGILE SOLUTIONS. Agile Basics AGILE SOLUTIONS Agile Basics info@one80services.com one80services.com AGILE SOLUTIONS Agile Basics Table of Contents 2 Who We Are 3 What Is Agile? 4 Agile Values 5 Agile Principles 6 Agile Development

More information

Introduction. Failure. Why Projects Fail. Agile in an Hour

Introduction. Failure. Why Projects Fail. Agile in an Hour Agile in an Hour Joe Bergin & Fred Grossman Seidenberg School Computer Science and Information Systems Pace University Introduction Agile Software Development is a high discipline and very iterative development

More information

The Top 13 Organization Challenges of Agile Development and a Solution to Each

The Top 13 Organization Challenges of Agile Development and a Solution to Each The Top 13 Organization Challenges of Agile Development and a Solution to Each Executive Summary Agile methods often expose problems that were previously ignored or otherwise invisible, and the biggest

More information

CISC So*ware Quality Assurance

CISC So*ware Quality Assurance CISC 327 - So*ware Quality Assurance Lecture 5 Agile development extreme Programming CISC 327-2003- 2016 J.R. Cordy, S. Grant, J.S. Bradbury Agile Development A group of so*ware development methods Early

More information

Agile and Secure Can We Be Both? San Antonio AITP. August 15 th, 2007

Agile and Secure Can We Be Both? San Antonio AITP. August 15 th, 2007 Agile and Secure Can We Be Both? San Antonio AITP August 15 th, 2007 Agenda Background Evolution of traditional software development methodologies Benefits of Agile development Requirement for Secure development

More information

CS350 Lecture 2 Software Dev. Life Cycle. Doo-Hwan Bae

CS350 Lecture 2 Software Dev. Life Cycle. Doo-Hwan Bae CS350 Lecture 2 Software Dev. Life Cycle Doo-Hwan Bae bae@se.kaist.ac.kr Whose Drawings? Watts Humphrey, SE is Religion and Philosophy. Just Follow me! CS350 Software Engineering, SoC, KAIST 2 What is

More information

Are Agile Testers Different?

Are Agile Testers Different? Are Agile Testers Different? Agile Vancouver 2009 Lisa Crispin With Material from Janet Gregory 1 Introduction Me: Tester for ~ 14 years Programmer, tech support background Got involved with projects up

More information

CISC So*ware Quality Assurance

CISC So*ware Quality Assurance CISC 327 - So*ware Quality Assurance Lecture 5 Agile development extreme Programming CISC 327-2003- 2016 J.R. Cordy, S. Grant, J.S. Bradbury Agile Development A group of so*ware development methods Early

More information

Mike Vincent. mvasoftware.net

Mike Vincent. mvasoftware.net Scrum and ALM Coach Over 30 years as software developer and architect Marketing director, construction project manager and structural engineer previously Microsoft MVP - Visual Studio ALM Professional

More information

Build Agile Knowledge - Participate in a sprint!

Build Agile Knowledge - Participate in a sprint! Build Agile Knowledge - Participate in a sprint! Presenters: Almir Drugovic and Terri Spratt 1 [Review] About the Presenters Almir Drugovic (adrugovic@gmail.com; LinkedIn) has over fifteen years of professional

More information

Sections. ! Introduction. ! Development Activities. ! Dealing with Technical Debt. ! Bonus: How to become an Agile Architect

Sections. ! Introduction. ! Development Activities. ! Dealing with Technical Debt. ! Bonus: How to become an Agile Architect Me Sections! Introduction! Development Activities! Dealing with Technical Debt! Bonus: How to become an Agile Architect Agile! Lean! Value Stream! Discipline! Embrace Change Architecture! Everything that

More information

Software Engineering. M Umair.

Software Engineering. M Umair. Software Engineering M Umair www.m-umair.com Activity and Sprint An activity is a general term for any part of a project that takes place over time (also known as a task) Each step in the software development

More information

Introduction. Failure. Why Projects Fail. Agile in an Hour

Introduction. Failure. Why Projects Fail. Agile in an Hour Agile in an Hour Joe Bergin & Fred Grossman Seidenberg School Computer Science and Information Systems Pace University Introduction Agile Software Development is a high discipline and very iterative development

More information

Software Life Cycles and Configuration Management

Software Life Cycles and Configuration Management Software Configuration Lecture 11 Software Engineering TDDC88/TDDC93 autumn 2008 Department of Computer and Information Science Linköping University, Sweden Theory Lecture Plan 2 L1 - Course Introduction

More information

Lecture 29: Agile Design and Extreme Programming

Lecture 29: Agile Design and Extreme Programming 1 Lecture 29: Agile Design and Extreme Programming Kenneth M. Anderson Software Methods and Tools CSCI 4448/6448 - Spring Semester, 2005 2 Credit where Credit is Due The material for this lecture is based

More information

Sign up to mailing list Join Slack, teaching team is available. All links are on the course website Slides are uploaded there too

Sign up to mailing list Join Slack, teaching team is available. All links are on the course website Slides are uploaded there too Sign up to mailing list Join Slack, teaching team is available All links are on the course website Slides are uploaded there too Week 1 (Oct 16 Oct 20) Introduction lectures Week 2 (Oct 23 Oct 27) Work

More information

Agile Essentials Track: Business Services

Agile Essentials Track: Business Services Agile Essentials Track: Business Services Presenter: Mark Thomas Synopsis Are you a victim of building the wrong solutions slowly? If so, you re not alone, and considering an Agile approach may be the

More information

The Systems Development Lifecycle

The Systems Development Lifecycle Modelling and Systems Development Lecture 2 The Systems Development Lifecycle The four-phase model common to all system developments projects The project Major attributes of the Lifecycle Moves systematically

More information

Agile Quality Management

Agile Quality Management Agile Quality Management Panagiotis Sfetsos, PhD Assistant Professor, Department of Informatics, Alexander Technological Educational Institution E mail: sfetsos@it.teithe.gr Web Page: http://aetos.it.teithe.gr/~sfetsos/

More information

How to Use a Weird "Trade- In" Loophole to Bank $300 to $500 PER DAY

How to Use a Weird Trade- In Loophole to Bank $300 to $500 PER DAY How to Use a Weird "Trade- In" Loophole to Bank $300 to $500 PER DAY Presented by: Luke Sample Hosted by: John S. Rhodes Copyright 2016 WebWord, LLC. All Rights Reserved. This guide may not be reproduced

More information

Software Engineering Chap.3 - Agile Software Development

Software Engineering Chap.3 - Agile Software Development Software Engineering Chap.3 - Agile Software Development Simão Melo de Sousa RELEASE (UBI), LIACC (Porto), CCTC (Minho) Computer Science Department University of Beira Interior, Portugal Eng.Info./TSI,

More information

Training Within Industry. An Overview Beginning with the JI 4-Step Method of Instruction

Training Within Industry. An Overview Beginning with the JI 4-Step Method of Instruction Training Within Industry An Overview Beginning with the JI 4-Step Method of Instruction What is TWI? TWI or Training Within Industry is a Leadership Development Program designed to provide your supervisors

More information

Agile Software Development:

Agile Software Development: Agile Software Development: 1.Agile methods 2.Plan-driven and agile development 3.Extreme programming (XP) 4.Agile project management 5.Pair Programming 6.Scrum 7.Scaling agile methods Rapid software development:

More information

Agile Delivery Framework (ADF)

Agile Delivery Framework (ADF) Agile Delivery Framework (ADF) Overview Agile is an iterative methodology with self-directed teams and the ability to embrace change rapidly. This document summarizes the Agile Scrum process as well as

More information

Agile versus? Architecture

Agile versus? Architecture Agile versus? Architecture This presentation is about Software Architecture and its relationship to Agile practices. There is often a kind of tension between Agile Concepts and Architecture concepts. Why

More information

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software? Software engineering Facts CSC 4181 Compiler Construction Software Engineering Lectures Part 1 Fact: The economies of ALL developed nations are dependent on software. Fact: More and more systems are software

More information

issue 5 The Magazine for Agile Developers and Agile Testers January free digital version made in Germany ISSN

issue 5 The Magazine for Agile Developers and Agile Testers January free digital version made in Germany ISSN The Magazine for Agile Developers and Agile Testers www.agilerecord.com free digital version made in Germany ISSN 2191-1320 January 2011 issue 5 istockphoto.com/thomasvogel wibaimages - Fotolia.com Distributed

More information

System integration and software process

System integration and software process System integration and software process CSE 331 University of Washington Michael Ernst Outline Architecture Tools: Build tools and version control Tools: Bug tracking Scheduling Implementation and testing

More information

The Role of Scrum Methodologies in the Design and Production Software

The Role of Scrum Methodologies in the Design and Production Software 2013, TextRoad Publication ISSN 2090-4304 Journal of Basic and Applied Scientific Research www.textroad.com The Role of Scrum Methodologies in the Design and Production Software Parastoo Fathi 1*, Arman

More information

ABHELSINKI UNIVERSITY OF TECHNOLOGY

ABHELSINKI UNIVERSITY OF TECHNOLOGY T 76.3601 Introduction to Software Engineering Software Life-Cycle Models http://www.soberit.hut.fi/t-76.3601/ Casper.Lassenius@tkk.fi Software Engineering? 1. The application of a systematic, disciplined,

More information

Chapter 4 Document Driven Approach for Agile Methodology

Chapter 4 Document Driven Approach for Agile Methodology Chapter 4 Document Driven Approach for Agile Methodology In this chapter, 4.1. Introduction 4.2. Documentation Selection Factors 4.3. Minimum Required Documents 4.4. Summary 4.1. Introduction In all, the

More information

The Challenge of Agile Estimating

The Challenge of Agile Estimating The Challenge of Agile Estimating Christina Donadi Heather Nayhouse SCEA/ISPA National Conference, Albuquerque, New Mexico June 2011 2011 TASC, Inc. Agenda Overview of Agile Development Importance of Agile

More information