Breder.org

Make the work easy, then do the easy work

What I often find distinguishes more experienced from less experienced software developers is the skill of the former to avoid falling into rabbit holes.

This requires framing the problem as a composition of simpler sub-problems with simple and known solutions.

Instead of bravery and tackling the obvious big problem head on, approaching from the outer edges, achieving some easy victories, and gaining some experience and progressively tackling harder problem is not only smoother, less risky, but faster in the general sense.

Make your first task be “How can I make this easier?”, “What's the next step on making this easier?”, “How can I track daily incremental progress?”.

Don't get caught up in bike-shedding. Progress has to be made. Just be willing to take “making later progress easier” also as a sign of progress.

Breaking it down is the only way of making large and complex problem tractable.