top of page

Precedent

A sophisticated solution, while on the surface a problem to a specific and usually singular problem, is, below the surface, actually a solution to a grand number of things. For example suppose that you are building an app. As you are doing so, there are many things to consider:

  • How will the app scale?

  • How will the code get organized?

    • How can one organize the code for ease of use and discovery?

    • How will one document the code?

    • How will one make different components reusable?

  • How will we deal with security?

  • How will we deal with theming?

  • How will we onboard new folks?

  • How... you get the idea

In short, when we build great things, we are in fact satisfying an amalgam of different requirements and wants. And this means that when we bring new people onto the project we must ease them in by giving them precedent to copy, paste, and modify. Why? I'll give you three separate reasons.


1. Avoiding Reinventing the Wheel

Being able to know how to satisfy all of these constraints all at once is no easy feat. You, or whoever you learned from, would've gone through a great deal of trial and error to find the way in which to balance all of these things out, all at once. So even if you could somehow hand someone this full context all at once, actually having them develop a solution that deals with all of these would be asking them to go through the process of re-solving all of this. If instead you give them something to copy, paste, and update, they can solve just the new part of the problem instead of having to re-break all the ground you've already broken. And just imagine how slow things can get when every new person who comes along has to go through the months of trial and error each other person went through, just to get going. Providing precedent allows folks to build on what has already been figured out.


2. Avoiding Overexposure

In the above we assumed the person in question could just absorb all of the intuition, constraints, and goals all at once. But this is a ridiculous assumption for several reasons. First and foremost it would just be overwhelming - no one, and I mean no one, is just going to be able to absorb all of that in one go. So not only would they be overwhelmed when you try to shove it all into their poor brain, but when they invariable miss things and don't incorporate all that is needed into what they are building, you are likely going to have to tell them to throw much of their work away and try again - which is incredibly demoralizing. But, even if they could, in theory, absorb everything all at once there is another problem - communication, especially this kind of communication, is always lossy. No matter how hard you try there will always be things that end up miscommunicated, misunderstood, or just missed. And the only way to find those things is to act on the passed understanding and see where differences pop up.


So imagine instead if we could give them all this context one bit at a time, iron out the misunderstandings, and then go onto the next layer of the context cake. This would make things far less overwhelming, lead to small changes rather than demoralizing restarts, and allow people to understand things bit by bit until they understand the whole picture. This is also accomplished by providing precedent. By allowing them to copy, paste and modify they can focus on one part of the context while the thing they are copying takes care of the rest. Then over time they can come to piece together the whole puzzle.


3. More Immediate Productivity

Obviously another way of solving the above problems would be to give folks toy problems to solve. But toy problems rarely lead to real productivity - they are learning tools only. By giving someone something that's more or less complete they can still learn in a comfortable environment while also contributing back to the main project. This is obviously better for everyone involved. The person learning gets to know they contributed and folks can be helpful right from the start.


Conclusion

Precedent - giving people something they can copy, paste, and transform - ensures that people can get running right off the bat, learn without getting overwhelmed, and prevents useless attempts at reinvention. Failing to provide it just sets folks up for long periods of time having to rework things over and over again, all while feeling they don't understand what's going on and that they aren't contributing meaningfully. So it goes without saying that when developing new members of a team you must pave the path with precedent. Anytime you cannot point to something they can copy, paste, and update means you should stop, pause, and look for precedent.


Comments


bottom of page