levlaz

How to Ship a Simple Feature in Two Months

2016-08-21 Tags: braindump

I started working on a feature to allow users to remove notebooks in Braindump two months ago. What started as adding an additional link and a corresponding flask endpoint to handle the deletion has turned into a horrible long running branch that I have no idea how to get out of. This is a common trap that I fall into, and I have seen other developers struggle with the same issues.

Scope

Add a Feature to allow users to remove notebooks.

Implementation

Easy Peasy, here is a link to delete notebooks. Ship it.

Side Tracking

Well, while we are here, maybe we should use the new "card" style that is hip now. Hmm, wait, this looks stupid in purple. Let's make it blue. The cards look great, lets make the rest of the site blue as well. Ok it looks awesome in blue. Have not looked at CSS in a while, maybe we should refactor it, switch to SASS and concatenate all of the CSS into a single file. Oh crap, doing this breaks the outer theme compared to the inner theme since they were defining rules for the same elements. No problem, I will just rewrite the whole UI again.

30 commits later

What problem was I trying to solve again?

Conclusion

This is actually what happened. No matter how many times I tell myself I will never fall into this trap again, I keep on doing it. Next time will be different. In any case, the new notebook view looks good and allows you to delete notebooks. I hope to have this shipped this year.