Wednesday, April 26, 2006

Would You Like to See My Organ?

I sometimes wonder if my co-workers actually want me to make fun of them. They keep doing the most ridiculous stuff. The butter troll just sent out some email spam that he is going to rent a nearby concert hall so he can have a little organ recital of his own. He wraps it up by saying:
I'm a classical and church organist, and likewise my repertoire will be based on such pieces. I hope folks understand I'm not trying to advocate for certain religious views or sects, but will play some pieces that originated in church out of respect for the tune, arrangement, or both. I will also endeavor to provide some information that isn't generally known about the organ, how it is constructed, and its unique musical capabilities.
What a pompous ass. One of my co-workers told me he tried to talk to the guy when Jimmy Smith died, thinking that butter troll would be familiar with another famous organ player (I wasn't btw), albeit from a different genre. Of course, a simple "I'm not familiar with him" would have been acceptable. However, he took it upon himself to say, "That kind of music derives from the theater. I'm a classical organist." What a douche.

Further, as best as I can determine, this little one man show of his (presumably so he can show off his talents) is going to cost him somewhere in the neighborhood of $700. That makes it one of the more expensive masturbation sessions I've ever heard of.

Just the Two of Us

We had our end of iteration demo and planning meeting yesterday. Exactly two people showed up: me and the other programmer. Upper management and the sales guy were all conveniently out of the office. There was no request to reschedule, no request for a remote presentation, nobody calling in, nothing. And yet, every time I see these people they continue to ask just what it is our product does, what new features we're going to have next release, and even when the release is going to be. I find it all highly motivating, as you can imagine. I guess it could be worse. They could be treating us like we're a family. A highly dysfunctional family whose meetings would go a little something like this:
Manager: Why don't you tell us what you did during the iteration today?
Sales guy: Yes, dear, how is the iteration going?
Me: Like you care. I don't have to tell you shit, you're not my real manager.
Manager: THE HELL I AIN'T! As long as I'm here putting plans on the table, I'm your manager. Your real manager left. He didn't want you. I'm all you've got, bub.
Me: Shut up! I can go and work with him whenever I want!!!
Manager: The sooner you get it through your thick head that as long as you're at my company you'll work by my rules the better off you'll be.
Sales guy: Why can't we just have a normal, quiet demo meeting like other companies!?
Manager: Why can't you be more like your co-worker? I don't hear him complaining.
Other programmer: Actually...
Manager: Oh, here we go. I always thought you were the good one. Now this bad apple has you talking like him. You two better straighten up and fly right or else.
Me: I hate you, I wish you were dead!!!
...and scene. Yeah, I guess it could actually be worse. The environment here is not very demanding. However, it's also not very productive or enriching. I think my skills are going to atrophy if I'm not careful. I think I'll just start overengineering and gold plating everything using whatever technology I feel like learning more about. It's not like anyone would know the difference or even be present to stop me.

Tuesday, April 25, 2006

Profile of an Ass Clown

Project A is the "other" project in this location. It is staffed almost completely with emotional defectives. One of them, we'll call him Derek, may be one of the most pathetic individuals I've ever met. He's the one in all of the conversations you've read on here that is super-psyched about things, feels we're a family, is over-complimentary to his co-workers, and does any number of other things that annoy the shit out of normal people.

My favorite thing he does is whine about how bad he's feeling. Just ask how he's doing and you'll get the long, overdramatic sigh followed by the, "Oh...I'm hanging in there." You poor little bitch. Does our pussy hurt today? You may also get a, "I'm doing okay. I wish I was doing better, but I'm not." Or you'll get a short story about how his friends are dying or he has chest pains or whatever. Talking to him is draining and depressing. It sucks the life out of you.

The other programmer on this project spent the better part of a year listening to this shit. As such, he's developed a strong allergic reaction to it. I think it may cause him physical pain to hear it. Ever the team player, I thought it'd be nice to let him know that he too should "hang in there" much like Derek. That's when I started a little contest with myself to see how many syrupy feel-good bullshit wallpapers I could send him.

It started a simple picture and an email subject line of, "You hang in there, buddy":

Followed by the more complete:

I think I sent him three or four more cat pictures over the next week. I'm not sure what it is about cat owners that make them want to torture their pets, but I'm sure glad they do. After that I petered out a bit and had one last hurrah with a non-cat picture:

Last week I got to thinking that it's a shame that all this beautiful Derek content can only be included as background information in most of the posts. Maybe I'll start doing a weekly top 5 list of the generally idiotic and annoying things he's allowed to spew forth from his mouth.

Better You Than Me

As I mentioned previously the management here has been trying to convince the other programmer and I that we should be a part of project B--another Java project based out of our Massachusetts office. The other project here, we'll call it project A (it's Perl based), is sort of being replaced by project B. Of course, they tell all of project A's developers that that is not the case. Project A is still very important and will continue to shape our direction as a company, project A will exist for the foreseeable future, etc. This is what they tell people on dying projects when they can't afford for all of them to quit at the same time.

