31 lines
1.3 KiB
Markdown
31 lines
1.3 KiB
Markdown
|
|
---
|
||
|
|
title: "Is it correct? Is it easy to use? Is it easy to change?"
|
||
|
|
date: 2022-10-09T09:00:52Z
|
||
|
|
slug: 2022-10-09-correct-use-change
|
||
|
|
author: Thomas Wilson
|
||
|
|
---
|
||
|
|
|
||
|
|
Software is improved iteratively. Large changes come through in many small changes. Good software can flex easily.
|
||
|
|
|
||
|
|
I like to think of the large changes as the brightest stars in the sky - they help you navigate the ship.
|
||
|
|
|
||
|
|
You do not want to lose the brightest stars in the sky. Finding them again takes time and effort.
|
||
|
|
|
||
|
|
You need to know what could make you lose the stars just like you need to know how to move towards them.
|
||
|
|
|
||
|
|
You need to know what keeps the stars exactly where they are (what changes are not meaningful or important in the long term).
|
||
|
|
|
||
|
|
The three stars I always care about are:
|
||
|
|
|
||
|
|
1. Is it correct?
|
||
|
|
2. Is it easy to use?
|
||
|
|
3. Is it easy to change?
|
||
|
|
|
||
|
|
**Is it correct?** Does the software do what it's meant to, and what it says it will do. Nothing matters if the code isn't correct. Tests help you write (demonstrably) correct code.
|
||
|
|
|
||
|
|
**Is it easy to use?** Software is used by end-users, but also by engineers. Could a customer easily use the sign up form? Can an engineer easily fire a message into a queue?
|
||
|
|
|
||
|
|
**Is it easy to change?** How easily could an engineer alter an existing behaviour, or add a new one? Will a change in one place cause any unexpected changes elsewhere?
|
||
|
|
|
||
|
|
|