Principles

Principles provide guidance for your decisions. They clash, they demand compromises. Every pattern and article on this site is such a compromise.

Extend your understanding

You understand requirements and their business domain well enough to start confidently and allow yourself to learn along the way, because knowing all beforehand starts nothing. Therefore you redo things done wrong and you document lessons learned. E.g. bugs get fixed before new features get done, captured metadata, requirements will change.

Know your limits

You know which constraints act on you and your effort and which are hard or soft limitations, because boundaries are the things that force and guide solution trade-offs. Therefore you make choices towards where you can grow and balance them against extending your understanding.

PracticeIntent
Do not anticipate business needsAvoid making decisions that others can judge better

Stay relevant

You draw the line and keep things lean, because otherwise you miss out on work that adds value. Therefore you tightly manage scope, assumptions, and technical debt.

PracticeIntent
Do not anticipate business needsAvoid working on something with an undetermined value

Build enduring

You design for change to keep disruptions and maintenance cost low, because bugs  and unnecessary rework destroy credibility and drain resources. Therefore you spend time and effort to have your solutions withstand changes, anticipated or not.

PracticeIntent
Anticipate technical issuesDevelop to ensure robustness, graceful degradation and exception handling.
This can violate "Do not anticipate business needs" if you are not careful.
Filter earlyRemove all unnecessary data as soon as possible.
Borrowed from Cary Millsap's posting.

Do right

You ethically apply the laws, morals, values, and codes of conduct of your company, because they align with your believes. Therefore you join a team that fosters your personal believes and you say no to improper requests. E.g. no plain-text passwords, only opt-out mailings, no credit card numbers.

Share

You distribute knowledge and data as much as possible, because innovation thrives on learning new things. Therefore you are conflicted between sharing and doing right. E.g. customer service sees address history and marketing offers, manufacturing sees material cost, marketing and sales match credit scores against ZIP codes.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="">