Next week, a bunch of the programmers from project A are heading up to MA to swap spit with their new Java overlords. I was informed that this would be a great opportunity for me to get familiar with project B. After the demo meeting debacle I was informed that I had made my position clear and that I didn't need to go to MA. However, they still wanted someone on this team to go and since there are exactly two of us that means the other guy was strongly encouraged to make the trip.

The funny part is that he used to be on project A and can't stand most of those people. Now he'll be spending a week with them. They've even got a team night planned so they can bring everyone closer together AND a van rented for ground transportation. They may even be sharing hotel rooms, though I cannot completely confirm this. As you can imagine, he's dreading the impending trip. Rather than dread it, I suggested he do the exact opposite. For one week, he should be the complete absurd hard-core team player. Then the entire thing becomes a game and you get to witness people participating whole-heartedly while you're making fun of them to their faces.

I imagine him showing up to the departing flight with a coach's whistle and a collection of team building exercises. Start off the pre-flight entertainment by asking everyone to gather around and "grab a knee."

"You know in the last few months I really do think we've become a family. And that guy over there, our manager, you know who I'm talking about...he's like our dad. He's the leader, our provider. I'd just like to say, 'Thanks, dad.' Everyone? Let's hear it for dad. Okay, it looks like we're about to take off in a bit, so if I could get everyone to put one of their hands in the middle here. Let's have a big 'team Perl' on three: 1, 2, 3 TEAM PERL!!!!"

During the flight he should move from seat to seat for some one on one time with each of the team members, making sure to touch them on the hand while talking to them. Then, once off the plane and in the rented van, he should stand up and blow the whistle to get everyone's attention.

"We've got a few minutes before we get to the hotel, so I thought it would bring us closer together if we went down the line and had each member list one fear and one hope for this new project. The little me inside is afraid that I won't be able to live up to these new expectations. That I'm going to let you guys down. My hope is that we'll show these guys up here in Massachusetts just what we're made of!!! Dad, why don't you go next?"

Now if it winds up that they do in fact have to share hotel rooms, I think he should insist that he only sleeps in the nude. Another bold move might be to drop a deuce with the door open. Of course I know none of this will happen, but I can dream, can't I?

As for the good news I mentioned last post: I won't be going on this trip and the office will be almost entirely empty. That means I can "work from home." You know what those quotes mean, don't you?

Monday, April 24, 2006

Business as Usual

One of the upper level managers just asked the other programmer on my team when we are planning on shipping the next version of the product. Not when is the next release planned, but when are WE planning the next release. The list of programmer job duties now consists of market research, write/manage the requirements, plan the iterations, write the product, write the end user help, assemble the necessary sales training materials, and pick the release date.

Our daily standup meeting consists of just the two of us. Since we sit in bordering cubicles and work with each other throughout the day, you can imagine we don't have much left to say to each other during these meetings. I keep thinking a manager, maybe even our manager, might actually show up.

