Suffering-Oriented Programming (2012)
a year ago
- #software-development
- #realtime-systems
- #risk-management
- Suffering-oriented programming is a development style that reduces risk by ensuring you only build technology when you feel the pain of not having it.
- The approach follows a mantra: 'First make it possible. Then make it beautiful. Then make it fast.'
- In the 'make it possible' phase, focus on solving immediate problems directly without overengineering, learning the problem space through hands-on experience.
- The 'make it beautiful' phase involves creating elegant abstractions based on deep understanding and diverse use cases, avoiding overfitting or underfitting solutions.
- The 'make it fast' phase is about micro-optimizations and refining code for efficiency, only after the design is solidified.
- Storm, a realtime computation system, was developed using this method, evolving through iterations and refactoring to handle new use cases.
- Suffering-oriented programming emphasizes refactoring to prevent complexity and values real use cases over speculative future-proofing.