Sample Specification

← back home

A working example · For Mrs Froggy, who asked.

Mrs Froggy asked what a proper specification looks like — one that passes the three-implementer test. Here is a real specification for a small garden pond pump controller. Give this to three different engineers and you should get three functionally identical devices.

Specification: GP-100 Garden Pond Pump Controller

Version: 1.0 · Status: Approved · Author: Froggy

1. Purpose

Automate the operation of a submersible pond pump to maintain water circulation, aeration, and filter function in a garden pond. The controller must protect the pump from running dry and must allow the pondkeeper to set operating hours.

2. Scope

This specification covers the electronic controller only — not the pump, the plumbing, or the pond liner. The controller interfaces with any standard 240V submersible pump rated up to 1.5A (360W).

3. Functional Requirements

3.1 Power and Safety

3.2 Water Sensing

3.3 Timer Operation

3.4 Manual Override

3.5 Indicators

4. Physical Specifications

5. User Interface

6. Non-Functional Requirements

7. Acceptance Criteria

  1. Connect a 60W incandescent lamp to the pump outlet. Set ON_1 to start 2 minutes from now for 5 minutes. The lamp shall illuminate at the set time and extinguish after 5 minutes.
  2. Short the probe terminals with a 47kΩ resistor. The DRY LED shall not illuminate. Remove the resistor. The DRY LED shall illuminate and the lamp shall extinguish within 2 seconds.
  3. Cycle mains power. All timer settings shall be retained.
  4. Press MANUAL. The lamp shall illuminate for 30 minutes. Press MANUAL again after 10 minutes. The lamp shall remain illuminated for a further 30 minutes from the second press.

8. The Three-Implementer Test

Give this specification to three engineers: a hardware designer, a firmware developer, and a hobbyist with a soldering iron. If all three build you a controller with the same LEDs, the same timing behaviour, the same dry-protection response, and the same connector pinout — the specification passes.

If one of them asks "what colour should the enclosure be?" or "can I use RJ45 instead of screw terminals for the probes?" — the specification was incomplete, and the gap was in the exact place you can now go back and fill.