User:NcsuOO517: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 12: Line 12:
- Extreme Programming (XP)
- Extreme Programming (XP)


- SCRUM
- SCRUM - short, daily meetings held by all members of the team, in which each team member answers three questions:
1) What did I do yesterday?
2) What do I plan to do today?
3) What obstacles are standing in my way?


- Retrospectives
- Retrospectives - held at every iteration meeting, this practice involves each team member writing on an index card.  On one side they write what they think went well during the iteration; on the other, they write what they think did not go well.  The cards are then passed around and read by each other member of the team, which leads to a discussion about what was said.


- Test-driven development
- Test-driven development
Line 20: Line 23:
- Requirements analysis
- Requirements analysis


- Planning Poker
- User stories - a story represents a feature that can be completed in one iteration.


- User stories
- Planning Poker - a practice held at each iteration meeting.  Each team member holds a set of "poker" cards that have numbers on them, typically 1, 2, 3, 5, 8, 13, 20, 40, and 100.  Team members use the cards to present their estimation of how many story points each user story will take to complete - 8 represents a full iteration.  If there is disagreement in estimations, team members discuss why they chose the number they did, and a re-vote is taken.  The process continues until the team members agree on an estimation number.


- Team velocities
- Team velocities - represent the number of story points a team is able to complete in one iteration.  The team velociy is used to decide how many points to assign for the next iteration, based on the "Yesterday's Weather" concept, or the idea that a velocity will remain consistent for every iteration.


- Release planning
- Release planning

Revision as of 00:39, 9 November 2010

Agile Software Development Methodology

Many software development teams are adopting the relatively new Agile process of development.

Purpose

"Agile is set up to strongly support garnering feedback and guiding the customer toward better understanding what they want and need"

"Both Scrum and XP suit similar kinds of projects: a small, co-located team; an on-site or available customer representative; an emphasis on coding and testing early; and frequent feedback into updated requirements"

Common Practices

- Iterative, incremental development cycle

- Extreme Programming (XP)

- SCRUM - short, daily meetings held by all members of the team, in which each team member answers three questions: 1) What did I do yesterday? 2) What do I plan to do today? 3) What obstacles are standing in my way?

- Retrospectives - held at every iteration meeting, this practice involves each team member writing on an index card. On one side they write what they think went well during the iteration; on the other, they write what they think did not go well. The cards are then passed around and read by each other member of the team, which leads to a discussion about what was said.

- Test-driven development

- Requirements analysis

- User stories - a story represents a feature that can be completed in one iteration.

- Planning Poker - a practice held at each iteration meeting. Each team member holds a set of "poker" cards that have numbers on them, typically 1, 2, 3, 5, 8, 13, 20, 40, and 100. Team members use the cards to present their estimation of how many story points each user story will take to complete - 8 represents a full iteration. If there is disagreement in estimations, team members discuss why they chose the number they did, and a re-vote is taken. The process continues until the team members agree on an estimation number.

- Team velocities - represent the number of story points a team is able to complete in one iteration. The team velociy is used to decide how many points to assign for the next iteration, based on the "Yesterday's Weather" concept, or the idea that a velocity will remain consistent for every iteration.

- Release planning

Disadvantages

- Lack of customer involvement made gathering requirements extremely difficult, leading to loss of productivity and rework. - Contract negotiation - customers want "fixed deadline, fixed price, and fixed scope" - meaning requirements are fixed. Agile embraces change, which you can't do w/ a fixed price project. - Design-intensive projects - Superficial documentation - Adaptation to changing requirements not always needed - Sometimes difficult to break down complication development into small user stories - Distributed teams had difficulty carrying out some team collaboration tasks

Other Software Development Methodologies

Waterfall

Waterfall vs. Agile

Spiral

Spiral vs. Agile

Iterative

Iterative vs. Agile

Rapid Application Development (RAD)

RAD vs. Agile

Rational Unified Process (RUP)

RUP vs. Agile

Conclusion

References

[1] Hoda, Rashina et al. "Agility in Context." Proceedings of the ACM international conference on Object oriented programming systems languages and applications (2010): 74-88. ACM DL.