4 ms·
This is a nice fantasy, but in practice, you walk away from one dumpster fire, and either 1. walk into a new one or 2. write another one. I've done both multipl
by marktangotango 7y ago
This is a nice fantasy, but in practice, you walk away from one dumpster fire, and either 1. walk into a new one or 2. write another one. I've done both multiple time. It's inevitable really, when "legacy" means "code I didn't write" and especially with the evergreen groups of developers we have now (5 year "seniors"). It's amazing to me how otherwise competent, well intentioned teams can use best practices and still create balls of spaghetti.
- james_s_tayler 7y agoI'm beginning to think there are no best practices, only best executions.
- hinkley 7y ago'Best practices' is to developers as belly rubs are to alligators. There are a few of these phrases that seem to trigger some sort of docile reaction out of us. We should probably get that checked out.
- james_s_tayler 7y agoAgreed. I've noticed the exact same thing with the phrases "increases productivity" and "increases maintainability" Because what I've also noticed is true with respect to both of those phrases is... It. Never. Actually. Does.
- jacobush 7y ago"I'm beginning to think there are no best practices, only best excuses." I read it like that at first. Think about it, it's also very true.
- iamaelephant 7y agoIt's. Not. Inevitable. I'm sorry that that has been your experience, but it doesn't have to be this way.
- hinkley 7y agoAs I implied above, I do think there is a point of no return, though. I didn't always feel that way, but you can only be accused of "tilting at windmills" so often before you re-evaluate. I don't think I have gotten properly intimidated by a piece of code since year 2 of my career. I had never encountered a knot I could not untangle (and harbored a feeling that Alexander the Great was a coward for using his sword). But now I have encountered knots so tangled that the most pessimistic estimates for a rewrite (but only with all new people) would be faster, and I can now sympathize with Alexander. There are only so many people you get to teach in your lifetime, and only so many projects. If you only take the easy ones you never grow and you will reach fewer people. But if you take every hard luck case you also won't get far either. A working relationship can be broken the way a married couple can be wrong for each other. Sometimes divorce is the correct course of action. It's not enough to be right, you have to be productive too. And sometimes you only get both if you move toward people who are closer to agreeing with you.
- hinkley 7y agoI’ve seen enough people who are in love with their excuses to know that some places are just going to have legacy code. If I stay there, there is some other legacy code lover who is going to take a job bothering another team that would have been happy to have me. Nothing is perfect anywhere, sure, but there are degrees. You get the spaghetti when you take your eye off the ball. When you start making excuses for why we are going to do dumb things just “for now”. And by the time you notice the three year old comments that say “this is temporary”, well, your processes are set. This is the culture, and if you make a stink, people are thinking more about “why now” than “why not”. The only way I know to get out of that is starting the conversation early about how we can do the things we always do faster and more accurately, and how we can do things we’ve never tried before. But that tree takes a while to bear fruit. And it requires coworkers who are willing to try something new, because for sure as shit nobody has shown them how to do this before.