Link Search Menu Expand Document

Principle

A broad, less defined virtue. Compliance to a principle will be difficult to measure and may be subjective.

Principles maybe recommended, suggested or mandatory.

Examples (fictitious):

  • we all eat rocks {a principle because we do not define what a rock is}
  • all JSON should be laid out in a pretty format when saved to file {a principle because we do not state the formatting and is therefore subjective }
  • all database column names should have a business meaning {a principle because it is hard to measure compliance }

Principle Document Layout

The principle metadata is embedded inside the Front Matter.

  • The title field must have the same value as the principle.name field
  • The urn is composed of the nid (namespace identifier) and the nss (namespace string)
    • nid = urn:js:virtue:aspire:principle
    • nss = [ unique integer ].[ version integer ]

The principle document has just three sections:

  1. TL;DR -> Too Long Didn’t Read, 256 characters or less, we want to Tweet this.
  2. Rational -> Why do we have this principle, what does it mean to us, list all the positives.
  3. Implications -> What if we do not do it, are there any side effects, are there shortcomings?

If you are struggling to define the principle in 256 characters or less, then the principle is probably too complex, and needs to be broken out into smaller logical units (more principles).

If what you are documenting does not fit within this structure, then you probably need to create an associated Standard or Pattern.

---
title: "Let's all be amazing"
layout: principle
grand_parent: "I'm a pillar in the blueprint"
parent: "I'm a domain in the blueprint"
principle:
  principle_urn:
    urn: "urn:js:virtue:aspire:principle:15.9"  
  name: "Let's all be amazing"
  description: "What a cool principle, I could say more...."
---
# TL;DR
The principle described in 256 characters or less.
# Rational
Why is this principle good for us?
# Implications
Whatever could go wrong?
# Appendix
*Optional* - Misc details related to what is being proposed.