Core Concepts: Context
This article as PDF
Context is everything.
Context can change the meaning of a word: ‘Michael Jordan is tall’ vs. ‘The Burj Khalifa is tall’.
Context is vitally important but often overlooked (especially by online ‘experts’ answering questions on Reddit/StackOveflow etc.). Expressing absolute opinion as fact, for example, ‘use GitHub Actions for your CI/CD’. Okay, but this presupposes your workflow is GitHub centred, that you are content to invest in GitHub, lock-in to GitHub, make yourself subject to rule changes and changes to GitHub charging. This is not to say you should not use GitHub Actions, I’m just saying that absolute statements like this should be treated with caution1 as they seldom consider context.
Examples
Problem Solving
Before starting to solve a problem we need to establish the context in which the problem manifested. What were the circumstances? Was there unusual activity (e.g. more user activity, some unusual process load like a backup restore)? Had a release been recently deployed?
Once we have established the context in which the problem occurred we need the context in which we are to solve the problem. Time frame? Available resources (people, money, etc.). Workflow (can we push a change immediately, can we ‘tinker’ with production systems directly, do we need specific personnel to authorise work).
In real situations a lot of these things, both situation and solution contexts, will be known or at least informally established.
Feature Building
When developing a new feature (even a whole system) contexts similar to those required of problem solving need to be established.
Not only basics such as available resources (time, money, people, etc.) but also existing systems (both IT and business) form the context of the new feature/system.
It is no use developing the worlds greatest accounting package when a simple off-the-shelf package will suffice. Using a SaaS provider may not be an option for secret internal projects.
1This caution should be increased if the user making the statement attempts to establish expertise using statements like ‘I’ve working in IT for 20 years’. This ‘appeal to authority’ in no way makes the statement right.