Comment by eterm
14 hours ago
Sure, that's frustrating.
But you know what's also frustrating? Code bases which involve multi-step manual steps to build.
You should be able to get a working local environment with a single command.
You should be able to get a working local build with a single build command.
If you have depedent projects, they should either be in a monorepo, or delivered through a packaging system so they are not depend on the specific local naming of other repos.
Having a repo depend on a different repo being in a specific place on the file system is bad, having multiple of them is terrible.
Stick what's needed in an onboarding script, and make sure it works before onboarding someone.
Ideally that script should be kept to a minimum, if it grows too large that's a sign you've split things artificially instead of finding natural splits.
I agree, and there are other fun gotchas that even more frustrating and convoluted. But everything is thoroughly documented and I even explicitly pointed out those potential issues before I gave them the assignment. When the errors first occurred, I pointed out the fix, which was ignored, multiple times. Should it be that difficult to rename a couple folders? The compiler errors were fairly easy to understand: can't find repo2. Is that too much to expect from someone?
In an ideal world and in retrospect, you are right. But the build process is very old, created by someone long gone, of which multiple projects depend upon, each with minor tweaks and always reliant on the same hard-coded paths which IMO isn't that bad and can easily be rectified - it's really not worth the time or energy to allow dynamically named folders, not to mention dangerous since it's a critical production system that's worked forever. Nobody wants to break a running system, nor has the time to clean things up properly, especially since there are tons of build scripts that all rely on these paths, and trying to fix all of them would be a huge amount of work, spread across multiple projects, all requiring sign-off from higher-ups who will never be able to justify the cost to fix something that already works.
I hear you, but I still feel for the coworker, and if I newly joined a company and learned on my first day that they are failing the Joel Test[1] here in 2026, I would get that sinking feeling in my stomach that I made a huge mistake. There is no longer a valid excuse for having a build like that. "It's documented..." and "Nobody wants to touch..." "Not worth it to..." "Can't justify..." are all huge red flags.
1: https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-s...
Nice list, somehow I missed that one. I love Joel's wisdom.
The full build literally works in one step but the main prerequisite is to perform a few git clone commands which can be copy/pasted from the readme. Can't help it if they want to manually do git clone and let it name folders incorrectly and then subsequently ignore compiler errors and my advice to rename. Changing our antiquated workflow would have required changing a lot of other sensitive dependencies. What ever happened to the old adage "never change a running system" ? ;)
And people here are concentrating on our build system, which I will be the first to admit isn't perfect, but this isn't the only instance of me telling this person how to do things, them not listening to me and doing something else, letting me debug only to realize they didn't listen, telling them how to fix, only to be ignored _again_, rinse and repeat. It's unfortunately a recurring theme. I initially thought it was a communication error on my part, but I've heard similar complaints from several other colleagues as well.
2 replies →
With you on this one - I worked with a hopeless tester years ago - gave him a detailed test plan with a nice sequence of steps to follow to set up the scenario. I have no idea why but he decided to do the steps out of order, then wondered why my patch didn't do what it was meant to.
See, I would probably have been the guy that ignores the dest part. On purpose. Just to see whether this pile of poo shits itself and how much.
I would also recognize what happened when I see the error messages though and then silent quit until I've been with you guys for long enough my resume doesn't take a hit just because your interview process duped me into starting at your place.
Yes this sounds harsh. I know. Nothing against you personally. But I've been at too many such places. One can do things better.
haha I would totally empathize with you. But see, you would realize immediately that it doesn't work and why, but you are smart enough to realize it and would just rename the folder (as mentioned in the readme as the very first thing to do), hit build and voila, everything works as expected, instead of sending me log files, letting me debug your errors, ignoring my repeated instructions, waste my time helping you debug, back and forth until finally you just rename and move on. I had to say it 4x before it finally stuck. This guy seemingly wanted to get an initial build done so he could move on to actually fixing bugs. Maybe it's intentional to waste everyone's time so that he can book hours in the system and get paid for futzing around? :shrug:
and btw the system doesn't shit itself that much: the compiler errors are fairly straight-forward: this folder doesn't exist.
Of course everyone can always do better, but it's a legacy inherited system, and works fine, as long as things are named correctly. The readme is actually very short - literally the git commands are there to copy/paste and will create the correct directory names. There are plenty of other things to get hung up on, but naming folders correctly should IMO not be one of them.
1 reply →
at the very least there's no excuse for not having a shell script to check everything out in the right places! I've been the new person in teams with this sort of fragile setup and it's no fun whatsoever.
I agree but it's probably more common than you think. I had a job where the setup involved running one setup command twice because the first time always failed. But that was called out in the documentation so it was fine. The reason it wasn't fixed is because the project was well on the way to being end of lifed so it wasn't worth it at all to fix the crappy set-up process.
> If you have depedent projects, they should either be in a monorepo, or delivered through a packaging system so they are not depend on the specific local naming of other repos.
Git submodules is a thing ...
I'm not a fan of submodules, but indeed that also solves the problem OP described.
Our git master actually considered this, but it would have caused other issues that I can't recall right now, so we got stuck with lots of repos. The readme literally has all the git commands, all they had to do was copy/paste them into the terminal.
1 reply →
It's literally made for this specific case.
edit: removed stupid hack that wouldn't work.
> But you know what's also frustrating? Code bases which involve multi-step manual steps to build.
Yes. That's what bash scripts are for.