- Requirements are one set of documents, which can include graphics, Word documents, e-mail messages, and other ways to record things. A list of what is in the development environment(IDE, source control, bug tracking), coding style and guidelines is another set of documents that can be useful in having a successful application development team. There is a project plan that is a big Gantt chart and release notes that are some more documents we create.
- I haven't seen many UML diagrams other than what the Gang of Four have on their site for explaining some design patterns.
- We have a backlog of items to complete and estimates of how complicated each story is. This may be different than the approach you are using. With our Agile approach, there may not be as much design/plan as your situation.
- We rarely have class diagrams though Visual Studio does have an Object Browser that is handy for seeing what is already built.
Where I work we tend to work in pairs for creating domain objects and their members, methods and properties. Classes are created as needed for stories or if we are cleaning up or refactoring a set of classes.
There isn't a complete list of classes but there are some design patterns in use like MVP and faith that since a pair is creating something, the code will fit within the current style and guidelines. As requirements evolve there will be changes to the classes quite regularly but this seems like a natural way to do things for me.
Background on the environment where I am just in case anyone wants to know:
Where I work we have 5 developers, a QA lead, a business analyst, a team lead, an architect and a project manager as the main people in the project at the moment. We use Scrum, pair programming and some TDD ideas in our work.
We are using Visual Studio 2008, Subversion, HP Quality Center, ASP.Net 3.5, Sitecore 6.0, and MS-SQL Server 2005.