Programmers add features to pass unit tests. Programmers integrate code. Programmers produce a released version. Customer runs acceptance tests. Version goes into production.
Programmers update their estimates based on the amount of work they've done in release cycle.
XP programming doesn't embrace this approach for a couple reasons. A large up-front design means that the whole programming team sits down and plans out the entire program before writing code. That would work if two things were true. First, the team would have to know exactly which features were to be implemented. Second, the team would have to be able to anticipate all issues that would come up when actually writing code.