Software Analogies
~2 mins read
“All models are wrong but some are useful”
A common one is the car analogy.
The engine, transmission - Server-side/Backend
The chassis - Client-side/Front End
Dashboard - Analytics
Interior controls - UI design
The overall feeling of driving experience - UX
Warning Lights - Monitoring
A second analogy empasizes iteration,
From a skateboard, to a scooter, a bike, a motorbike, a car, ..
A third one is film-making, it is sometimes more natural since manufacturing implies tangible products, software is closer to a movie in many ways
Examples from https://lostechies.com/rodpaddock/2010/04/15/film-making-a-better-software-development-metaphor/
- Requirements/Design
- Treatments – RFQ/RFP
- Scripts – Detailed Requirements
- Green Light /Red Light
- Budget – Budget
- Schedule – Schedule
- Scope – Scope
- Team Parallels
- Director – Principle Software Developer
- Writer – Analyst
- Special Effects Supervisor – Research and Development
- Camera Operator – Software Developer
- Producer – Project Management
- Project Size Parallels
- Trailers – Demos/Prototypes/Spikes
- Shorts – Stories
- Television Shows – Deliverables
- Features – Projects
- Trilogies/Epics – Large Projects
- Requirements/Design
- Scripts – Detailed Requirements
- Scenes – Stories
- Shot Lists – Project back log
- Pre Production – Project initiation/planning
- Story boards – Mock ups
- Animatics – Prototypes
- Principle Photography – Software Development Process
- Setups – Iteration development
- Cutting Room Floor – Cutting features
- Post Production – Project Delivery
- Reshoots – Rework of current features
- Cutting Room Floor – Cutting features
Software is also similar to craft and mathematics, too
A building metaphor is also used, software “architecture”, software “development”
There is no best analogy, if it helps to explain or understand, it’s useful.