Wednesday, July 23, 2008

Nepotism Trumps Competence

This article on the dailywtf.com sure brings back memories. The shithole that was my last job sounds exactly like this place. And it reminds me of a story I want to tell. Maybe one, depending on comments/feedback, I might submit to TheDailyWTF itself.

Its all in how it looks.

My last task at my former workplace was to develop a CRM Portal. CRM stands for "Customer Relations Management". Essentially, I was overhauling the entire company website, and adding on a "private" section where clients (or potential clients) could log on, and view their projects, and see the development and test versions of their software projects. It would also house all the project's documentation and requirements. So, if you're a software developer, think of a customized install of Trac. Written and developed by one person, who's got about a year of experience writing .NET web applications. Who's doing everything from database design, documenting requirements, developing the code, testing the code, and prettying up the frontend.

To top it off, since we had nothing like this at all in our infrastructure, it was "Priority #1A" that I get this application up and running. It was also "Priority #1A" that I rush the application out the door because, as the President of the company put it, "You don't have a charge code. You're burning up overhead." (At this point, we had burned something like $200K in overhead in money we didn't have on various un-billable tasks.). Most of our tools had been various "re-invent the wheel from scratch" tools, done only half-right and only working half the time, because again, in the words of our infinitely wise President, "I'd rather spend $10K on you guys (who we referred to as his "A-Team") than spend it on software where we don't have control of the source" (and yet, we couldn't use Open Source Software because we were ".NET shop".)

So despite pressure to just churn out a finely polished turd, I knew that whatever I did, there would an incredibly long list of changes to the look, feel, and behavior of the "portal" application as soon as it was presentable. Instead of following our "one, true, established way" of creating applications -- the monolithic approach with lots of copy and paste, I actually tried to separate function and form. This meant I was building a layered application, with separation of duties between business objects, a data access layer, and presentation. As a shop, nobody had really tried to do that, as any realistic schedule to get a functioning application out the door was quickly slashed so that we were forced to just churn, churn, churn. Our president did not believe that architecture and testing paid for themselves.

Finally, having reached a presentable status (meaning: I had pages that behaved like an actual web application), the company president finally got to review the portal. He was already upset at how it was taking so long, and that until this point "I had nothing to show for it". If you haven't already guessed, the president of our "software division" had no idea of the complexity of code behind any of our pages, and just judged applications on whether they worked like he expected them to, and if they had lots of .NET controls on every page. Never mind how complicated or simple the business logic behind the pretty page was.

As an added bonus, I'll freely admit I'm a horrible web interface designer. While we were supposed to master web application development "from top to bottom, front to back", my previous assignment (which lasted nearly 4 months) had been writing PL/SQL stored procedures for another application. While other team were becoming more proficient at CSS-based layouts, I was learning how to best optimize our applications database logic. So I was naturally more skilled "on the back end". I hadn't learned what the company president liked to see in a web page, or expected to see (again, no documented requirements on how this "portal site" was supposed to work. Simply a "you figure it out" command).

Needless to say, expecting changes in page layout, I didn't really commit much time to a "stylish design". I figured a minimalist design could successfully showcase working features, and could be styled up. I even stated so much in the first review.

The first review did not go well. Aside from picking apart my "minimalist" design for lacking decorative colors, "webby javascript stuff" (direct quote there), and "looking very much incomplete", my boss failed to appreciate any of my hard work. Most of the features worked! Of course, functionality lost over form. Nitpicking the layout seemed to be the purpose of our review meetings.

