Management
Senior management supported the project team throughout the effort because they could clearly see that the team was delivering. The project manager could therefore focus on issues such as scheduling and estimating and softer issues such as ensuring that the team had the resources they needed, including training, and that they weren’t being delayed by politics.
Tools
The team could have been more agile regarding tool usage. It didn’t fully accept the practice of “use the simplest tools”: whiteboards made sense, but index cards and essential user interface prototypes using Post-it notes and flip chart paper were too foreign.
The Culture
The hardest thing to overcome was the serial/waterfall mindset of some participants. The development team leader and the tester from the responsible test center wanted more formal documentation. The DBA’s data-driven mentality was typical but we eventually confronted it successfully, mostly because of the type of the project that focused on UI integration and legacy data presentation that necessarily had to go over multiple iterations. Senior management was already committed to the project because it had already participated in the project’s definition and pushed for it.
Documentation
The team wrote too much documentation, but this increased its comfort level with the new approach, so it wasn’t too bad. The team produced only the required AUP artifacts. The requirements model focused on use cases, business rules, sequence diagrams, UI specifications, technical requirements, and a glossary. The business analyst wrote and maintained these documents, keeping them up-to-date as the requirements evolved. The project manager maintained the software architecture document, which included formally transferring point form notes, whiteboard sketches, and arguably, models, in the computer-aided software engineering tool. The notes, basically an overview of the team’s decisions, and the whiteboard diagrams were quite agile. The testers carried out the testing with the Mercury testing and analysis tool. They inserted all the test cases (scenarios) and monitored testing progress using the tool. The testers also maintained the test model—the definition of the test cases—but invested too much effort in its development