of the document is tested empirically. Editing, the final step in which the information collected in steps three and four is used to produce the final draft. Documentation and agile development controversy "The resistance to documentation among developers is well known and needs no emphasis." This situation is particularly prevalent in agile software development because these methodologies try to avoid any unnecessary activities that do not directly bring value. Specifically, the Agile Manifesto advocates valuing "working software over comprehensive documentation", which could be interpreted cynically as "We want to spend all our time coding. Remember, real programmers don't write documentation." A survey among software engineering experts revealed, however, that documentation is by no means considered unnecessary in agile development. Yet it is acknowledged that there are motivational problems in development, and that documentation methods tailored to agile development (e.g. through Reputation systems and Gamification) may be needed. Marketing documentation For many applications it is necessary to have some promotional materials to encourage casual observers to spend more time learning about the product. This form of documentation has three purposes: To excite the potential user about the product and instill in them a desire for becoming more involved with it. To inform them about what exactly the product does, so that their expectations are in line with what they will be receiving. To explain the position of this product with respect to other alternatives. See also API Writer Comparison of documentation generators Design by contract Design document Docstring Documentation Literate programming README files User Assistance Unified Modeling Language UML Notes Technical communication