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.
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: blogging, confidence, corporate culture, me trying to be funny, pittsburgh, ramblings, web 2.0, Web Development
Wednesday, April 30, 2008
Positive Thoughts
I'm going to enumerate a few good things in my life right now, because my last few posts seemed mostly full of piss and vinegar.
- I'm glad that even though I don't work out enough at it is, I can eat wings and not feel guilty.
- I'm glad school for me will be over in little more than week.
- I'm glad I never have to worry about finding a swing dance partner.
- I'm glad I'm on two projects to work.
- I'm glad I've seen self-absorption and vanity up close. I had a former friend in my life who dropped out of college at 20 and has been trying the whole "get rich quick through a start up" thing since before the dot bomb. So far, he has failed, and has little to show for it. When I "make my move" in that respect, I won't be such a money-worshipping know it all yuppie.
- I'm glad both the cats I rescued still visit me when I crash at night. They love sleeping near me.
- I'm glad I've decided to resolve my sleep problems without medication. After researching Ambien, I'm terrified of it. Its a narcotic. When you stop taking it, you can have "rebound insomnia". You can always wake up, drive to a buddy house, drink and talk to them for an hour, have sex with a girl, and drive home, with no memory of the fact you just slept- walked an entire night away. Wow.
- I'm glad to be learning new things with respect to my technology skillset. After having a grad school professor basically lecture on distributed systems and completely ignore how google changed the game and 90% of this is irrelevant, because "the google way" is what's going to be copied from now on, its awesome to learn something new.
- I'm glad to have my health after witness a friend suffer so for a completely random or incomprehensible reason
- I'm glad to more than one honest person in my life. I think my friend who's life went wrong stems from a simple reason: the need to look good over the need to realize failure. And likeminded people in his life, who he felt were also "succeeding". I still have people I've known since I was 18 that can at least cut me to ribbons should I start putting on false airs.
- I'm glad I'm not afraid to take risks in my personal or professional life, despite some of the downturns that have happened in both. No Regrets.
- I'm glad tomorrow is a new day.
Labels: confidence, free expression is vital to the growth of every human being, late night thoughts, life is short, personal
Wednesday, December 19, 2007
Not a bad start
Grades are in on STAR.
Three point five. Not bad at all. Not a bad start to a graduate program in computer science.
Three point five. Not bad at all. Not a bad start to a graduate program in computer science.
Labels: blogging, confidence, personal
Friday, December 22, 2006
Late Night Thoughts
Prepare yourself for yet another stream of incoherent ramblings.
1. A friend of mine recently confessed to me a rather hilarious story. He and his girlfriend visited the low-rent strip club outside of our sleepy town of fairmont aptly nicknamed 'Dirty Vegas'. DV is known for its scantily clad women, and for the fact that it has an open touching policy. For a mere $2 *yes, I find it funny that its $2* the comely lass will provide you a dollop of moisturizer, and pretend to like it when you rub it on her T or A. And for $3, you can receive a mini-lapdance on stage, in front of all the other shady patrons.
My friend and protagonist of the story, in his infinite wisdom, decided to buy one of these mini lapdances for his girlfriend. I have known this couple (who will remain nameless) for as long as they've been together, and I can't think of a more straight laced women. I imagine convincing her of such an adventure must've required begging or blackmail, but I wasn't blunt enough to ask.
Let it be known that strippers apparently take more liberties with their female customers, and for this customer, it was apparently to far when her shirt was pulled up and *gasp*, like Janet Jackson, a nipple was exposed for all onlooking customers.
My friend confessed to me because we're cut from the same cloth. We admire the same kind of character. Call it seasoned. Call it street smart. Call it battle scared. We admire people who can make mistakes and learn to laugh about it. Call it a life experience and consider it water under the bridge.
I have another old friend who lived like this. She and I go way back to freshmen year. We grew distant, but through it all, because of this ability to laugh off mistakes, a trait we shared, we always gave ourselves away in conversations to one another. Like I time I could hear the regret she felt for liking a friend of mine. Deep down, she knew that despite having a physique that left her moist, his demeanor was that of an asshole, and it wouldn't change now matter how bad she wanted it to. And she had better fish to try.
Through the whole experience, and the name calling for all sides, I can respect the mistake making process. After all, the only thing worse than being talked about is NOT being talked about.
The light in our eyes and the smile on our lips that comes from enjoying life. Whether enjoying life comes in the form of making out to radiohead, writing a screenplay, a finely composed sonnet, or Miss USA making out with Miss Teen USA, in the end the defining moment of the experience is not what you accomplished or what people think you've accomplished, but how you feel about it. And if that's true, you should choose to feel good about everything you do. Regret is not really the virtue its paraded out to be, but more a failing of the short sighted. Maybe that's a bold statement, but everything counts towards something. Can it really be a mistake if you choose to make it?
2. Confidence. I feel there are two types of confidence. There is internal confidence, which comes from the conviction that you can do it. This is just something you feel inside you, and its hard to shake. Then there is external confidence, which is confidence you get from other people believing in you. This is something that's built up by clapping parents cheering for you at track meets, or attending the fall play to see how badly you butcher lysander's lines.
For myself, I've always barrowed off the character I inherited in a ShadowRun campaign. His mentality was, "You're only as good as your last job." This lead me to take praise from others with a severe grain of salt. I guess I learned early on to value the opinions of others only lightly. I think, looking back at this, its because I was incredibly goal focused as a kid, and was always planning on leaving my small town, intending on doing great things. It tends to make a lot of things in life fade away into the background chatter of your continue progress to "the future" where things, you tell yourself, will magically "get better". I even remember doubting in my mind the veracity of my first love's words when she said, "You are beautiful".
In hindsight, this attitude is almost contemptible. Think about it: You're essentially accepting that your immediate surrounds aren't perfect and aren't making you happy, but rather than strive to change it for the better, you're prepared to wait things out. Granted, for young people, as I was, this is simply the most realistic option. But a family is nothing but a collection of people. If there is something that needs to be changed, it has to start from within you, and inspire others.
The confidence I had was mostly internal. I had made up my mind what I was going to do. I knew what fascinated me and kept me occupied. Even when things appeared difficult, I was essentially unflappable. I would adapt; I would learn, I would overcome. Whatever it takes was just a way of life. I know that last sentence will resonate with some of our engineering graduates.
I have often wondered how to better create confidence in the people around me. I've often failed. This whole post could somehow be considered a rationalization, but don't stop now: hear me out. I feel my failure is a result of either trying to create external confidence -- which cannot come from a sole source, but from a support network, and is something I've grown up inherently devaluing. I also feel I fail at creating internal confidence because I created my own so long ago, and its just carried me with its own momentum. Even some of my more stunning failures have not stripped me of the confidence (with some exceptions. Ask one of my good friends about the dinner I took her out to our freshmen year, where we didn't speak at all during the main course.)
Still, the power of confidence is life transforming, and I wish I could inspire more people to live with a certainty of purpose. Don't let the purpose define you, merely, let it give you direction. You cannot be afraid to take risks and live your life. Its far to short as it is to worry if you're going to make mistakes.
1. A friend of mine recently confessed to me a rather hilarious story. He and his girlfriend visited the low-rent strip club outside of our sleepy town of fairmont aptly nicknamed 'Dirty Vegas'. DV is known for its scantily clad women, and for the fact that it has an open touching policy. For a mere $2 *yes, I find it funny that its $2* the comely lass will provide you a dollop of moisturizer, and pretend to like it when you rub it on her T or A. And for $3, you can receive a mini-lapdance on stage, in front of all the other shady patrons.
My friend and protagonist of the story, in his infinite wisdom, decided to buy one of these mini lapdances for his girlfriend. I have known this couple (who will remain nameless) for as long as they've been together, and I can't think of a more straight laced women. I imagine convincing her of such an adventure must've required begging or blackmail, but I wasn't blunt enough to ask.
Let it be known that strippers apparently take more liberties with their female customers, and for this customer, it was apparently to far when her shirt was pulled up and *gasp*, like Janet Jackson, a nipple was exposed for all onlooking customers.
My friend confessed to me because we're cut from the same cloth. We admire the same kind of character. Call it seasoned. Call it street smart. Call it battle scared. We admire people who can make mistakes and learn to laugh about it. Call it a life experience and consider it water under the bridge.
I have another old friend who lived like this. She and I go way back to freshmen year. We grew distant, but through it all, because of this ability to laugh off mistakes, a trait we shared, we always gave ourselves away in conversations to one another. Like I time I could hear the regret she felt for liking a friend of mine. Deep down, she knew that despite having a physique that left her moist, his demeanor was that of an asshole, and it wouldn't change now matter how bad she wanted it to. And she had better fish to try.
Through the whole experience, and the name calling for all sides, I can respect the mistake making process. After all, the only thing worse than being talked about is NOT being talked about.
The light in our eyes and the smile on our lips that comes from enjoying life. Whether enjoying life comes in the form of making out to radiohead, writing a screenplay, a finely composed sonnet, or Miss USA making out with Miss Teen USA, in the end the defining moment of the experience is not what you accomplished or what people think you've accomplished, but how you feel about it. And if that's true, you should choose to feel good about everything you do. Regret is not really the virtue its paraded out to be, but more a failing of the short sighted. Maybe that's a bold statement, but everything counts towards something. Can it really be a mistake if you choose to make it?
2. Confidence. I feel there are two types of confidence. There is internal confidence, which comes from the conviction that you can do it. This is just something you feel inside you, and its hard to shake. Then there is external confidence, which is confidence you get from other people believing in you. This is something that's built up by clapping parents cheering for you at track meets, or attending the fall play to see how badly you butcher lysander's lines.
For myself, I've always barrowed off the character I inherited in a ShadowRun campaign. His mentality was, "You're only as good as your last job." This lead me to take praise from others with a severe grain of salt. I guess I learned early on to value the opinions of others only lightly. I think, looking back at this, its because I was incredibly goal focused as a kid, and was always planning on leaving my small town, intending on doing great things. It tends to make a lot of things in life fade away into the background chatter of your continue progress to "the future" where things, you tell yourself, will magically "get better". I even remember doubting in my mind the veracity of my first love's words when she said, "You are beautiful".
In hindsight, this attitude is almost contemptible. Think about it: You're essentially accepting that your immediate surrounds aren't perfect and aren't making you happy, but rather than strive to change it for the better, you're prepared to wait things out. Granted, for young people, as I was, this is simply the most realistic option. But a family is nothing but a collection of people. If there is something that needs to be changed, it has to start from within you, and inspire others.
The confidence I had was mostly internal. I had made up my mind what I was going to do. I knew what fascinated me and kept me occupied. Even when things appeared difficult, I was essentially unflappable. I would adapt; I would learn, I would overcome. Whatever it takes was just a way of life. I know that last sentence will resonate with some of our engineering graduates.
I have often wondered how to better create confidence in the people around me. I've often failed. This whole post could somehow be considered a rationalization, but don't stop now: hear me out. I feel my failure is a result of either trying to create external confidence -- which cannot come from a sole source, but from a support network, and is something I've grown up inherently devaluing. I also feel I fail at creating internal confidence because I created my own so long ago, and its just carried me with its own momentum. Even some of my more stunning failures have not stripped me of the confidence (with some exceptions. Ask one of my good friends about the dinner I took her out to our freshmen year, where we didn't speak at all during the main course.)
Still, the power of confidence is life transforming, and I wish I could inspire more people to live with a certainty of purpose. Don't let the purpose define you, merely, let it give you direction. You cannot be afraid to take risks and live your life. Its far to short as it is to worry if you're going to make mistakes.
Labels: confidence, insomnia, late night, life is short, ramblings, thoughts

