Archive for the 'Work' Category

Why Computer Progamming is Hard

I had a perfect example at work today why working with computers is more difficult than people realize.  It was further enforced by the fact that my friend Rick posted a link on facebook that hit the sums it up perfectly, computers do exactly what you tell them to do.

Think about that for a second.  Whether you realize it or not, human communication is very imprecise.  A lot of what is communicated between people is implicit.  Intent is not something that computers understand.  They only understand the exact instructions you feed them.

Several months ago one of my engineers was told to turn on a feature in the system to run a test.   We had turned it off because the feature was causing some problems but those issues were resolved so the powers that be wanted to turn it back on.  He did exactly what the request asked for, he turned on the feature.  The feature controls whether or not a certain data source is used or not.  There are times when some of our customers explicitly turned it off and under no circumstances should it be turned back on.

But since it was turned on for the purposes of this test, this overrides any configuration that our customers can do.  Nobody thought it would do this because this is not normally what happens when we run tests.  The system is usually set up to avoid these circumstances.  So what was the problem?

The problem was that the feature should not have been turned on.  It should have been set to not be off.  Believe it or not, in this case, the opposite of off is not on.  It is in fact not off (Null for those familiar with computer jargon).  The computer, and the engineer, did the right thing.  The “intent” however was not to just turn it on completely.  The intent was not to specify that it was off completely.  If there were other configurations which said to turn it off, as is the case for some of our customers, those rules should have taken precedence.  Of course they did not because the computer was told to turn it on.

So you see, the problem is not the computer.  It is that we live in a world where things are not always specified precisely.  And that is what makes software development so hard.

Multiple #1 Priorities

I just ran across a job description that had as one of its requirements

- Ability to handle multiple number one priorities simultaneously.

Really?  Did the person who wrote this job description not understand how this is quite literally impossible.  Now I understand what the intent of this requirement is.  There are often times that you have to try and correctly handle a situation where everything seems important and nothing can be dropped.

But one things is for certain, when push comes to shove there can only be one #1 priority.  It is something that most people just can’t deal with because they refuse to or don’t understand how to prioritize.  The more I work, the more I realize just how rare a skill it is to find someone who can correctly prioritize.

I fail to see how anyone, especially in upper management, can not know how to prioritize.  It comes so easy for me.  If you ask me to, I can almost always stack rank a list of things.  Want to know who my best employee is, no problem.  Want to know the most important thing about investing, its reaearch (followed by patience).  Perhaps the only thing that you might not be able to stack rank is which of your children are your favorite (although I bet a lot of people could actually do this)

I run into this problem constantly at work.  People don’t seem to understand that there are trade offs at work.  When faced with having to make one, these people seem to prefer not making one and letting the outcome be random rather than make a conscious choice to try and prioritize correctly.

Just this one requirement would make me not apply to a job.  It clearly shows me that at some point you would be faced with a lose-lose situation when something had to give and yet nobody would be willing to make the call.

Don’t Mistake Activity for Achievement

John Wooden at UCLAOne of my favorite quotes is from John Wooden, the greatest college basketball coach of all time.  He said, “Don’t mistake activity for achievement”.  I think about this quote a lot when I evaluate myself and my employees.

Just the other day, I had to give some rather harsh feedback to one of my employees which led to that employee getting less responsibilities at work.  The employee was not too happy with this (although for many employees it would be great news since all it did was give this employee less work) but I knew it was the right thing to do.  The difficult part was that this employee works extremely hard.  If extra hours are needed, this employee puts them in.  So how do you tell someone who worked hard that their work just wasn’t good enough?

It was something I learned a long time ago in my own basketball experience.  Growing up, I spent hours practicing.  I would go to the local park and work on my jump shot until they turned off the lights.  But in the end, I just wasn’t as good as the other guys on the team.  While they didn’t practice as hard, they had more talent than I did.  The facts were that they didn’t need to work as hard as I did because their talent and natural gifts naturally made up for it.

Sure it wasn’t “fair” but when is life ever fair?  While I empathized with this employee, I have an entire organization to think about.  There was no way I could look past the fact that despite all the long hours and hard work this employee put in, they had not actually achieved the goals I had laid out for them.  I could not mistake their hard work for any actual accomplishment.

Have you ever been in this situation? One where you worked harder than anybody else but yet you couldn’t accomplish what you set out to do?  How did you handle it when you came up short?

Never Drink Around Coworkers

My company’s holiday part was this weekend.  It was a fun event, I had a pretty good time.  There was food, entertainment, a lovely venue, and of course an open bar.  However, I myself did not take advantage of the latter because I have a hard rule which I always follow.  I NEVER drink around coworkers.

Now I’m not a heavy drinker anyway but I do enjoy having a few drinks occasionally as much as the next guy.  But if I am in a work setting where the majority of the people are my coworkers, I do not have a single drink.  Not one.  While it may sound uptight, I am following very logical reasoning.  There is absolutely no upside to drinking with coworkers yet there is huge downside.

