When a task is completed at the Computer Repair Shop, the changes are immediately incorporated into the full product. This avoids the extra work related to the integration of all items before delivery. Tests greatly facilitate this integration : when all tests are passed, the integration is complete. Deliveries must be the most frequent possible. Continuous integration and testing significantly reduce the cost of delivery.
The team is not overworked. If this happens, the schedule must be reviewed. A tired developer works badly. Based on the scenarios defined by the customer, the team creates test procedures for verifying the progress of development. When all functional tests pass, the iteration is complete.
These tests are often automated , but it is not always possible. Indeed, only the regression tests can potentially be automated due to their recurrence. The functional tests of an application is more often carried out by independent experts test developers.
The Computer Repair Shop must have knowledge of the end user and have a global view of the result to be obtained. Its usual work while being available to answer questions of the team. The client creates scenarios for the features they want. The team evaluates the time required to implement them. The client then selects scenarios based on priorities and available time.
Before you implement a feature, the developer writes a test that will verify that the program behaves as expected. This test will be retained until the end of the project, as the functionality is required.
The goal of iteration is to implement selected by the customer and it only scenarios. Consider the next steps would waste time without the guarantee of a future gain. The tests will change the architecture later if necessary. More application is simple, it will be easy to change in the next iterations.
There is use of metaphors and analogies to describe the system and its operation. The functional and technical to understand much better when they agree on the terms they use.
Steady improvement in the quality of the code without changing its behavior. It reworks the code to start on a better footing while maintaining the same functionality . Phases of refactoring add nothing to the customer but allow developers to move forward in better conditions and therefore faster.
Collective code ownership
The team is collectively responsible for the application. Each developer can make changes to all portions of the code , even those he has not written. Tests tell you if something does not work. Since all developers involved throughout the code , it is essential to establish and maintain standards for naming variables, methods, objects , classes, files, etc.