Agile development teams value working code over documentation, complex architectures, and other extraneous artifacts. This does not mean that agile teams disregard these artifacts; it only means that they value working software as more important.
Sendhil has a post on Agile Documentation.
Whether you work in an agile or more traditional environment, consider using simple design to boost your team’s output.
Simple design refers to the practice of designing software components in a way that meets only the requirements set forward by the business. The practice encourages architectures that postpone the design and development of features until they are needed (YAGNI). By using this design technique, teams often are able to avoid bloat and spend critical cycles on developing business-critical features.