Spite Driven Development

Spite Driven Development (SDD) is my preferred development methodology. I have found it by far my most productive style of software engineering, and has been responsible in whole or part for most of my projects (see: Penultimate Guitar, Minecraftle, Alculator, Status Messenger).

While it is extremely effective for building software quickly, it is often destructive to other aspects of one's life, such as healthy eating, relationships, and especially sleep.


I got mad at a competitor/company with shitty practices/friend/existing tool. Spend multiple days (likely straight) writing code to spite them. Spited them. git push

Spite Driven Development Cycle

  1. get mad
  2. think you can do it better yourself
  3. feel the need to prove you can do better
  4. git init
  5. design feature with a scope exactly commensurate to your anger
  6. forgo loved ones and human interaction
  7. finish feature
  8. git commit
  9. see 5
  10. deploy
  11. see 5
  12. run it 40 times just to watch it work, analogous to injecting dopamine directly into your veins
  13. rest



Non Goals

Sustenance, testing, clean code.

Development Frameworks

Much like how ruby+rspec is very well suited to test driven development, many frameworks are well suited to SDD. Whichever framework you know is the ideal framework for SDD. Time is of the essence and you have no-one to please but yourself. Spite burns hot but it burns dirty, and it is not a renewable resource. Your must strike while the iron is hot and complete the project before you are sapped of the hatred that caused you to start the project.