Sunday, February 10, 2013

When We Don't Get Along

Relationships are complicated and dynamic. Whether personal, intimate, or professional, they all take time and energy to maintain; some more than others. At work, it can be very easy to feel trapped in a relationship because it's generally not practical simply up and quit or get transferred to another department. What do you do?

Well first, how does this even happen? It could be a simple clashing of egos or personalities. Maybe your coworker has an annoying habit. You might think he's rude, impulsive, or arrogant. Maybe you think he keeps taking credit for your good work. Maybe you think he keeps passing you over for a promotion or in some other way keeps you from climbing that ladder.

Sometimes you can go to H.R. Violence (physical or emotional), sexual harassment, even body odor are things that can make for a quantifiably hostile work environment and should be taken to H.R. But when it comes down to personality issues and character defects those aren't necessarily H.R. kinds of matters. 

Otherwise, the best course of action is to talk to the person about the issue. He may or may not acknowledge the issue as a problem and may or may not try to change it. If he doesn't change, it can be really easy for us to get passive-aggressive and try to make them change ourselves. Maybe we covertly place a bottle of hand sanitizer on his desk because he's not good about washing his hands. Maybe we start sharing pages from our inspirational Maya Angelou daily desk calendar because he's not very thoughtful.

There is absolutely nothing wrong with politely asking someone to change their ways. However, it's imperative to know that it's impossible to make someone change. If you ask someone to do differently but they don't, there's still a change that happens and it's critical to understand this:

He is no longer the one with the problem; you are.

It doesn't seem fair, does it? He's the one with the irritating whatever. It doesn't bother him. You have no control over it. You have options though:
  1. Get over it
  2. Get away from it
  3. Get overwhelmed by it
Option 1 is probably the hardest because it requires you to be the one to change. We're not good at internal change. And when I say, "Get over it," I mean to truly let go it, accept that he will not change, and cease to be bothered by it. This takes time. This takes patience. This takes love.

Option 2 isn't always very practical. For your own health and well being, it may be necessary to consider it. If you can't find peace with your coworker, it may be the only way to get away from your feelings of frustration.

Option 3 is hopefully not an option at all for you. This is where you neither get over it nor get away from it. Situations like this are breeding grounds for resentment. Some very wise people once told me that resentment corrodes the container. Left unresolved, this can lead to you becoming a bitter, unfulfilled person and cause you to hate a job that you once loved.

Coworkers don't always become friends but that doesn't mean they have to be enemies either. Talk problems out with your coworkers but also look within because sometimes the solution is stored within your own heart.

Friday, February 8, 2013

Selling the Dream

I used to be acquainted with someone whose motto for running his business was "Sell the dream but deliver the reality." Does that make alarm bells go off in your head? It does mine.

We all have dreams. Maybe it's buying a house or getting student loans paid off. Perhaps it's a vacation to somewhere exotic. My dream car is a Range Rover Evoque but it is just that, a dream car because at this point in my life I can only afford one in my dreams. Dreams are where our every wish and desire are fulfilled. Sometimes dreams do come true but usually through a lot of hard work and determination.

Now if I went down to say, CarMax, told them I wanted a Range Rover Evoque, had $25,000 to spend, and they said, "Okay" I'd be pretty excited. However, if when I showed up to pick up the car they handed me the keys to a Honda Accord, I'd be pretty upset. Just to be clear, I drive a Honda Accord, his name is Eric. He's unassuming on the outside but slip into the driver's seat, wrap your hand around the six-speed manual, and you'll soon learn there's more than meets the eyes. In other words, it's a great car. Nonetheless, if I'm promised one thing but given something different - or worse, inferior, I will not be a satisfied customer and in fact I will feel cheated.

Besides the obvious that the customer doesn't get what they expected, doing business this way establishes a relationship built on lies from the very beginning. If they're willing to tell a big lie, no doubt they're willing to tell little lies the entire time they're working together. Unfortunately by the time the client figures out what's going on it's too late.

In a perfect world, business ethics wouldn't even be a topic of conversation but I think this behavior is reprehensible. And I'm proud to say that I think my current employer is the most ethically sound company I've ever worked for both in the ways they interact with clients and how they treat their employees. I digress. I personally don't ever want to get burned so it is my desire to put out into the world that which I think can help others.

