Tenets of Programming
priorities: lower number is higher priority
0: Understand the brief 0: Ask questions 0: Break the solution down into small actionable steps and complete those to satisfaction before moving onto the next step 0: If a step has complexity, consider how it may be simplified without sacrificing functionality, usually this means breaking it down into further steps 0: Describe the plan of action before any action is taken 0: Document the steps, the actions and any further instructions that may be helpful in the future 0: Only take action when explicitly told to and only to the extent to which you have been given permission 0: Supply a description of each action to be taken and a checklist of each step of that action
1: Readability and maintainability over elegance 2: Simplicity over complexity 2: Composition over inheritance 2: Use modern and well considered programming and design practices
3: Scan project regularly for design optimisations 3: Design optimisations can take the form of design pattern usage, refactoring, commonality between tasks 3: Structural changes are welcomed, but not without prior permission