Nobody thinks it is odd when I do not drink.  I usually just tell people I am driving so I don’t want to have anything.  This is true anyway so nobody thinks it is too odd.   But there is more to the story than just this.  I am making a very conscience choice not to drink so that I am viewed as someone who is always in complete control of myself.  To rise to the top, which is one of my goals, you have to be viewed as a leader.  Leaders are always in control.  Therefore you should not drink around those who make decisions about your career growth.

Now, I’m not saying that if you drink you can’t rise to the top.  That would be silly as I’m sure plenty of America’s CEO’s drink when around coworkers.  But I highly doubt anybody made it there because they drank and I bet more than one person has had his career derailed because of some foolish drunken mishaps at a work function.

I watched as a coworker and a friend of mine who had a little too much to drink made several off color remarks in front of the entire executive and management team.  Everybody was laughing, and I’m sure nothing bad will come from this.   He will not get reprimanded or anything even close, and he really should not be.  But will anything good come from this?  Do you think that when it comes time for promotions people won’t remember these types of situations and think someone less “colorful” would not make a better choice?

Adjusting to Life after Losing a Job

Laid offI was reading an article about people who failed to adjust their life after losing a job.  The article focuses on those who thought they could maintain their lifestyle because they got a severance check from their former employer and failed to realize that they might be unemployed longer than they expected.

It was hard for me to read the article because it is irksome to me to read about people who do not understand the reality of their situation.  It is especially bothersome to me to hear that people act this way in this country where most people have little or no money saved to deal with emergency situations.  Getting severance is a gift.  Few people have the “right” to a severance package.  Most employers provide them as a way to make all the parties involved feel a little better but they rarely if ever have to dispense generous severance packages.

I guess I just do not have a lot of sympathy for people in these situations.  I might if these people immediately cut their spending to the bare minimum to make their savings last as long as possible but none of these people did that.  They all decided to ignore the situation and continue to live as if nothing serious had happened.  I compare this to my own situation of life without a job.

I quit my Microsoft Job in September.  I was officially on payroll until the end of October but I stopped working at the end of September.  I simply used my vacation for that last month.  Despite the fact that I chose to leave, I had enough savings to last several years at my then rate of consumption, I still had a paycheck coming in, and my wife had a job that could cover all the bills, I started to immediately watch my money the day I gave notice.  Why?  I had no idea how long I would be out of a job.

My original idea was to take at least six months off.  That didn’t happen because I have a problem not working and the uncertainty drove me nuts.  But despite my very safe position it was just prudent to not spend money the same way as I had before.  I was more careful about anything I bought.  We ate out a lot less.  We canceled plans that would cost us too much money.  I then look at my wife’s position when we first moved to Washington.  She did not have a job lined up when we moved.  I made more than enough money to support the both of us but despite this she decided to get a retail job just to bring in some cash.  It wasn’t great work but it paid and she wanted to make sure she brought a little something home just to get used to the idea and not feel too “safe”.

Perhaps all of this was “easier” for me to do because I made a conscience choice to leave my job so I got to do it on my terms.  The psychology of it does not make much sense to me since I would think that having the situation forced on you would make the problem more immediate and urgent.  But I suppose there are those who would rather avoid the situation than tackle it head on.

A Great Compliment

I had my best developer resign on me this week.  It is something that obviously bothers me.  You hate to lose your best employees because people of that caliber are so hard to come by.

The one bright spot came today when I went to talk to him to try and convince him to stay.  Knowing why he is leaving, I had little hope of trying to get him to stay but I had to at least give it a try.  As I started to go into my little spiel he told me to stop because there was little chance I was going to convince him to stay.  He told me that the one chance I had was if I told him that I was going to leave the company in a few months and that I would take him wherever I went.  He really enjoyed working for me and that it was hard to find a boss that he could respect.  He just did not want to work at my company any more.

It is an honor to work with smart people.  It is an even bigger honor when these smart people basically tell you that you are a great boss.  Makes me that much sadder that he is leaving.

Crunch Time

It’s crunch time at work.  Actually it has been crunch time for a while.  I have had to work, and make my staff work, for seven straight Saturdays.  the strain is starting to show.  I see my team sniping at each other more than usual and people just having general signs of burn out.  We will pull back a little bit, we are almost at the finish line, but that is when you have to sometimes push the hardest.

Post might be a little sporadic from me in the next few days.  The hours at work are just getting in the way of being able to write good blog post.

Just to keep you updated, I did add a small position in SRS.  The ETF promptly dropped 4% after I bought it.  I was about to sell out of it, but once again work got in the way.  Lucky for me, the stock rebounded slightly and is now down only 1% from where I bought it.  Depending on what the market does tomorrow, and if I have the time, I might just get out of the trade.

