Introduction To Agile Software Development Methodology: Ritesh Jain
Introduction To Agile Software Development Methodology: Ritesh Jain
Ritesh Jain
Asst. Professor
11 September 2013
Evolutionary Model
Spiral Model
V-Model
Rapid Application Development Model
2
11 September 2013
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
11 September 2013
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.
11 September 2013
11 September 2013
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
11 September 2013
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
Extreme Programming (XP) Adaptive Software Development (ASD) Feature-Driven Development (FDD) Model-Driven Development (MDD)
Crystal Methods
11 September 2013
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.
11 September 2013
10
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
Customer
11 September 2013 11
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
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
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
11 September 2013
15
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
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
11 September 2013
20
Thanks
11 September 2013
21