Skip all the extra steps and just take a shortcut, and you'll fix one problem today -- and tomorrow you'll run into three consequences of this shortcut, and have to take yet more shortcuts. The next 25 problems that cross this path will be just as hard, and they'll require their own shortcuts.
But fix the 5 sub-problems necessary to fix this the Right Way today (no matter how crazy), and at the end of the day, you will have the Right Fix in place. Plus, you'll be one step closer to solving those 25 other problems that cross through this path.
When solving a problem, you always get to choose whether to take on more tech debt, or pay off some existing tech debt. People almost never choose to pay off tech debt, so every step is one step closer to that inflection point where the entire project is too complex for anyone to work on, and you have to scrap it and start over.
But fix the 5 sub-problems necessary to fix this the Right Way today (no matter how crazy), and at the end of the day, you will have the Right Fix in place. Plus, you'll be one step closer to solving those 25 other problems that cross through this path.
Unless tomorrow you learn you need to build something completely different. This is an age old debate, and doing it technically "Right" isn't the be-all-end-all. "Move fast and break things" is dumb, and so is it's inverse.
Now, that doesn't mean the truth is the happy medium. It's somewhere in between, weighed to one side. I don't know which. But this is a tension, and I don't think we can afford to ignore either side.
Which side it happens to be is on entirely context-driven. If the object of "yak shaving" happens to be a mathematical proof, then the yak must be shaved. But if you have to get a system working within five minutes to stop your company losing ten million pounds, then the yak can remain unmolested.
Sometimes there's an easy way around. With the article's example, you buy an EzPass (or call the tolls-by-mail number & pay the extra fee for that vs EzPass). Then you don't need to borrow your neighbour's EzPass, or return the pillow, or restuff the pillow, or shave the yak. Likewise for many real systems, often one of the intermediate steps has a better alternative.
I guess the "art" lies in quickly identifying where you can take the shortcut and where you shouldn't. The best way to see this is to look at a competitive environment where most people are just as qualified at achieving the result whether by the book or by cutting the occasional corner. You'll notice that what sets apart the best is that they seem to know exactly when to use each method. It's like a rally, some corners you can cut, some you can't. Knowing which is which will save you precious seconds.
I've seen people trying to do it exclusively by the book at all times and everything felt like a school bus in an F1 race. Yes they eventually finished but always guaranteed to be too late to be useful.
Far more rarely I've seen people trying to go the shortcut route exclusively. This has far worse results, like an F1 car trying to take kids to school. It might get there fast but sooner or later it will hit a wall. Evolution weeds out these cases a lot faster.
Comments
Having tried both ways, I have the opposite view.
Skip all the extra steps and just take a shortcut, and you'll fix one problem today -- and tomorrow you'll run into three consequences of this shortcut, and have to take yet more shortcuts. The next 25 problems that cross this path will be just as hard, and they'll require their own shortcuts.
But fix the 5 sub-problems necessary to fix this the Right Way today (no matter how crazy), and at the end of the day, you will have the Right Fix in place. Plus, you'll be one step closer to solving those 25 other problems that cross through this path.
When solving a problem, you always get to choose whether to take on more tech debt, or pay off some existing tech debt. People almost never choose to pay off tech debt, so every step is one step closer to that inflection point where the entire project is too complex for anyone to work on, and you have to scrap it and start over.
Unless tomorrow you learn you need to build something completely different. This is an age old debate, and doing it technically "Right" isn't the be-all-end-all. "Move fast and break things" is dumb, and so is it's inverse.
Now, that doesn't mean the truth is the happy medium. It's somewhere in between, weighed to one side. I don't know which. But this is a tension, and I don't think we can afford to ignore either side.
Which side it happens to be is on entirely context-driven. If the object of "yak shaving" happens to be a mathematical proof, then the yak must be shaved. But if you have to get a system working within five minutes to stop your company losing ten million pounds, then the yak can remain unmolested.
Sometimes there's an easy way around. With the article's example, you buy an EzPass (or call the tolls-by-mail number & pay the extra fee for that vs EzPass). Then you don't need to borrow your neighbour's EzPass, or return the pillow, or restuff the pillow, or shave the yak. Likewise for many real systems, often one of the intermediate steps has a better alternative.
I guess the "art" lies in quickly identifying where you can take the shortcut and where you shouldn't. The best way to see this is to look at a competitive environment where most people are just as qualified at achieving the result whether by the book or by cutting the occasional corner. You'll notice that what sets apart the best is that they seem to know exactly when to use each method. It's like a rally, some corners you can cut, some you can't. Knowing which is which will save you precious seconds.
I've seen people trying to do it exclusively by the book at all times and everything felt like a school bus in an F1 race. Yes they eventually finished but always guaranteed to be too late to be useful.
Far more rarely I've seen people trying to go the shortcut route exclusively. This has far worse results, like an F1 car trying to take kids to school. It might get there fast but sooner or later it will hit a wall. Evolution weeds out these cases a lot faster.