Many organizations responsible for software projects fail to appreciate the importance of architecture and design, similar to a failure to appreciate the importance of process and management. Best practices in any human endeavor dictate that planning take place before doing.
The essence of our
philosophy for business software development is the principle of planning - identify objectives and consider different strategies. Next devise the appropriate architecture and design patterns. Then build the system.
In the development of business systems, "documenting" architecture and design can be a sticking point in the way that documenting requirements can be a challenge for business groups. Documenting architecture at a high level first using pictorial artifacts, and later drilling down to more detailed technical designs, allows the technical planning to be done up front and in an Agile-like context. Issues can be resolved upstream in the SDLC with fewer errors, lower cost and in less time.
The trick is to encourage the different streams of work and people so that they are mutually supportive and feed into each other, with each workflow contributing to the overall success of the project.