Step 6: Create Project Technical Direction
For each project, determine key technical issues, such as which major components will be reused, what components the system must interact with, how it will be implemented (such as what implementation languages to use), what platforms it must work on, and basic developer guidelines.
Each project should stress modularity. A modular system is a system built from smaller interacting projects that can be developed in parallel and individually replaced without affecting other components. Modularity is key and simplifies technology and software IP reuse, eases and separates classification and export control issues, simplifies management, speeds deployment, reduces maintenance costs, and increases agility. A great military reference to modularity can be found athttp://www.acq.osd.mil/osjtf/docsmemo.html. Well-known design patterns and architectural patterns can be used to divide problems into smaller components [Martin2000].