One Feature Per Day.
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:
- net new: a new piece of functionality,
- fixes: restores a broken feature, or
- 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.