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