Formalize Contract Models states that a contract model is something that both parties should mutually agree to, document, and change over time if required. Yes, sometimes you can't get these folks involved (you may have none on staff at the moment) or you may not be able to identify who within your maintenance organization will be the eventual "owners" of your system. Supporting evidence for third main idea: III. Agile Modeling (AM) is a practice-based methodology for effective modeling and documentation of software-based systems. Finally, a focus on quality work is important because nobody likes to produce sloppy work and that local adaptation of AM to meet the exact needs of your environment is important.
This strategy is overviewed in Figure. You should to take advantage of existing artifacts, including but not limited to system documentation and models within your organization. Instead, wait until later in the life cycle when the information has stabilized and when you know what information is actually useful to you. You must work closely with the customer, or potential customer, for your documentation if you want to create something that will actually meet their needs. The relationship between models, documents, source code, and documentation.
Why is this different, and why is it more agile? Not only does this slow your development efforts down it also results in wasted effort-documentation that you wrote yesterday will need to be rewritten or discarded today, in effect with this approach you are no longer traveling light. People will actually fill them out. Regardless of what some people will tell you, documentation can in fact be quite effective. In other words, you do not want to invest much time documenting speculative ideas such as the requirements or design early in a project.