"It is your responsibility to prepare the way for those who will follow."
The idea that as part of the great chain, we have responsibilities and obligations to future generations
is expressed many ways in different religions,
philosophies, and organizations.
A Boy Scout's saying captures the idea nicely:
"Leave a campsite cleaner than you found it."
raises the bar, teaching that as ground-breakers, we have
the additional responsibility of leaving a well-marked, safe trail in our wake as we trundle off into the wilderness.
This is what the Pattern Community is about.
As a guiding principle in software development, PrepareTheWay
generates behaviors such as:
- Making careful, thoughtful plans, to maximize the chances of project success, to help the team avoid frustrating surprises, and, more importantly, to teach the junior team members how to plan
- Writing readable, appropriately-commented code that some future owner might actually enjoy learning from and extending
- Improving (or at least writing down) processes, so that folks don't get snagged on the same rough edges you've hit
- Taking the time to help the new kids learn the ropes
- Being honest and open about the good news and the bad.
Over the years, the people I've most enjoyed working and interacting with have held to this philosophy.
Moved from MethodCommenting
Preparing the way for one's later self, or for a later visitor of equal competence, isn't a bad idea. I've particularly appreciated finding comments of the
I've looked at this algorithm and don't understand it
variety. Someone had the foresight to leave a red flag, saving me (possibly years later) a lot of head scratching. --DaveSmith
as ground-breakers, we have the additional responsibility of leaving a well-marked, safe trail in our wake as we trundle off into the wilderness.
This sounds like an onerous restriction, saying "If you ever, on a lark, hike into the forest in a random direction, you have a professional obligation to put down bicycle-friendly concrete and occasional guard rails along your path". If everyone really felt this way, people would rarely venture off the main trail, and the few who did would soon pave the forest floor (with occasional gaps for the trees).
Or are you merely implying "If you find the start of a trail has a sign indicating it is safe for bicycles and small toddlers, but it isn't (it runs through sheer cliffs and high bridges across deep rivers without any handrails, and through an entire field of poison ivy), you are obligated to improve it in some way -- at least fix the sign at the beginning to correctly indicate the danger" ?
you also need to prevent those that follow from going down the Primrose Path. TheRoadNotTraveled
is an excellent treatise on how not
to do something. This works particularly well when you have notes and even code fragments that demonstrate the approach you tried and why you abandoned it.
On the other hand, we don't want to completely box people in to force them to use only the "safe" path.
Sometimes the risks are so miniscule (worst-case scenario: I squandered an entire hour of my life, I had to restore my machine's state to the backup I made an hour ago, and I got a bunch of stick-tights in my socks) and the benefits are so great () that it's worth getting off the beaten path, and leaving the path in its natural state for the next traveler.