Things to consider during software development - these are living documents that will be updated as I learn more or evolve opinions.
Software Development
A Game Plan for Product and Software Development
A Game Plan for Product and Software Development The Premise Most software problems are not technical. A team that consistently delivers working software, …A Pyramid Principle Structure - Software Engineering Excellence
This attempts to apply the McKinsey Pyramid Principle to these software development thoughts and practices. Amazon Affiliates Link Buy on Amazon The Pyramid …Breaking Down Problems
Breaking Down Problems — Decomposition as a Core Skill Why It’s a Skill, Not a Step Decomposition is often treated as a planning activity — something that …Clean Architecture
Clean Architecture The Core Idea Clean Architecture, articulated by Robert C. Martin (Uncle Bob), is a way of organising code so that business logic is the …Coding Tips — Principles in Practice
Coding Tips — Principles in Practice These tips are the everyday expression of everything covered in this series — the micro-decisions that, made consistently, …Cognitive Load
Cognitive Load — The Hidden Cost of Complexity What It Is Cognitive load is the amount of mental effort required to hold and process information at any given …Collaborative Development
Collaborative Development — Beyond Strict Pair Programming (updated to include mentoring and teaching) The Spectrum of Collaboration Traditional pair …Configurable Systems
Configurable Systems and the Right Abstraction The Core Idea There is a class of problem where the right move is not to write another solution, but to recognise …Continuous Integration and Delivery
Continuous Integration and Delivery The Problem with Infrequent Integration Imagine two developers working independently on the same codebase for two weeks. …Decision Making
Decision Making Under Uncertainty The Problem With Deciding Too Early Architecture decisions are made at the worst possible time. At the start of a project — …