Overstock Overload
Apr 30th, 2008 by mrhattyhat
My time at Overstock.com is over…thankfully. I have been looking to make a move for some time anyway, but I didn’t want to pull the rug out from under them. Ironically, that’s exactly what they ended up doing to me, so let this be a lesson to all employees everywhere: there is no such thing as “company loyalty.” At best, that’s a one-way street with the employee being expected to show loyalty to the company. It never goes the other direction. Any company will saw you off in a heart-beat if it means saving a few dollars for the executives bonuses. So don’t buy into this loyalty B.S. It doesn’t exist.
I’m actually not even upset about the termination of the contract. As I said, I was looking to make a move anyway. Overstock makes a lot of money, but you’d think a company that can generate in excess of $200 million in revenue in a quarter could figure out how to not still be left with a $3 million loss. Not so in this case, and now, having been inside the organization for a few months, I understand why.
When I first started there, I thought the culture might be different, better than most large corporations. The average employees have pretty good exposure and access to executive management, which you would think would lead to the upper managers being better able to do their jobs–namely, to clear away the barriers to success that the actual workers face. In the end, that’s the only role of management: to make sure the people actually doing the work can do it free from burdens so they can actually be successful.
Sadly, in Overstock’s case, this isn’t what is happening. I guess I can’t speak intelligently on the entire company because I only worked in one particular segment. But due to the physical working environment–rows of desk clusters with very little separation between one team and then next–I did have a pretty good look at the operations of at least one entire floor.
In the case of the Social Media team, the biggest issue is leadership. There is none. Upper management had designated two team leads–a developer leader and a project leader. Neither of them was actually a leader by any stretch. Leadership requires a certain disposition and personality, and a certain thickness of skin. All of these things were conspicuously absent in both.
The developer leader, a nice guy to be sure, seemed to always be clinging to the frayed ends of his sanity. He seemed overwhelmed from day one by the burden placed on him by the expectations for the team. That’s where the problems started. Neither he nor the project lead seemed capable of telling the CEO “no” when it came to certain projects. The CEO had a personal interest in the developments of the Social Media team so he made a point to stop in on a regular basis and get updates on all his pet projects. Rather than telling him that adequate time was needed to plan for these projects, after which they could provide a development time line, they would just “yes” him and make him think that everything he wanted to have done could be done when he wanted it. The end result was that the CEO had little confidence that anything would be done ever by that team, because all he ever got was yeses followed shortly by excuses as to why it didn’t get finished on time.
Adding to the trouble was the fact that the developer leader, obviously overwhelmed by the responsibility of unrealistic expectations and constantly battling against the demons of some previous failure that caused him to fear beyond reason any future failures, had no sense of delegation or organization. He could make assignments to his team; but too often those assignments would conflict with each other in various ways. The team would end up all working on the same project, theoretically on different pieces of the project; but things were so poorly managed and organized that those pieces would invariably step on the toes of the other pieces, delaying completion and launch of the finished project often by weeks.
Even worse, no one on the team (which included developers, project managers, QA and IT personnel) actually understood the proper procedures that should be followed to take a project from concept through development, QA and finally launch. It was me–the new guy–who finally had to lose patience and go get the answers from the sources. This was the beginning of the end for me. The team had been engaged in endless bickering about how to actually get a project into a proper test environment for QA and no one knew the answer, yet they kept bickering about it. Finally I just left and got the answer from the QA department. It took all of 10 minutes to get the answers, which I relayed to the team, much to their amazement.
A bigger problem than the developer leader, though, was the project leader. Also a nice guy, I honestly, even now, have no idea what this guy did on the team other than meet with his superiors to give status reports and take requests (which, of course, he didn’t know how to say “no” to). I was on this team for some four months, give or take, and in that time, I saw him do a little graphic design work during my first week, and from then on, every time I saw his computer he was just browsing on Facebook or LinkedIn or some other social networking, web 2.0 site (apparently doing market research or some such B.S.). He had no technical background at all, yet he was at the head of the team that needed to be on the cutting edge of web technology. This is probably the biggest problem I’ve run into in countless companies that I’ve consulted for: somehow or another, there seems to always be some guy that no one knows what to do with who ends up in the nebulous “project lead” position, trying to manage technical operations and resources without any clue at all what kinds of efforts are required to accomplish tasks. You can see how problematic this is, to have non-technical people making promises for delivery of technical projects without any consultation among the technical people.
Making matters worse, this guy reported directly to one of the company Vice Presidents. The VP, a woman in this case, was also non-technical and totally uninterested in what the team was doing, yet the team had been placed under her supervision, I can only guess because she was the only one who wouldn’t give the CEO crap about it. (See, the rest of the company believes the Social Media team to be a waste of resources and one of the CEO’s little “pet projects” that no one else takes seriously.) So the team operated in relative invisibility. The direct supervisor at the executive level didn’t care about the team and based her operational decisions entirely on the information provided by the project lead, the proverbial “yes man,” who had no real understanding of what the team was up against. The CEO got some of his information from his VP and some from direct interaction with the team, but in neither case was his exposure sufficient to give him an accurate picture of the team’s barriers. So the team labored along, incapable of any significant success for reasons that were as plain as Amish women, but the decision-makers who could correct the situation couldn’t be bothered to look.
(Note: the “Amish women” comment isn’t an insult. The Amish joy in plainness. It’s part of their belief system, which is why the comparison works.)
Bottom line: the team was doomed to failure from the minute it was formed.
In the time that I was there we were given four major projects. During that time I worked on all four of them, but was never allowed to actually finish any of them. In every case, just as I got finished with the bulk of the code (which I did in every case), the project was assigned to someone else and I was given a new one.
It started with the so-called “Patrick widget” which I finished in about a week, for the most part. All of the major functionality was finished in that time, but before I could finish up the smaller house-keeping issues, I was re-assigned to work on the “forums” project. That lasted for a few days before I was re-assigned again to work on the “video” project, which was basically Overstock’s version of YouTube. Some of that code was already done, but I finished the rest of it, again to the point that the major functionality was complete and we were working through little bug fixes and enhancements. Then that project got split into two: a “partner” version, and a “public” version. The partner version took the focus, with the public on the shelf until further notice. This project was the worst, because it was on this project that the dev leader assigned everyone some piece of it and with no coding standards or common code libraries to work from, they all conflicted with each other. Just before that project was finished, I was taken off of it again and placed back on the forums. Fortunately I was alone on forums and was able to complete that one, again for the most part, without interruption from others. It took forever thanks to phpBB’s crap code (as I have described in previous posts on this blog), but ultimately I got it through the major barriers, just far enough to be taken off of it again, this time for good as my contract was terminated.
In a nutshell, any successes that team has had in the past few months is directly due and thanks to me and me alone. There is no way that they would have gotten even the first of those projects done were it not for my involvement. Incidentally, of all those projects, only one part of one of them has been launched so far: the partner video. The rest are still languishing in mostly-finished status due to the total mismanagement of these two “leaders.”
Needless to say, my departure comes none too soon. I’ve had my fill of Overstock.com.