Design for High Quality
Always bring quality considerations into the design process. Much of the final quality of a product is predetermined during the design phase. Certain architectures and coding techniques lead to fewer defects. Developing concise specifications and standards before entering the programming phase reduces misinterpretation by other team members.
Two people working together at a single computer perform initial coding activities. This results in higher quality code and, although it may appear inefficient, timelines are easier to meet if code is written properly the first time. Sage Analytic uses pair programming in the initial phases of development, when design patterns are first implemented. Once standard coding patterns have been finalized, then each developer programs independently.
Operational Work-In-Progress Site
The developers post their daily progress to an active web server that is accessible by all team members. Features are developed and integrated one-by-one, therefore, keeping the coding process simple and straightforward. Feedback is injected directly into the development process by having the client review progress on a regular basis. Client inspired changes are much easier to integrate while developing a particular module than to wait until all major development is complete.