At the last iteration planning, we "assigned" tasks to the execs to get us a Gartner report on the industry and look into getting us some beta testers. Of course, it's now the day before the end of the iteration and we still don't have the promised report. There's also no known progress on the beta tester situation. If I had a manager, it might shock him to know that I'm not doing any work either.

In my perfect world we'd be able to use the old house moving analogy of programming. We're moving a two story house on the back of a wide load truck. The programmer is driving it and the managers are the ones up ahead taking down power lines and closing intersections. Their responsibility is to get everything out of my way. My job is to drive the truck. Oh, but my world is far from perfect.

In reality it's more like I'm driving a Greyhound bus full of retarded people. They periodically try to get my attention so they can tell me that Timmy backed up the toilet by going number four or to show me their booger collection. Meanwhile, I'm motoring down the road in a bus leaking raw sewage and what appears to be some sort of medical waste all over the highway. Eugene is screaming that he's hungry but he can't have dairy when some freakshow with a mohawk and a pair of assless chaps jumps onto the front of the bus and starts making all menacing-like with the cub scout edition crossbow he's got strapped to his wrist. About this time I blow a tire, flip the bus which goes skidding down the highway on its side. As we skid to a stop the bus bursts into flames and explodes, throwing me clear of the wreckage. I come to to see Eugene leaning over me asking "are we there yet?"

Hey, they can't all be gold. There's some good news in it all, but I'll save that for another post.

Wednesday, April 19, 2006

T-Shirt Idea

Someone suggested a t-shirt based on some of the content of the last post, so here it is:Now who wouldn't be proud to be seen wearing that?

Tuesday, April 18, 2006

Sell It to Me, Baby!

I had another end of iteration demo meeting today. Why bother? Once again, the same cast of characters had the same questions they always do. But, as an added bonus, this is the first real iteration planning meeting with the new bunch of people. However, if you don't really know what the product does, you will not be able to plan what the product should do in the next version. As such, more of the product roadmap and iteration planning will fall on the only people that know what is going on--the developers.

Here's the sole nugget of planning wisdom I was given (no fewer than five times): if you find a way to handle more scenarios in a generic fashion then we should do that. Thanks. My questions about what the market wants, where we should be heading, if we thought about finding early beta testers to get feedback and requirements from, or if we've made any progress on the equipment problems we've been having were all met by, "yeah, we should look into that." I've made a point of asking point blank who is going to follow up on that. "Follow up on that." That's a goddamn manager phrase. I'm a motherfucking programmer, bitch. If I have to ask that then something is wrong. And if I look over one more time and see the sales guy not paying attention to these issues while he idly plays with his cell phone, I swear I'm going to piss in his mouth. And by "piss in his mouth" I mean I'm going to urinate where he masticates.

We finished up the "planning" meeting with a "keep on doing what you do, whatever that is" mentality from management. The sales guy came out of his daze long enough to say he needed annotated screenshots from the developers explaining what the system does and why that is a good thing. This is so some other sales group can make an attempt at selling the software. If you've ever heard a better argument for not listening to a sales person, I'd like to know about it. Someone is going to try and sell me fantastically expensive Enterprise software after being handed screenshots by some other sales guy that just had some programmer piss in his mouth? And that's the extent of their experience with the system? What an industry.

And just when I thought I was out, they pull me back in. We have another Java project, Project B, at this company. The other developer and I were asked if we would like to work on Project B. I thought about dancing around it but decided to go with the honest approach: "Project B is based on too much proprietary code, the tech lead seems to be too controlling, it has a bad architecture, a messy code base, and in all likelihood is doomed to eventual market failure. I CAN work on it if need be, but it is not something I would ever choose to do willingly." Now, proprietary refers not to their vendor specific closed source stack, but rather to the fact that they re-implement every open source offering imaginable (like their own SSH client, HTTP client, etc). Mr. Sales looked like I had just cream pied his only daughter and forced her mother to felch her then to snowball her own daughter. Yeah, I'm watching too much internet porn these days...

