Hasty Briefsbeta

Bilingual

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.