And so that became my daily routine. The all-hands morning meeting. My one-on-one with the president, where he'd always give me a day's worth of UI overhauling (and contradicting yesterday's design decisions) and then going back to my cube to implement the changes.

On day 3 of this routine, I was informed that I'd be getting an intern to help me out. One of our client's had a high-school aged son with some web layout experience. He had no programming experience, but he was his high school's ultimate frisbee club's webmaster.

I sat him down and showed him how the application was laid out. He basically knew HTML and CSS (and had a better sense of style than I did) so after a quick run down on what it does he was able to get up and running. Our daily meeting was delayed an hour or so because the President had more pressing business, and a co-worker needed my help dealing with a database problem.

I come out my co-worker's cube to find that the meeting between the company president, myself, and the intern had started without me. The intern was showing off the styles he'd applied to the master template and the president seemed pleased. I feel relieved. Now we can actually start using this thing. I can move onto a project that's bringing in revenue and not have to deal with our presidents daily musings on what is "webby enough" to represent us to the internet.

About an hour later, a co-worker tells me that the intern is being put in charge of the remainder of the portal project. Not understanding cascading style sheets, it turns out our company president believes that the intern entirely recoded the web pages he showed off (including the back end functionality) in the sitdown meeting, instead of just applying new styles and layout. In his mind, with that kind of programming skill, he was more qualified to finish up the project than I was. I was re-assigned elsewhere (to another "re-invent the wheel from scratch" app) shortly before being laid off (something about being $200k in the red because of project mismanagement).

So it turns out its about how something looks, and not how it works.

I'd appreciate comments, especially advice on how to cut this down in to a more reasonable anecdote.

Labels: , , , , , , ,


Thursday, September 27, 2007

The finish line

My long day ended at 8:30. I could finally eat dinner.

After a veggie burger, I found I was still wound up and on edge. I relaxed for half an hour and hit the gym. It was productive, it was relaxing, and I think I finally burnt off enough energy and stress so that I may sleep a peaceful sleep, for tomorrow is the season 4 office premiere, and I will be watching it with my co-workers.

And Friday is minus the bear. I can't put into words how excited I'm am to hear them play live. Its one of those "I can die happy now" moments. I've been listening to WVU's radio station (92U -- The Mouse!) and they came on today and it was one of those perfect moments where driving and music meet to be a relaxing journey.

I have a feeling I'm going to have one of those out of body experiences where I can't help how stupid I look as I move to the music (like I did the first two times I saw Death Cab play live back in the day). Katie Chang would comment that I looked like a dancing robot who's malfunctioned between funk and berserk.

But whatever. It beats doing the "stand and sway". What's the point of going to a concert and pretending you don't like the band if they're the reason you showed up? I can't wait. Even writing about it has gotten me excited about it, so I need to call this quits so I can sleep.

Labels: , , ,


Wednesday, September 26, 2007

Megan's Birthday

I had a throat infection so bad that I pretty much lost my ability to speak this weekend, which didn't deter me from trying to wish Megan a happy birthday. We hit the up beginning of Oktoberfest, which was by far an awesome festival, if only Penn Pilsner wasn't such a ass-tastic beer (of this, we all agree). It was fun as we watched one of our group, Alison, get picked up by a first year law student. After he had separated her from the herd and started buying her drinks, he repeatedly attempted to get her to go home with him by using the lines, "Wanna go out to my car?" and "I just wanna talk.". After that, I think those were my catch phrases for the night.

Oh, and the guy was totally not creepy. ;) He just wanted to talk.

After the 'fest we hit up south side, my old home and prowling grounds. It hasn't changed much. The one thing about Pittsburgh is its always full of familiar faces. I ran into two girls that I somewhat knew from college. A former co-worker from my previous job, a friend of a friend, two former Pitt students that used to be engineers, and a girl I remember from being a Tower C ResCon. But at the same time, I don't really know these people enough to care what's up with most of them, so I didn't bother engaging in smalltalk (see Throat Infection).

Pittsburgh feels like a small town. In retrospect, its because it is.

I played a little BioShock on my friend's xbox 360, and I like it. The game has that System Shock feel I liked from my PC Gamer days. Go Rich Story FPSes.

All in all, aside from being sick, it was a good weekend. I needed to get away.

Labels: , , , ,


This page is powered by Blogger. Isn't yours?