Mr. Sales pointed out that I would get domain knowledge and that our domain is HUUUUGE. It's apparently the only domain that is growing, made money last year, and will get me paid and laid to my heart's content. Yeah, he's a sales guy alright. He also went on to say that he'd much rather hire a domain expert and teach him to program later than hire a programmer and teach him the domain. That of course is how you wind up a situation they're experiencing in their non-Java project. An unarchitected, underengineered, non-scaling steaming pile of shit in its last throes of death.

He went on to explain to me that customers buy a product regardless of what it is written in if the consultants tell them to buy it (which is true) and that boy, oh boy all the consultants are going to recommend our product (which is salesy). Fantastic.

I went on to point out that someone smaller and smarter will come along in the same problem domain and realize they can make a better solution faster and cheaper than you can because they don't need to re-implement the SSH client, the HTTP client, etc etc and can instead focus on solving the problem their software is designed to solve. They'll be more stable, more secure, and more scalable than you will ever be since they've got a free army of developers and beta testers all over the world for their core non-business logic technology. They'll be able to find additional developers that are already familiar with most if not all of their application stack and those developers will be productive more quickly than yours (especially since yours are really domain experts playing developer dress up). Once all of that happens, no force in the world can stay the hammer that'll lead to your, your product's, and your company's eventual extinction. You'd at least be better off locking yourself into various vendors' closed source offerings.

Mr. Sales ended the meeting by saying, "Well, don't decide now, think it over and let me know."

I'll leave you with: Confucius say, "The superior man understands what is right; the inferior man understands what will sell." And sometimes not even that...

The Java Sea

A couple of days ago I got one of those emails from my new manager that just makes my skin crawl. It boiled down to, "Why don't you do a couple of lunch time sessions for the other development team on Java." My thoughts on most brown bags / lunch 'n' learns being a bad idea aside, I don't particularly like this other group. As my teammate says, they're a bunch of obscurants. Good word. Mind you, this other group includes the person that said, if you know assembler, you know Java. Given my lack of eagerness, I tried to ignore the email.

The other manager decided to chime in and say that Mr. Assembler could also teach a session since he's "very strong with Java." Also, some other whiner on his team could do it since he's "pretty familiar." Could I be this lucky? Are these desperate retards bursting with a desire to prove they know something so much so that they'll willingly reject the opportunity to actually learn something? Oh, you bet our sweet ass they are. Part of learning is accepting that you are ignorant on some part of a subject (if not the whole thing). This is a feat well outside the repertoire of these pompous imbeciles.

The other manager then re-enters the fray and says he doesn't think they even need Java to work on this other internal product. The lead on the other product then replies that they actually do (since it's like totally written in Java), but doesn't get specific as to what they need. You might as well say they need to know how to "program and stuff" and leave it at that. The other manager then makes the statement that giving his team time to self study would be more productive than someone trying to teach them Java. With normal programmers I would agree. However, with this group it's more like thinking monkeys will eventually develop gunpowder, given enough time. Still, I don't want any part of it, so I keep my insults as to their disturbing lack of mental prowess to myself.

Mr. Assembler finally made his much anticipated entry into the fracas, to settle it once and for all. I'll paraphrase:

