Oh, I couldn't build it, so I checked it in.

One of our 'Super Senior Staff Engineers' recently checked in the changes to a hardware interface library. He wrote the software layer that talks to the hardware across USB, and allows other applications to interface with it.

Except, after his check in, all the build servers started failing and none of us could run it at our desks or on the systems due to his component failing to build.

The project leads spoke to him, he assured us that it works fine, and that the server just needed to be refreshed manually as it obviously wasn't building things properly.

Today I got fed up and started digging into it. Found several .cpp files that had no #includes in them (not even for their own headers!), so they obviously were failing as they didn't have any clue as to what these classes, structures, and enums were. Also discovered that he neglected to add include paths for the new libraries he included as well.

His excuse? "Well, no one ever gave me a VS 2010 license, so I couldn't build it"

How is this even a valid excuse in anyone but an intern's mind?! If you don't have a VS 2010 license, freaking request one. Even so, you have a 2008 license, and it doesn't build there either!

Wish I could say this was a first, but it happens every time he checks in. It's pissing me off. I have more important things to do than run around fixing problems just so I can fix the problems I'm supposed to be working on!

I mean, never mind that all of this was supposed to be done back in May.

Wish I could say this was a first, but it happens every time he checks in. It's pissing me off. I have more important things to do than run around fixing problems just so I can fix the problems I'm supposed to be working on!

Don't fix the problems; fix the source of the problems. With extreme prejudice.

When the Dead do walk seek water's run, for this the Dead will always shun.swift river's best or broadest lake, to ward the Dead and haven make.if water fails thee, fire's thy friend, if neither guards it will be thy end.

Me: implementing hallway monitor of unit tests Why is the test runner on Platform X dying? Oh. Looks like they committed breaking changes to demo without telling me.Dev team: Oh yeah, we did.Me: Fixing broken paths caused by moving files Hey, you're doing blah blah blah now, how do you want the runner to work?An hour of circular discussion passesDev team: Okay, so let's do that.Me: Great! Does my half of the changes My half's ready and committed and I'm going home.Dev team: Cool, we'll get our half in on Monday.MondayMe:... why is this erroring in demo? checks logs Huh. I guess they committed all of our changes to demo. And it's still broken. Their half doesn't work like I thought we agreed it would. Did they actually verify the fix?Dev 1: The intern did the fix.Intern: The team lead told me to fix it this way.Team lead: The intern has no idea what he's talking about.Me: Whatever. Do you want solution A or solution B?An hour of roundabout conversation passesTeam lead: A.Me: Great, I'll get that in.TuesdayDev 1: Why am I seeing failures on the monitor?Me: Because tests are failing in demo.Dev 1: They all pass on my machine.... To her credit, she followed that with I'll see what's changed and get back to you.Me: Great!Dev 1: Turns out when Dev 2 said he removed bad tests, he didn't.WednesdayDev 1: I got Dev 2 to remove almost all the failing tests. We're at 90% pass now.Me: Yay!

TLDR: Nobody runs unit tests until there's a montior in the hallway blinking red at them.

The problem was that they were requesting production resources, which were 404'ing on the demo box. Dev 1 saw that, promptly declared the whole test stupid, and told me she was going to "remind" Dev 2 why we don't do that in unit tests. So probably the test should have been removed