agile software development with xp

49
BY BY Extreme Programming Extreme Programming

Upload: vashira-ravipanich

Post on 24-Apr-2015

2.521 views

Category:

Technology


4 download

DESCRIPTION

The Object Oriented Technology course assignment from CU.

TRANSCRIPT

Page 1: Agile Software Development with XP

BYBYExtreme ProgrammingExtreme Programming

Page 2: Agile Software Development with XP

• The problem in today Software Development

• Agile Methods

• eXtreme Programming (XP)

• Q&A

Page 3: Agile Software Development with XP

• Risks: Schedule Slips Quality of product (Defect Rate) Requirement Changes Project Cancelled

Page 4: Agile Software Development with XP
Page 5: Agile Software Development with XP
Page 6: Agile Software Development with XP
Page 7: Agile Software Development with XP
Page 8: Agile Software Development with XP

Customer satisfaction by rapid, continuous delivery of useful software

Page 9: Agile Software Development with XP

Working software is delivered frequently

Page 10: Agile Software Development with XP

Working software is the principal measure of progress

Page 11: Agile Software Development with XP

Even late changes in

requirements are welcomed

Page 12: Agile Software Development with XP

Close, daily cooperation between business people and developers

Page 13: Agile Software Development with XP

Face-to-face conversation is the best form of communication

Page 14: Agile Software Development with XP

Projects are built around motivated individuals, who should be trusted

Page 15: Agile Software Development with XP

Continuous attention to technical excellence and good design

Page 16: Agile Software Development with XP

Simplicity

Page 17: Agile Software Development with XP

Self-organizing

teams

Page 18: Agile Software Development with XP

Regular adaptation to

changing circumstances

Page 19: Agile Software Development with XP

• Agile UP

• XP (eXtreme Programming)

• FDD (Feature Driven Development)

• Scrum

Page 20: Agile Software Development with XP
Page 21: Agile Software Development with XP
Page 22: Agile Software Development with XP
Page 23: Agile Software Development with XP

An attempt to reconcile

humanity and productivity

Page 24: Agile Software Development with XP

A mechanism

for social change

Page 25: Agile Software Development with XP

A path to improvement

Page 26: Agile Software Development with XP

A style of development

Page 27: Agile Software Development with XP

A software development

discipline

Page 28: Agile Software Development with XP
Page 29: Agile Software Development with XP

Communication

Page 30: Agile Software Development with XP

Simplicity

Page 31: Agile Software Development with XP

Feedback

Page 32: Agile Software Development with XP

Courage

Page 33: Agile Software Development with XP

Respect

Page 34: Agile Software Development with XP
Page 35: Agile Software Development with XP

• Planning game

• Frequent releases

• Metaphor

• Simple Design

• Testing

• Refactoring

• Pair Programming

• Collective Ownership

• Continuous Integration

• 40 Hour Week

• On-site customer

• Coding Standards

Page 36: Agile Software Development with XP

• A release cycle is usually up to 3 months

• Each iterations is around to 3 weeks

• Each iteration the selected user stories are implemented

• Each user story is split in programming tasks of 1-3 days

• small and frequent releases provide frequent feedback from the customer.

Page 37: Agile Software Development with XP

• Do the simplest thing that could possible work

• You aren’t going to need it do not spend time implementing potential future

functionality (requirements will change)

• Put in what you need when you need it

• Simple design ensures that there is less

– to communicate

– to test

– to refactor

Page 38: Agile Software Development with XP

• Tests play the most important and central role in XP

• Tests are written before the code is developed

• All tests are automated (test suites, testing framework)

• User stories = Requirements

• Tests = System Specification

• 2 kinds of test: Acceptance tests (functional tests)

o clients provide test cases for their storieso developers transform these in automatic tests

Unit testso developers write tests for their classes (before implementing the classes)o All unit tests must run 100% successfully all the time

Page 39: Agile Software Development with XP

• Process of improving code while preserving its function• The aim of refactoring is to

make the design simpler make the code more understandable improve the tolerance of code to change

• The code should not need any comments There is no documentation in XP The code and the user stories are the only documents

• Refactoring is continuous design

Page 40: Agile Software Development with XP

• Two programmers sit together in front of a workstation one enters code one reviews the code and thinks

• Second most important practice after tests• Costs 10-15% more than stand-alone programming • Code is simpler (fewer LOC) with less defects (15%)• Ensures continuous code inspection (SE)

Page 41: Agile Software Development with XP

• Daily integration at least• The whole system is built (integrated) every couple of

hours• XP feedback cycle:

develop unit test code integrate run all units tests (100%) release

• A working tested system is always available

Page 42: Agile Software Development with XP
Page 43: Agile Software Development with XP

• Traditional Software Lifecycle: Listen - Design - Code - Test

• XP lifecycle Listen - Test - Code - Design

• Listen to customers while gathering requirements• Develop test cases (functional tests and unit tests)• Code the objects• Design (refactor) as more objects are added to the

system

Page 44: Agile Software Development with XP

Listen to customers while gathering requirements

Page 45: Agile Software Development with XP

Develop test cases (functional tests and unit tests)

Page 46: Agile Software Development with XP
Page 47: Agile Software Development with XP

Design (refactor) as more objects are added to the system

Page 48: Agile Software Development with XP
Page 49: Agile Software Development with XP