Wish me luck over the next few days.  Work is going to get crazy.

When You Never Fail …

You are not taking enough risks.  In a strange coincidence today, I talked about this very subject with three different people.

One of these conversations was with a subordinate.  Or more accurately it was a subordinate of a subordinate.  This worker was frustrated for a number of reasons.  One of which was the belief that this person felt as if he and his team were not performing at a high level.  He made the comment that he had never missed deadlines in the past and yet he and his team had missed several deadlines over the last few months.

Now, I corrected this person.  As the person who decided when and if things go out on time, I have not been unhappy with the performance of this team.  I do not think the team has performed great but they certainly have not failed either.  This person’s comment bothered me though.  How is it possible that you have NEVER missed a deadline.  I have not missed very many in my life, it is why I’ve done very well in my career, but I certainly have missed a few (non-critical) dates in my life.  I pointed out to this person that if he really felt as if he had never failed to deliver in the past, that it simply meant he had not taken enough risks or been aggressive enough in his life.

It would be easy enough for me to always deliver on the things I said I would by simply promising less.  But wouldn’t that defeat the point of great achievement?  If great achievement were predictable than it wouldn’t be so great.  Great achievement inherently has risks because you are going into uncharted territory.   So I told this employee, that he obviously was not pushing hard enough before and that his performance was probably not as great as he thought.  Unfortunately, I don’t think he took the feedback very well.  Maybe that’s why we had to have the discussion in the first place.

Thoughts From the Jury Assembly Room

I am sitting in a jury assembly right now waiting to see if I get put on a jury panel.  Although I dreaded coming in for jury duty, it really is not all that bad.

The worse part of it by far is the sitting and the waiting.  I had to be here at 7:45 a.m. (which is early for me) and since that time I have had to sit here and basically do nothing.  But it could easily be worse.  Lucky for me, they have Wi-Fi access in the jury room.  So I’ve been able to pull out my laptop and get a little surfing done.  I’m even able to do a little bit of blogging.

Of course, one can only surf so much before one gets bored out of his mind.  So while this is OK for now, I could not imagine having to do this for several days in a row.  Lucky for me, the Los Angeles County Court system has a one day, one trial policy.  That is, if you do not get called for a jury on your first day, you are done with your jury service.  Similarly, as soon as you serve for one trial, you are done with your service.  This is a big improvement over the previous system where people have told me they had to come in for two weeks in a row and just sit and do nothing.  That would suck.

The one thing that this experience is making me realize is that I am glad I have my job.  There are lots of job which are as interesting as sitting in a jury assembly room.  You do nothing all day but watch the paint dry or wait for someone to ask you a question.

Sitting and doing nothing is fine for someone like me to do for a day.  It actually can be a nice little break.  But if I had to do this day in and day out, it would drive me crazy.  Few people love their job.  I am not one of them. But I at least find it interesting and challenging on a regular basis.  There are days and even weeks which fly by and seem like almost no time has passed.  I cannot imagine that happening if every day my job was to sit and wait.

I still have at least two hours to go.  Part of me hopes to just get called for a jury.  Might be more interesting than just sitting and waiting here with nothing to do.

Save Money By Having Options

 Today, I had a very clear example about why it is so important to have options in life.  At work, we are looking for every way to cut costs.  In hard economic times, smart companies look for ways to save money.  For many technology companies, the best way to do that is to cut staff.  Having already done that, and wanting to prevent any further cuts, the technology team at my company is trying to find every cost savings we can reasonably manage.

So we looked at the big ticket expenditures and are finding ways to save money.  Some of the most obvious things to cut are software licenses.  These can get quite expensive depending on the software and its functionality.  We had one piece of software which we spent $180,000/year. It was the industry leader in it space, but in reality it was not worth the expense.  The key thing it provided was data and that data was available through other providers for much less (on the order of $1000/year).  Now the data from this other provider was not as detailed or rich, but it suited our purposes just fine so we decided we could easily write our own little server to house the data and nearly completely erase the expense.

The server only took one developer a few weeks to write and we were just a few weeks away from launching this new solution.  We called to cancel the contract with the $180K provider and they quickly responded back with a much sweeter deal; we could continue to use their solution for $1000k/month.   That is almost a 95% reduction in price.  This will save the company almost $168,000, or about the salaries of two software developers.  All this because we had a credible threat to abandon their service.  We decided to stick with this provider for now; the change would have required some more work and a little bit of risks, and the cost savings it would have provided are now not as great.  In tough economic times, this company made the rational decision that it was better to get something from us rather than nothing.

While we are happy with the deal, you have to think, why the heck were we paying so much for so long!

Note:  I was going to link to a post that I had written about why having options is the key to a happy and successful life.  I had written it shortly after I quit my last job and was reflecting on how having the option to quit enabled me to have a better option, my current job.  Somehow I never actually posted that article.  That one will have to come next.

Next Page »