Communication is the key to simplify the process. Jump to programming is No-No. Formal Requirement specs and design docs are wow but agile projects often chase us in pony-speed - in that case a handy whiteboard saves us by letting us drilling down throw problems. Collaboration helps us maintaining quality. To keep consistency in program we have storm meetings and code walk through session
Clean and readable code are best documents one has ever seen. We follow standard naming convention all across our project. No quick hacks like new or test123. For quick hellow worlding we follow indentation and comment blocks. Reason is simple - often those test snippets turns to live system.
If changes are allowed without any plan, antropy increases and code becomes hard to manage. We know that and from the first day we place our code to the dedicated Subversion system. We also use Basecamp system to keep track of who is doing what.
Releases are heart of success. If coders have no target they seems to add more sugar in one cup! Our seasoned project management distributes the project in small chunk to the programmers. Every morning our managers know exactly which tasks are in what stage, customers also know if their projects are coming in right fashion.