Here are some things to look out for to make sure you don't end up locked in with a snake oil salesman:
  1. Promises to do a lot more than any other bidders
  2. Promises to do the project for a lot less money than any other bidder
  3. The proposal is extremely vague
  4. The proposal is so long you don't know what it's talking about or is full of a lot of flowery language about how wonderful their company and process is
  5. Any part of the proposal seems to be too good to be true
  6. The vendor has no concerns about meeting any of your requests (not to say they can't be fulfilled)
What you can do to protect yourself:
  1. Solicit multiple bids and compare them in detail, not just the price quote
  2. Insist on extremely detailed contracts*
  3. Demand transparency
  4. Get references for recent, comparable work. Check them and look at the finished product if at all possible
  5. Listen to your instincts - If you think you're being lied to, you probably are

* I recommend watching this video. It's aimed more at the vendor than the client but the advice is spot on and really, contracts protect everyone. Note, there is a fair amount of vulgar language and there is one metaphor used that is poorly chosen. Nonetheless, I think the good outweighs the bad.

Thursday, February 7, 2013

Don't Judge a Book By Its Cover

We teach our children not to judge books by their covers. Literally, when they're young and start picking out books to read themselves, not to do this. A book may not have any eye-catching artwork. It could be worn and tattered. The plot introduction on the back might be unappealing. And so we try to instill in them that before forming an opinion about a book you should dive inside and get to know the full story. As children age, this proverb takes on a broader meaning that we shouldn't make snap judgements about other people. Just because someone has tattoos and piercings it doesn't mean he's a felon. Just because someone is clean cut it doesn't mean he's a nice person or trustworthy.

And so all our lives we're taught not to jump to conclusions. Then we grow up, make a career in software development, and that all goes out the window. "How so?" you ask?

Estimates.

It seems most our work starts with estimates. Someone contacts us wanting a new website. They want to know how long it's going to take and how much it's going to cost. If we told them we'd let them know when we're done, they'd get up and leave immediately, laughing all the way. A conversation is had. Likely several conversations are had. The potential client might even have a pretty detailed outline prepared of what they want. If they have an existing site that they want redeveloped into something befitting 2013, we'll do an thorough analysis of it. Nonetheless, we still have to make a judgement call based on a cursory amount of information.

Is this a bad thing? Nah. I don't think so, and I'll explain why in a second. But, I want you to realize that that is what we do all the time as a matter of practice. Think about it. Turn that over in your mind. Chew on it.

Despite what our parents teach us about making snap judgements regarding books and people, we're actually trained to do that sort of thing all the time. The light just turned yellow - slam on the break or step on the gas? Sweetie-Pie wants to know when dinner will be ready. A guy named Big Precious is selling iPads out of his trunk. We spend hundreds of thousands of dollars on a home and even though we have inspections, you still don't truly know what's hiding behind the walls.

Still chewing? Even though we get a lot of practice at making calls based on the information currently available, isn't it still just a little crazy what we do? Saying this is how long a project will take and this is how much it's going to cost? Software development is some complicated sh!t. Technology is constantly changing. Requirements have ambiguity. There are hundreds of things that can happen to cause the most accurate estimate ever to be completely destroyed. Quoting the wrong numbers can not only spell the end of a business relationship but the end of the company.

I think it's messed up but I realize the client is just mitigating their risk. They don't have unlimited money and they don't have unlimited time. It really isn't unreasonable for them to know how much and how long.

There are many ways we can mitigate our risk too including:
  1. Gather as much information as possible
  2. Use what you've learned from previous experiences
  3. Add in ample wiggle room
The big thing though is to be painfully transparent with the client once you crack that project open and dig in. Let them know your progress. Alert them ASAP when reality isn't matching up with the assumptions initially made. If an unexpected complication pops up, sound the alarm. Let them get their hands on the product early so they're not surprised by anything either. Keeping the client informed gives you leverage to negotiate changes to the schedule and cost. The clients are people too. They know things happen sometimes but they deserve better than to be blindsided.

I'm probably not saying anything new here but I hope that I'm putting our process in a perspective that helps us to use it more effectively and keep from getting burned.