The Zero (0) Complexity Business IT Design principles
Architecture and design principles for preventing unnecessary complexity in business IT systems, focusing on simplicity, human needs, and maintainability.
-
Put People first!
Technology should serve human needs, not the other way around. Design decisions must prioritise the people who will use and maintain the system.
-
Only use what you understand.
Avoid adopting technologies or patterns you cannot fully explain. Understanding enables better decisions and easier troubleshooting.
-
Define specific criteria that are tangible to measure complexity.
Establish clear, measurable indicators for complexity so you can objectively assess whether a solution is becoming too complicated.
-
Create a model of your solution
Visualise and document your architecture before building. Models help identify problems early and communicate intent clearly.
-
Separation of concerns
Keep different responsibilities in distinct parts of the system. This makes components easier to understand, test, and modify independently.
-
Reduce all waste.
Eliminate unnecessary features, code, and processes. Every element should serve a clear purpose or be removed.
-
Problems should be fixed through simple solutions.
Resist the urge to add complexity when solving problems. The simplest solution that works is usually the best one.
-
Design for change.
Build systems that can adapt to new requirements. Assume that needs will evolve and plan for modification from the start.
-
Make sure you can manage IT!
Only implement what your team can realistically operate and maintain. Unmanageable systems become liabilities.
-
Privacy by design.
Build privacy protections into the architecture from the beginning, rather than adding them as an afterthought.
-
Never over engineer
Build what you need now, not what you might need later. Speculation about future requirements often leads to wasted effort.