Everything we think, written down first.
Essays on software architecture, planning and engineering practice — the same method the Definition Sprint runs on. Read it before you hire us.
-
Tensorware: The Third Medium of Logic For decades hardware and software were the only two ways to implement logic. Tensorware is a third, and it moves the work away from programming altogether.
-
Principles of Software Quality Management Testing is sampling, not proof. Three principles — sampling, phase in the lifecycle, and quality factor — for managing quality instead of hoping for it.
-
3 Essentials for Software Design Three essentials: design patterns as a toolbox, separating logic from object graph lookup, and actually realising the architecture you set out to build.
-
Technical and Strategic Architects: Expert vs Analyst Expert or analyst? Two kinds of architect, what each one is genuinely good for, and why hiring the wrong one leaves the decision you needed still unmade.
-
Analyzing Software: Technical, Tactical and Strategic Qualities Technical, tactical and strategic quality are three different questions. Knowing which one you are really asking decides whether a system is worth keeping.
-
Data Perspectives & Representations Computation, data, storage and interfaces are four views of one thing. Confusing them is where software design quietly fails, long before the code does.
-
External Services Integration Strategies Five integration use cases and ten strategies, from single sign-on and service locators to ETL, APIs and connectors. How to choose before you wire it up.
-
Where Programming Ends and Engineering Starts Programming is not engineering. Where architecture and design actually begin, and what an engineer leaves behind that a merely competent coder does not.
-
The Plan of a Software Solution Every problem has many possible software solutions, and they are not equal. What a solution plan contains, and why planning rules out the bad ones early.
-
The Dimensions of a Software Solution Logic, structure, locality and technology: the four dimensions every software solution is decided along, and the trade-off each one forces you to make.
-
The Levels of Abstraction for a Software Solution Six levels of abstraction, from business product down to physical operation, and how to tell which level a decision belongs at before you argue about it.
-
The Granularity Scale for Code Structures Nine degrees of code granularity, from enterprise down to method. A scale for settling where a responsibility belongs instead of debating file layout.
-
The Need for Different Execution Localities Why a single execution locality is never enough, and how performance, reliability and security push a whole system across cores, hosts, zones and regions.
-
The Selection of Technologies for a Solution Reuse, buy or build: three technology strategies, and six factors — maturity, resources, licence, knowledge, control, runway — for choosing between them.
-
Tangibles in Software Development Products, systems, modules, packages and services: the tangible things a plan has to produce, and how the whole seven-part method finally fits together.