His hunch is that Java is the least of their worries. By the way, he's done heavy JSP, Java library, and Servlet programming. He's even converted an "organic Perl product" into J2EE. He's more concerned with learning the proprietary technology in the other product they're transitioning to. But even that is but a subset of the problem. No, no, the real problem is if "TLC (three letter customer) wants" our product then he needs to know the architecture and the API. "It is a container which will hold our value." (Done laughing? Ok, we'll continue.) His advice is to get the experts to start "spilling their guts into documentation. Commando programming works, but there is something to be said for actually engineering a product. Engineering requires knowledge, and if you can't touch the API documentation you don't have knowledge, you can't engineer--you hack. I believe it goes without saying it isn't in our best interest to sell TLC a hack job."

Bold statements. He may have inadvertently almost made a coherent point in there somewhere. To analyze his gobbledygook, he has a mighty Java penis, no really. If he wanted to, he could literally stab it straight through .NET with but a single thrust of his mighty pelvis. He transmuted an organic product (aka shit) to a better form of shit, depending on his exact definition of the overly nebulous term "J2EE." He has determined that to program on a product, he should know how it works first. I'll skip the container holding value bullshit and point you to the Mission Statement Generator instead. The comments on engineering are funny, because he's a notorious hack that intentionally obfuscates his code to make himself feel superior and indispensable. Qualities any organization would be lucky to have in a programmer. He sums up by saying we shouldn't sell our customers a crappy product. Now that...that is a bold statement. As with anything emanating from Mr. Assembler, I find the whole affair has sullied my delicate sensibilities.

On the plus side, after his half baked monologue, there has been no more mention of me having to teach a lunchtime Java session.

Wednesday, April 12, 2006

Interesting Times

I've been in a living hell of meetings lately. After my manager announced he was quitting, I had the replacement manager and president of the division come to the end of iteration demo meeting. They're both very nice guys, I actually get along with them quite well. However, they are both very easily distracted.

During the demo, I kept getting interrupted with random questions and comments. "Wouldn't it be cool if you also did this?" Yep, already planned. "Isn't one of those a logical distinction and the other physical?" They're both concepts under the overall entity, so, who the fuck cares. STOP INTERRUPTING ME!!!

The product I'm demoing is an extension to another company's product, so they then wanted me to demo the other company's product. That's fine, but can't we schedule something later to do that? Plus, this will mark the third time that I know of that they've had the other product demoed for them. They just keep forgetting about it. My 5 to 10 minute demo went an hour. Super guys, though.

Then today, the CEO flies in for a set of meetings, one of which is the "all hands" meeting. I am required to attend. I walk up to the meeting room 1 minute early to see someone coming out of the room to come find me. Oh, I'm sorry, am I wasting everyone's time? I mean, am I wasting it without using PowerPoint? Ass.

Right off the bat, the president of the division announces he's resigning. I was shocked in the same way I'm shocked during crappy horror movies. Sure I know there's a transgender Eskimo Kenny Rogers impersonator hiding in the closet with a weed eater full of piano wire, but once he/she pops out it's still pretty shocking. This marks the second such shock in under a week. The previous similar shock was when my manager resigned.

But on the plus side, they re-announced that the butter troll is hired back on. Everyone had to clap for this even though it was announced two days ago in another meeting. Yay!!! They then handed out awards to the hard working team--not my team of course, because we're all lazy fuckers. The awards are some little Kinko's made up award in a crappy little frame. The new project leader for that team read the whole description for each unique award, each of which took about a minute. They bestowed fake titles on each person like "database goddess", "system savant", "team hero", etc. What better reward could there be for giving up your nights and weekends to further the product along? Oh yeah, cash, bitch. But I guess they would just lose the money playing some dice game in a back alley. This way, they get to proudly list "awarded the title of Original Binary Ninja" on their resume.

The meeting wrapped up with the numerous bullet points on the last slide boiling down to lots of exciting excitement happening in addition to other exciting things. The CEO then said he hoped that all of the personnel shuffling (aka leaving) had finally leveled off. He was looking forward to having the teams stabilized and didn't want to lose anyone else. If you would like, please feel free to get some one on one time with him in the next couple of days to see what he can do to keep you happy. Odd since he's the one that said "if you don't like our way of doing things, there are plenty of other opportunities out there for you" in a similar meeting a couple of months ago. I guess if people actually take you up on that "offer" you feel pretty stupid afterwards, huh?

Monday, April 10, 2006

Another One Rides the Bus

It's official, my manager is leaving for greener pastures. This continues the steady decline of normal people at this organization. One of the higher ups had a quick meeting to announce the departure of two people (my manager being one of them). I so look forward to being in these large meetings with all of my fellow co-workers. It's an interesting challenge, much like trying to fit my own fist in my mouth. Of course, since we're a "family" here, there's no shortage of the good natured ribbing. I'd recount some of it but I think I blacked out for a bit.

On the plus side for these morons, one of their own (the butter troll) is returning as a permanent employee. He was laid off and hired back as a contractor when the new project leader pulled some strings for him. At the news of his friend's rehire, my favorite dipshit actually threw his fist in the air and let loose a very loud "YES!" The same shitwit later cracked a joke, trying to determine if the req to hire a new person was "req" or "wreck." He was then playfully hit by a stress ball. He then had to explain to the person on the phone that he was just hit with a stress ball for his remark. I feel gayer for having witnessed it.

On the plus side for me, they're doing an early happy hour tomorrow. That means not only do I not have to put in my full 6 hour workday but that I get to drink around my co-workers. Surely that can't lead to anything inappropriate happening...

The rest of the mercifully brief meeting was spent by the moron twins trying to blow the boss' meat whistle. This started with, "Now don't do too good a job on support or they won't want to deal with anyone else. You're so good at it." Insert some additional ball cupping here, and finally finish with "I'm sorry to hear you won't be able to attend the happy hour tomorrow. If you let me know what you want, I can drink it for you." The guy the phone then had to actually respond! He wanted a frozen margarita with a little salt around the rim.

So there you have it. Tomorrow, one of the eager beavers will spend the afternoon licking the salt off his boss' rim.

Thursday, April 06, 2006

Rebel Scum

Yesterday and today one of the sales guys walked down the "programmer aisle" with a Darth Vader toy. He pushes a button on the base and the Imperial Theme starts playing. It also spits out a Darth Vader quote. Why is this jerk off over here sullying my work environment with his quaint little display?

Well, it turns out to be a little ritual here. Every time he closes a sale he comes over here with his Darth toy and plays the sound effects clip. This piques everyone's (or almost everyone's) curiosity. Inevitably one of the fuckers (the same bastard every time) eagerly asks, "Oooh, oooh, who did we sell? Did we just close a deal?" He does this repeatedly while the sales guy ignores him, waiting for both the clip to finish playing and for everyone to pay full attention to him. He then says something to the effect of "We just closed FubarTech." The eager puppy dog programmer then exclaims something like, "All right!!" I imagine he pumps his fist or holds up his hand for a non-existent high five while saying this, but I cannot confirm that as I sit on a different row. I die a little on the inside each time I witness this veritable extravaganza of idiocy.

He's putting on his one man parade to announce that he has finally managed to successfully complete part of his job duties and is therefore receiving additional financial compensation (his commission / bonus). I assume the reason that I was unfamiliar with this overly obtrusive ritual until a few days ago is that he's just not very good at his job.

In the "boy I wish I had the balls to do that" department, I thought about getting a talking Yoda doll and marching over to his area every time I manage to check in a few lines of code--you know, to keep him in the loop. I'll of course need a Marv Albert doll to play the roll of the officious douche bag programmer by exclaiming "YES!!" on demand.

Tuesday, April 04, 2006

Teamwork, Yay!!!!

It's not enough that someone used the word synergy in the all hands meeting, but today someone was talking about how much they enjoy working here. Gosh that's just swell. Anyway, they uttered the phrase (in all seriousness mind you) that "synergy rocks." They also constantly talk about "how excited" they are about what they're working on and how they stayed here late last night because they couldn't tear themselves away from what they were doing. An officious cliche dropper with a sugary sweet coating and an even more sickeningly sweet gooey center. Mind you, he's working on a pretty shitty project, teetering on the edge of obsolescence so he's got absolutely nothing to be excited about. I swear it's like working with Teletubbies around here.