Just What Is Design?
I define design as the process of discovering and elucidating the simplest and most robust solution to a set of requirements. An evaluation of various methodologies and documentation/diagramming standards must keep this central fact in mind. I identify five fundamental principals:
- KISS (an acronym familiar to traditional engineering disciplines, but too often ignored by over zealous programmers!)
- Tailor methodologies and standards appropriately to the size and scope of your project, and the skills and capabilities of your team members
- Be clear about the purpose and benefits of methodologies and standards, and work at selling it to your team. If they don’t see how it will help them, or the organization in the long run, then you run the risk of making things worse rather than better
- Ensure that the senior member of the team thoroughly understands the purpose and limitations of formal methods, and is a competent technical writer.
- Lead by example
I have seen projects get into serious trouble by ignoring these maxims.