One Feature Per Day.

Principles

Expanding on the idea to πŸ‘‰ Deliver one feature per day:


Definitions & Guiding Principles

  • 1οΈβƒ£πŸ“† A "feature," in this context can fall into any of the following categories:
    1. net new: a new piece of functionality,
    2. fixes: restores a broken feature, or
    3. enhances: adds to existing feature(s).
  • Generally, I prioritize them in above order.
  • πŸ§©πŸ‘ In this way, I favor solving my own new problems (net new), maintaining my solutions for problems (fixes), and extending my solutions in creative/useful ways (enhances).
  • πŸ”§βœˆοΈ While build the plane as I fly it, I find it useful to engage in lightweight planning. I find this is best done via πŸ–ŠοΈπŸ’» whiteboarding, prior to coding.
  • β–ΆπŸ“– By Action > Documentation, I try to avoid putting down too many words on paper that are not code or configuration components, which will have chance to directly solve my problems.
  • I recognize that not every problem can, nor needs to be, fixed by code.
  • πŸ”„πŸ“š I use version control so I can safely experiment and restore. I also back up my data periodically--first manually. Once the solution proves itself worthwhile, I can invest time to build building automated back-up mechanisms.
  • βš’οΈπŸƒ I hack together the quickest possible solutions so that I can get it into my hands, and use them as fast as possible. I try to use the solutions on a daily basis -- if I don't (or can't), then why the hell am I building them?

The One Feature Per Day "Manifesto"

  • 1οΈβƒ£πŸ“† Deliver one feature per day.
  • πŸ§©πŸ‘ Solve my own problems.
  • πŸ”§βœˆοΈBuild the plane (& plan) as I fly it.
  • β–ΆπŸ“– Action > Documentation.
  • πŸ–ŠοΈπŸ’» Whiteboard > Code.
  • πŸ”„πŸ“š Use version control.
  • βš’οΈπŸƒ Hack. Use it.