AgileProgramming/xp: Difference between revisions

From Cheaha
Jump to navigation Jump to search
Line 55: Line 55:
'''
'''
User stories''' –  
User stories''' –  
Written by the customer, focus on customer needs
  Written by the customer, focus on customer needs
Cards are moved around to create release plan.
  Cards are moved around to create release plan.
About three sentences of text.
  About three sentences of text.
Used to create time estimates for release planning meeting.
  Used to create time estimates for release planning meeting.
Used instead of big requirements document.  
  Used instead of big requirements document.  
Drive the creation of acceptance tests
  Drive the creation of acceptance tests
How much development time to implement a story?  Longer than 3 weeks means you need    to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories.  
  How much development time to implement a story?  Longer than 3 weeks means you need    to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories.  
'''
'''
Release planning meeting''' creates release plan laying out overall project.     
Release planning meeting''' creates release plan laying out overall project.     

Revision as of 19:26, 27 October 2008

AGILE METHODOLOGY

What is Agile Methodology?

[1]
* Group of software development methodologies
* Project management process
* Set of engineering best practices
* Business approach

Agile methodology aims to deliver high quality software which meets the customer's needs and company goals rapidly.

History

* Seventeen professionals, consisting of experts in programming, CTO's, founders of software consulting firms such as Martin Fowler – ThoughtWorks , Dave Thomas,  Andrew Hunt (co-authors of The Pragmatic Programmers), Ron Jeffries – propietor of Xprogramming.com and others, got together on February 11-13, 2001 at the Snowbird Ski Resort in Utah    
* The agenda was to develop  a 'lightweight'  process as an alternative to documentation driven, heavyweight software development processes (Waterfall, Cowboy coding)
* The Snowbird meet consisted of representatives from some of the existing software methodologies such as Extreme Programming, Adaptive Software Development, Crystal, and SCRUM
* Result of the Snowbird meet – The Agile Manifesto[2] and the Agile Alliance[3]
* Agile Manifesto values
** Individuals and interactions over processes and tools 
** Working software over comprehensive documentation 
** Customer collaboration over contract negotiation 
** Responding to change over following a plan

What are Agile Manifesto practices?

* Customer satisfaction by rapid, continuous delivery of useful software
* Working software is delivered frequently (weeks rather than months)
* Working software is the principal measure of progress
* Even late changes in requirements are welcomed
* Close, daily cooperation between business people and developers
* Face-to-face conversation is the best form of communication (Co-location)
* Projects are built around motivated individuals, who should be trusted
* Continuous attention to technical excellence and good design
* Simplicity
* Self-organizing teams
* Regular adaptation to changing circumstances

What are existing Agile Methodologies?

* Extreme Programming
* Scrum
* Crystal Clear
* Feature Driven Development
* Dynamic Systems Development Method (DSDM)

EXTREME PROGRAMMING

Extreme programming is a deliberate and disciplined approach to software development. Previously successful and effective methods have been emphasized to the “extreme,” while unproductive activities have been reduced as much as possible.

How to begin with XP? Start by striving for user involvement. Always have user presence with the development team. Put tests in place. The better tests you have, the faster and more effectively you will move. Include refactoring, which lets you begin with simple designs and grow them as needed. Pair programming provides built-in reviews and learning, and can help you spread the XP practices within a team. Pairs are switched often.

Stand up meeting every morning is used to communicate problems, solutions, and promote team focus. Everyone stands up in a circle to avoid long discussions. Each person states what they did yesterday, what they plan to do today, and what, if anything, is holding them up. User stories

 Written by the customer, focus on customer needs
 Cards are moved around to create release plan.
 About three sentences of text.
 Used to create time estimates for release planning meeting.
 Used instead of big requirements document. 
 Drive the creation of acceptance tests
 How much development time to implement a story?  Longer than 3 weeks means you need    to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories. 

Release planning meeting creates release plan laying out overall project.

Release plan is used to create iteration plans for each iteration. Release often - small releases to customer.

Iteration planning mtg at the beginning of each iteration. Individual iterations are planned in detail just before each iteration begins and not in advance.

Each iteration is 1-3 weeks long. Unit tests are created early and each class is tested. Acceptance tests verify that the user story has been correctly implemented.

The rules must be followed until the team has changed them. All developers know exactly what to expect from each other, and having a set of rules is the only way to set these expectations. At meetings, talk about what is working and what is not, and fix XP.

References

1 | references-column-count references-column-count-2 }} }} }}" {{#if: | style="-moz-column-width:{{{colwidth}}}; column-width:{{{colwidth}}};" | {{#if: 2| style="-moz-column-count:2; column-count:2;" }} }}> <references group=""></references>