2.6 XP: Extreme Programming: Agile Software Construction
2.6 XP: Extreme Programming: Agile Software Construction
2.6 XP: Extreme Programming: Agile Software Construction
(i.e., dont know what the inputs and outputs should be), then you shouldnt be writing the code. You should then automate testing so that you can regularly re-run the tests to make sure that nothing that has been done breaks earlier results. Short iterations. Each iteration should be relatively short allowing for rapid and frequent feedback. Thus, a minimal system may be produced and possibly even put into production quickly and the system will grow in whatever directions prove most valuable. Keep it simple. Start projects with a simple design that can evolve later as required by future iterations. This removes unnecessary complexity from early iterations. It also removes the need to code in additional functionalities believed to be required by future iterations, but which may actually never be needed. Dont anticipate: code for current needs. That is, dont over-engineer solutions based on what they may one day need to do, rather focus on what they need to do now and leave tomorrows functionality to tomorrow. Collective ownership. Everyone within the team owns the software and has responsibility for it. When something goes wrong, no one should ever consider it not to be his or her problem because Bill wrote that piece of code. In turn, XP does not support a culture of blame and recrimination everyone is responsible for all the code. As a result of this, everyone is responsible for xing a problem when they nd it rather than ignoring it.
User Stories
Requirements Bugs Release Plan Customer Acceptance
Architectural Spike
System Metaphor
Release Planning
Iteration
Release
Acceptance Tests
Small Releases
Unresolved Problem
Resolved Problem
Next Iteration
Spike
that the users should not be limited to describing just the user interface. Rather the user stories should describe how the user would use the system to accomplish something. It is worth noting that User Stories are not detailed requirements. These will be obtained during the iterations, when and if the aspect of the system covered by a particular user story is to be implemented. Instead, User Stories should only be detailed enough to allow a reasonable estimate to be made of the time taken to implement them under ideal conditions for the planning meeting. They should be short (e.g., about three sentences long) and should use the terminology of the user and not the terminology of the software development team. These user stories should feed into the release-planning meeting and to the creation of the user acceptance tests.