Principles

  • Principles are similar to patterns and practices but operate at a higher intellectual level

  • oftware principles as abstract and rather philosophical prescriptions for how to build software systems.

  • Principles differ from patterns in that they are more generalized, open to interpretation, and they may be applied differently in various situations depending on the context

  • a given principle may be hiding behind heuristics (mental shortcuts), practices, or patterns

  • Principles, as well as good practices, help keep you on the happy path. This is an informal term describing what it is like when the development process is going well, obstacles are easily overcome, and square-peg-in-round-hole solutions are avoided.

  • Force developers into the Pit of Success. Make it easy to do the right thing and hard to do the wrong thing.

  • Principles help guide the solution in the right direction, even when it gets confusing, requirements change, or other situations emerge which can cause you to feel overwhelmed.

  • They provide a logical framework for understanding why something is a good pattern or practice

  • Principles also inform executive technical decisions about software solutions at a higher level than patterns or practices. They determine which patterns/practices should be employed in building the solution, and which ones avoided.

Last updated