56 posts tagged “vogons”
On Saturday morning (yes, I work 6 days a week now), I got this e-mail (replicated here in full) from the project's director, in response to an e-mail I sent out detailing some issues with our project:
We need to get the issues in Train resolved first. Who is working on these issues from the dev team?
Excuse me? Who's the director here? Me or you? I suppose the question could have been directed at his counterpart on the contractors team, but he sent this fantastic one line note to me an hour later (with a CC back to original director):
I am going out now so please follow-up with [Team Lead A] & [Team Lead B].
Again, I have to ask, who is running this project? Me? Because if it is, where's the fucking money? And why can't I fire the 3/4 of the dev team who consistently fuck up? The ones who contribute little or nothing to the project? The ones who actually cause more issues than they resolve? The ones who wrapped perfectly good checked exceptions inside of useless unchecked exception because it was "easier" (for you non-programmers, it's like wrapping a hammer in a feather pillow - completely ruins the tool for what it's supposed to be used for)? Why can't I impose process? Why can't I demand the "A game" from the other teams?
Why am I the one getting yelled at for being unprofessional?
Why am I the one being criticized for not taking ownership?
More rope?
Anyone who's been reading this for the last couple of months knows that I work with, and let's be polite, Gumbies. Here are my coworkers in action:
Yesterday, I went to lunch with some of my fellow team members. I got to talking with one of the few competent devs on this project, a lovely young lady, and Spurs fan (she's young, she'll learn eventually). One of the Gumbies is her team lead. We got to chatting about the deployment date for our application. Our current deploy date is the 19th. I don't have high hopes of it. But I am doing my best to meet the date, because that's what I do. It's OK to doubt the date. If you're an adult, you are probably capable of being trained. And we've all been trained on this project to doubt the date using simple repetition techniques. But we're also responsible for being ready for the date, just in case.
Not so for Gumby Team Lead. She told her team members that the 19th probably wasn't going to be the date. Oh, sure, officially, it is, but it probably won't be, she said. She took pains to stress that. So now, her team doesn't think they have to meet the deadline. This dev I went to lunch with was confident that the 19th wasn't the date. It's not surprising, really, since Gumby's team has the largest number of chronic deadline flaunters on the project. Most of her devs couldn't meet a deadline if you threatened them with a chainsaw. And now we know why: deadlines mean nothing to them, because their Gumby Team Lead has made it clear that there are absolutely no consequences for missing a deadline, whether it's a daily schedule or a project timeline. The 19th? Don't worry about it, it doesn't really matter.
We need to send her for brain surgery. And I really want to be the anesthetician.
Friday was another banner day for me. I got yelled at again. This time for having the gall to say the production environment was ready. Well, it is. I really can't help it if the data in the DB is wrong, or the ESB service hasn't been properly maintained. The connections work. Thus, the environment is ready. The code and the data, maybe not so much, but that's not what I'm supposed to be concerning myself about.
My favorite part was where I was accused of not taking ownership. That I had been, up to the end of March, but since then, not so much. Let's see. What happened that the end of March that might have made me think that getting the production environment working wasn't worth the effort? Oh, yeah, right, being told that we weren't going to production in April. Guess what? The environment hasn't changed at all. Everything that worked in March works now. Once again, it's not my environment that's failing, it's the code and the data, and I'm not going to be held responsible for that. Period.
Vito and I were laughing so hard yesterday, I started having a coughing fit.
Why?
More rope.
See, the development team "leadership" decided that Vito and I, who used to be called build managers, would now be more like build lackeys. They had a meeting on Monday, with no build managers present, where they decided to not have a build schedule. They'd just ask for builds whenever, and, well, Vito and I would simply have to do them. After my less than useful meeting last Friday, and Vito's experiences with attempting to enforce any kind of process, we decided, what the hell, let's just do it and see how long it takes to seriously screw something up.
You know how in those pirate movies there's always that one scene where the captain is fighting the wheel in a storm? And then something happens and he lets go of the wheel? And the wheel just starts spinning out of control and the ship sinks? Well, we're not sunk yet, but that wheel could power lower Manhattan for a month.
We did 10 builds and/or deployments between 11 AM and 7 PM. Every build got worse, because no one knew what was supposed to be fixed by what time. We had complaints from the developers because every time we do a build, they have to update their copy of the code from our code management tool. Each update can take up to 20 minutes, depending on how busy the server is. Considering the build load, I expect it was pretty busy. Updates block all other activities. So that's, let's see, 20 minutes times 10 . . . heck let's just call it three hours per developer of lost productivity. Yesterday. Not over a whole week. In one day.
More rope.
And the builds? Are they even being tested? How can they be? A deployment takes time. The servers have to come back on line. In one instance, Vito finished the automated test scripts and was asked, before he was able to send out the results, to do another build. There's no way that was actually tested to confirm the supposed fixes were working.
More rope.
Almost every build we did had to be done twice because some developer had some extra code to check in. Why? How can we blame them now? There's no schedule for them to even try to adhere to, even if, for the most part, they didn't adhere to it when we had one.
More.
Rope.
We got a suggestion from one of the team leads to put up a sign with the build schedule, because all the e-mails we were sending out were confusing (we announce the build, the deployment and the test resutls - that's at least 30 messages every person on the development team got from us in 8 hours). First of all, what schedule? Second of all, half the devs are on the other side of the building, and won't see the sign. Our counter proposal was for me to hold the sign above my head and walk around like one of those girls at a boxing match announcing the round number. I even offered to wear a bikini. The other counter proposal was to have one of those scrolling LED signs to announce the build schedule like a stock ticker. I'm actually working on that now, to put it on our build SharePoint site. It's required me to get Visual Studio and learn how to make Web Parts. It's a waste of time, because no one is ever going to bother looking at it. But, let's remember, I'm a build lackey now: they ask, I do, that's my role.
More.
The crowning achievement in the world of absurdity was this: Vito, very slowly, very carefully, very clearly, explained that each build was getting worse because there was no coordination, and no one could tell when anything was going to happen, or what fixes were supposed to go in which build. Case in point, one of the introduced failures was because of some updates that went in without the knowledge of any of the team leads because the team leads spent all day asking for builds, rather than LEADING their TEAMS. The team lead's response? "Why is it like this?" My jaw very nearly dropped right off my face. Vito just explained it to you. Do you want pictures? A pop-up book? 101 Ways to Fuck a Project in the Ass? Perhaps a copy of Listening Skills for Fucking Retards?
Rope.
Vito and I were literally falling out of our chairs laughing about this.
The best part? I worked 15 hours yesterday. Fat load of OT. And we accomplished exactly nothing. And today looks like it's going to be another side-splitter.
So, I just need to survive here until the end of July. I made myself a reminder.
I put this new philosophy into practice over the weekend. I gave them everything they wanted. Maybe not on the schedule they asked for, but they got what they wanted eventually. Complaints? There will be some, I'm sure, but at this point, I'm beyond caring.
I guess that's really what they want from me at work. Not an employee. A nanny. Who never gets upset with the children, no matter how many times she tells them not to wipe their nose on the sofa. Do we make the devs manage their own code merges? No. Let the build team do it. Do we make the testing leads learn how to use the tools the company paid so much for? No. Let the build team hand them their updates on a silver platter. Do we trust the team leads to come to some sort of consensus about when they'd like the next build? No. Let the build team just do whatever is asked of them, even if it makes no sense, or isn't possible, or simply wastes time.
Must be nice being able to rely on the build team to do everything, and take the blame for everything, and ignore them when they make suggestions to improve the process.
And if one of them happens to lose their temper, well, let's not wonder why, or even try to fix the underlying situation. Let's just scold him for being unprofessional.
Yes, that was me today. I'm not a very good nanny, apparently. Curse my desire to hold people to a higher standard.
I've blogged around here a couple of times about the awards I've been getting lately both on the project and within the wider company setting. Well, I've decided that, apart from the monetary gain, the awards are pretty worthless. Why? I've found out who else has gotten the same awards. And, for the most part, it's developers that couldn't code their way out of a paper sack, and "leaders" who think getting everyone to jump off a building is setting a good example. One of the Tiger Awards was given to a developer on the project whose list of achievements were mostly accomplished by getting someone else to think for him. That someone else often being me. And my Leadership Awards? Another developer on this same project has one, and I know for a fact that his idea of leadership is to cause problems which he then fixes by getting someone else to do the work for him. Seriously, if you're going to give out these awards to, basically, dead weight, don't bother giving them to me.
Inanimate carbon rod indeed.
Not sure if this trucker is pro-fat-cat or anti-all-cats (he was next to me at a stop light).
Anyway, we got the Magnum back from the body shop. Looks fine. Of course, as I was driving in, I saw yet another person trying to kill me. She was using an eyelash curler while driving. Seriously, can I not just shoot these people in self defense?
It was to be a wonder to behold. We were going to meet up with our friends in San Diego. We had two rooms booked at a hotel, the plan was for us to get there first, maybe spend the day Friday at the Wild Animal Park, and then meet them either at the hotel or at the airport. Then, maybe the San Diego Zoo on Saturday, Seaport Village on Sunday, and we'd drive home Monday, mid-day, to make it home early, get some stuff done, and relax a little before my job jumped me again on Tuesday.
That was the plan.
Unfortunately, it's not how it worked out.
On Thursday night, my job interrupted my life until about 10 PM. And I still had to pack. The sad part? The team leads asked me to reopen a closed stream, to allow for some fixes, and then put the build up for testing. That was at 3 PM. I was set to leave at 4. I was more than a little annoyed, and decided not to hide it this time. I said, "Seriously? You want to start this now? We're all going to be up until midnight, again. The people you're asking me to add to the list of allowed people are known hazards to our stable code. I'm leaving for San Diego tomorrow morning, and I'll need some sleep beforehand, so, you know, this is quite possibly the most idiotic idea I've heard in a month. What do you all not understand about the concept of code freeze? Do it tomorrow, when everyone is fresh, and I'm safely away from here."
Nope, they insisted, and rather than just walking out like I should have, I helped, with horribly bad grace. I was annoyed, and I made sure everyone who had to call me, talk to me, whatever, knew it. At one point, I was IM'ing with one of said hazards, and he asked me for my phone number to call me. Would it have been easy to tell him over the IM? Sure. But I wasn't feeling helpful to people who just don't want to put in the effort, so I told him that my offsite contact number is on our contact list. And on Accenture's directory. And on the bottom of every e-mail I have ever sent to anyone on this project since the first day I arrived, so go. And. Find. It.
He did, he called, we chatted about how his code broke my build. Again. And how long it was going to take to fix it. Again.
At 10 PM, we sort of declared that we were done. All I had to say was, "Really? And it's not even midnight. For once." >>click<<
So, I packed, and we pushed back the plan to leave by a couple of hours. This meant that we were leaving town at the height of rush hour, instead of before, like I had originally wanted. This had dire consequences.
As we were passing under the last bridge before our exit, I noticed a van changing a tire off to the side of the road. I generally don't pay such things much attention, because they're not in front of me, and they're not moving. The driver ahead of me clearly didn't think as I do and had to come to a rapid stop. So, I stopped as well. Didn't hit the car in front of me . . . but the driver behind was much like the driver in front, and did hit me. I don't think I've ever been more pissed. I'm leaving on a vacation. I'm somewhat lacking sleep. I'm just coming off some major stress at work. I have my kids and my pregnant wife in the car. And yet again, some moron who isn't watching where the fuck they're going has hit our Magnum. This is 5 times now, and the third time when we're supposed to be on our way to California. Well, we called the police, and I sat my ass in the car fuming and imagning burying a tire iron in this (it turned out) woman's head. The police arrives, he takes the info, and he moves us off the freeway. Just in time as well. As the three of us were preparing to move, an SUV comes to a screeching, tire-smoking stop to avoid the stopped traffic in front of him (or her) because, like the two drivers I was sandwiched between, what was happening on the side of the road was apparently more important than what was happening in front of him. Morons!
We get checked out by emergency services, but, since the wife is pregnant, it's only prudent to go to the hospital to have the baby checked out. In order to do that, though, it's a three hour test to make sure no blood has mixed in, the placenta is intact, and so on. Even more pissed, me. Got the kids some lunch there at the hospital, which is not an experience I'd like to repeat (no kid control, no real easy layout, lots of "stations" to go to . . .). Left Ladybug with the leftovers, which was all I could manage, and I'm sorry that's all I could manage. Finally get released around Noon.
We make our way out of town, but the traffic is not exactly fun. By Noon on Friday, people leaving town for the weekend are, well, starting to leave town, whereas in the morning, even during rush hour, the roads are more clear. We're just getting past the traffic, and Lotus announces she has to go potty. I not proud to say that I was still upset about that, and pulled off with bad grace.
Let's just say that, as a whole, Friday was not my best day as a parent, a husband, or, really, a human.
Later, after I've settled, the kids have napped in the car, and I've been able to listen to 2 hours of easy going Donald Fagen, I manage to calm down to the point where I am sort of an average parent and husband. At this point, we're still in Arizona, and Lotus says, "Mommy, there's a lizard in the car."
"What?"
"A lizard, in the car, on Tesla's chair."
Ladybug checks it out in the rear view. "No, sweetie that's just a leaf, see it's . . . oh, it's moving, it is a lizard!"
So, we have a hitchhiker. I tried to catch and release it in Yuma, but no dice, it escaped my grip (thankfully with tail intact), and hid. We told Lotus not to mention any lizards at the California border check. She keeps mum, but with a huge grin on her face. As we get closer to San Diego, the lizard makes another appearance, again on Tesla's chair. She's asleep, thankfully, so she doesn't notice. I don't know whether she'd be afraid of it, or try to eat it, but I don't really want to find out.
As we pull up to the hotel, we make a discovery. It's the same one that Marriott sent us to after they screwed up our reservation back in 2006 when we went to Ladybug's cousin's wedding. How serendipitous. What's more, as we're pulling in, our friends arrive right behind us. Their flight was delayed, so, again, serendipity smiles upon us. I manage to catch the lizard, and it scurries into the undergrowth, probably to die, as the temperature was so much cooler. I'm sad about that, but at least it had more of a chance than starving to death, hermetically sealed in the car. We get checked in, and unpacked, and I rearrange our room for better access for the kids to play. I set up our little portable DVD player, after much trial and error with every connector cord I can find, and manage to put Winnie the Pooh on the bigger screen for Lotus and Portia to enjoy. Our friends note that the rooms are really big. Ladybug and I share a Look, because, frankly, the rooms, even though they are one bedroom suites, are cramped compared to what we get at our Hilton timeshare. Clearly, we're spoiled beyond salvation.
We order in from Papa John's that first night, because we're too out of it to manage the four kids at a restaurant. Otto and I go out to get some groceries at the local Von's, and we call it a night.
Next day, we get up, get our breakfast and go to the San Diego Zoo. I miss a turn and the GPS routes us around a bit before getting us to the Zoo. This will be important later. We take all the rides we can, and look at lots of various animals, and generally have a good time as a large family group. Lots of fun, as the San Diego Zoo is known to be. Tesla gets a panda toy, Lotus chooses a unicorn which we later discovers plays most of Somewhere Over The Rainbow in a register clearly meant to annoy any adult in a 4 mile radius. Unfortunately, we didn't discover that it made noise until it was too late. We make our way home in the afternoon, and decide to order in from Pick Up Stix and eat downstairs in the lounge. Pretty neat, really.
Sunday, we get ourselves up and out to Seaport Village, as planned. We take the Seal tour, always a blast. Lotus and Portia spend the time hiding under a blanket, playing hide and seek, so they miss some stuff, but they have a good time anyway. Tesla becomes very Mommy-attached and refuses to sit on Daddy. A little lunch, a little shopping, and back we go again to the hotel. We watch Chicken Run on the little DVD, and then I decide to take the kids swimming. Yes, in March. The pool is sort of heated, but the hot tub is preferred. Lotus and Tesla enjoy the warm little pool and then we go back up to get dinner together. We get some stuff in from Von's and have a little smörgåsbord in the room. We decide, since we were cheated out of our Friday, and the house is clean due to Ladybug's insomnia Thursday night, to stay Monday for a while and go to Legoland.
As we were driving up to Legoland, real life intruded. Work called. Someone forgot I was out. Again, I did little to hide my annoyance. Damn them. I have no plans for forgiveness. I've given over a lot of my life to this project lately. I get two days (really, four, considering the number of times I've been called on the weekend) off without calls, please, thank you.
We had written off Legoland the last time we were there, because it seemed a little too boring for the adults and not all that interesting to Lotus, who was almost three at the time. At the age of almost 5, though, she loved it. She drove the little cars all by herself, and enjoyed walking around looking at things. Telsa was annoyed, however, that at the age of almost 2, there was nothing she could do by herself like Big Sister did. In the end, it's not a total waste of time, like we had thought the first time. Well, as Ladybug had thought. I've got a serious Lego fetish, so I enjoyed it both times.
We drove home after that. It turns out, according to the GPS, that it was shorter to drive up to I-10, rather than back down to I-8, to get back to Phoenix. Otto was skeptical, though, because he said that it wasn't all that great at getting us to the Zoo. At that point, I was forced to admit that the roundabout route was caused by my incompetence, rather than the GPS's mistake.
As we were driving home, Telsa named her panda. She's never really given anything of her's a name before. Dolls are all called, "baby," dogs are all, "woofs" and so on. She christened her panda Hammo. I figured it's one of the lost Marx Brothers. She calls it Hammo when she drops it, and when we call it Hammo, she holds it up and roars at us. I really need to get it on video. It's too cute.
We got back late, and got the kids to bed. I was able to enjoy an evening watching TV with the wife in relative peace, no work calls, no kids, nothing to do around the house, really. It was, all in all, a fun weekend, and quite an adventure.
Maybe someday I'll be able to drive to California without someone trying to wreck my car and kill my family.
I really don't like being at the tail end of a development stream. Before moving away from development, the code I was writing was at the end of the process. This means that I was reliant on everyone up at the beginning of the process to do their jobs and get things done on time. They did not. This meant, strangely, that I was the one punished, with shorter delivery times, and random coding changes when those early process jerks made a code fix. Never mind that dozens of other developers were relying on that code, just go ahead and change it.
It's like designing a whole car, and then, at the last minute, the jerks working under the hood decide to change the engine and now everyone from the people making the motor mounts to the guys working on the transmission have to completely revamp their code, working frantically through the night to adapt to the whim of some ass hat decision. Meanwhile, the engine fuckoffs are over at the side of the garage drinking tea and complaining that no one supports them.
Sadly, if anything, it's worse now. I'm not required to do any development, but the same idiots are making my life miserable by constantly breaking the build, or asking for another build, or checking in code that, well, sort of works on this deployment, but not at all on another deployment. And who has to stay up until midnight? Not the coders, oh no, those fucking pukes get to go home at 6 while I'm working the night away. And every time we (I'm not the only builder, but we're outnumbered 25 to 1) try to hold a line and say, guess what, you fucked it up, I'm not sticking around to wipe your ass, suddenly, it's a national emergency, and the development leads get involved and we're backed into a corner.
It's all about to come crashing down, though.
My colleague has finally started showing signs, after months of this, that he's fed up. So, we're planning a major twin-pronged attack: we're both going to be out one day. Just some random day. We're both sick. Our cell phones are mysteriously off. No e-mail contact. And after that chaos, we'll come back. And the next time someone complains about the build schedule, or breaks the build, or tries to whine and weasel their way around the process, we'll say, remember March 10th? Remember that day when there were no builds, and no deployments and no one could get anything done or tested or fixed?
Want another one?
Then sit the fuck down and do your fucking job. And I'll do mine.