Skip to content

Latest commit

 

History

History
33 lines (19 loc) · 1.21 KB

File metadata and controls

33 lines (19 loc) · 1.21 KB

Educated guess vs Fortune telling

TL;DR. Instead of wasting effort designing for an uncertain future, you should design your code to be replaceable.

Don't outrun your headlights

In software development our headlights are limited, we can't see too far ahead into the future.

Take small steps - always

Always take small, deliberate steps, checking for feedback and adjusting before proceeding.

Try to stick educated guess, not fortune telling / wild speculation.

You can find yourself fortune telling when you have to

  • Estimate completion dates in months
  • Plan a design for future maintain/extend-abilities
  • Guess user's future needs
  • Guess future tech availability

But how are we supposed to design future maintenance? Only as far ahead as you can see.

🔥 Instead of wasting effort designing for an uncertain future, you should design your code to be replaceable.

Making code replaceable will also help with cohesion, decoupling, and DRY, leading to a better design overall.

And at the end of the day, there's always the chance for a black swan around the corner.

Headlights

References:

  • The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition (2nd Edition)