You are on page 1of 21

Introduction to Agile Software Development Methodology

Ritesh Jain
Asst. Professor

Oriental University, Indore

Department of Computer Science and Engineering

11 September 2013

Traditional Software Development Methodology

Classical Waterfall Model

Iterative Waterfall Model


Prototyping Model

Evolutionary Model
Spiral Model

V-Model
Rapid Application Development Model
2

11 September 2013

Weakness of Traditional Software Development Methodology

Hardly bother about system documentation Time vs. Attention trade-off Miscommunication Redesign is problematic Back traversing is not allowed Can cause systems to be left unfinished and/or implemented before they are ready.
3

11 September 2013

Agile Software Development

11 September 2013

Agile Software Development

Agile software development is a group of software development methods based on iterative and incremental development. It uses where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change.

It is a conceptual framework that promotes interactions throughout the development cycle.

11 September 2013

Agile Software Development Process

Is driven by customer descriptions of what is required (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

11 September 2013

Agile Software Development Process


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

11 September 2013

Manifesto of Agile Software Development

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.

11 September 2013

Agile Process Models


Extreme Programming (XP) Adaptive Software Development (ASD) Feature-Driven Development (FDD) Model-Driven Development (MDD)

Crystal Methods

11 September 2013

Extreme Programming (XP)

The most widely used agile process. Extreme Programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements.

Extreme programming is based on values of simplicity, communication, feedback and courage.


XP is people-oriented rather than process oriented, explicitly trying to work with human nature rather than against it.

11 September 2013

10

Extreme Programming (XP)

Developers

XP practices
planning game short releases simple design test-first coding refactoring pair programming continouos integration no overtime on-site customer coding standard

XP values
communication

simplicity feedback courage

Customer
11 September 2013 11

Extreme Programming (XP)


simple design CRC cards user st ories values accept ance t est crit eria it erat ion plan spike solut ions prot ot ypes

ref act oring pair programming

Release
sof t w are increment proj ect v elocit y comput ed

unit t est cont inuous int egrat ion accept ance t est ing

11 September 2013

12

Extreme Programming (XP)

XP Planning

Begins with the creation of user stories Agile team assesses each story and assigns a cost Stories are grouped to for 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

11 September 2013

13

Extreme Programming (XP)

XP Design

Follows the KIS (keep it simple) principle Design provides implementation guidance for a story Encourage the use of CRC (class-responsibility collaborator) cards For difficult design problems, suggests the creation of spike solutionsa design prototype Encourages refactoringan iterative refinement of the internal program design
14

11 September 2013

CRC Cards
Class: Class: Descri p tion: Class: Descri p tion: FloorPlan Class: Descrip tion: Responsibility: Descrip tion: Responsibility: Responsibility: Responsibility:
defines floor plan name/type manages floor plan positio ning scales f lo or plan for display scales f lo or plan for display incorporates w alls , doors and w indow s show s position of video cameras Wall Camera

Collaborator: Collaborator: Collaborator: Collaborator:

11 September 2013

15

Extreme Programming (XP)

XP Coding
Recommends the construction of a unit test for a store before coding commences Encourages pair programming Integration of work (done by pair programmer) on daily basis Yielding smoke testing helps to uncover errors early

11 September 2013

16

Pair Programming

Pair programming is a dialogue between two people trying to simultaneously programming (analyze and design and test) and understand together how to program better. It is a conversation at many levels, assisted by and focused on a computer -- Kent Beck

11 September 2013

17

Extreme Programming (XP)

XP Testing

All unit tests are executed daily Encourages a regression testing strategy when ever code is modified Acceptance tests are defined by the customer and executed to assess customer visible functionality

11 September 2013

18

Conclusion

Today Agile and XP is not a polished construction. Indeed, it would be against its own spirit if it ever were. It supports number of practices, that will continue to evolve, perhaps radically, over the next few years. If you are doubtful about Extreme Programming as presented here. It has only been used as one project methodologies. However, if it does no more than make you take a fresh look at what you see as essential to software engineering, I will have partly achieved my purpose. However, none of the ideas in XP is new. The novelty is in putting them all together, and asking that they be taken seriously as a whole discipline of development.
19

11 September 2013

References
Software Engineering A Practitioners Approach Sixth Edition, Roger S. Pressman, McGraw Hill Higher Education A. Cockburn, Agile Software Development, Pearson Education, Asia, Low Price Edition. K. Beck, Extreme Programming Explained, Pearson Education Low price Edition Asia.

New Direction on Agile Method Rekka Abrahamsson , Juhani Warsta , Mikko T. Siponen and Jussi Ronkainen, Technical Research Centre of Finland, Finland

Software Technology support center (STSC) (http://www.stsc.hill.af.mil/crosstalk/2002/10/highsmith.html) (http://www.agilemodeling.com/essays/agileSoftwareDevelopment.ht m) (http://agilemanifesto.org/)

11 September 2013

20

Thanks

11 September 2013

21