+49-40-413 389 55
We were in a project with five full time developers, who developed a new backend for an existing web-service. The customer set a deadline when the system was supposed to go online. We did not have a customer on-site, but we had regular meetings and kept contact to three assigned customers by phone. I joined the project half way through as a part time coach. The customer was willing to work the XP-way. Planning was done with unser stories on story cards. All story cards were arranged on a board in two week iterations. Since the customer was not on-site, we made a copy of all the cards and pinned them in the same order to a board at the customer location. That way, the customer could always see which stories were due in which iteration.
In the beginning of the project, we did an elaboration phase and collected a stack of
story cards. The development team estimated that they could probably finish all the
stories they had at that moment in about half a year. That was more than a month before
the scheduled deadline. The team emphasised that that was only a rough estimate and was
based on the stories they had at that moment.
During the course of the project, the customer added new stories. These new stories were also pinned to the board, on the right of the scheduled iterations. After a while, more and more stories were added. Some of the new stories were way too big to be estimated according to the developers and that therefore these stories would need refinement. It took the customer quite some time to refine the stories.
When we approached the deadline, the customer's management blamed us for not finishing the system in time. They emphasised several times that our first estimate had been to finishe more than a month before the deadline. Now, that the deadline was approaching, there were still a lot of features left to be implemented. Once again we drew their attantion to the fact that a lot of stories had been added to the project after our first estimate. They could also see that a lot of stories had not even been scheduled in iterations up to that point.
It became clear that the customer who was assigned to us did not communicate clearly to his management about what was going on in the project. He did not inform the management about the progress or about project changes. The management itself did not watch the project's progress.
We have to take the blame that we did not actively include the customer's management into
the planning process. We should have done release planning with the customer and the
customer's management should have been included in the release planning. We should have
communicated more often and more clearly about changes in the schedule which arose from
added stories or changes in estimates.
This emphasises once again that release planning and active involvement of the customer's management is vital in every XP-project.