The bus stop, by your desk

Software development projects often seem to get lead by non-developers. It is not a big surprise, considering the fact that developers really just love to develop.  Anything else (like timelines, budgets, and resources) are just distractions. VPs really care about some boring stuff, don’t they?

Although many senior developers would rather not deal with the pencil pushing and bean counting, they usually find out that they must learn this, as a survival skill.

For instance, let’s just imagine that you are not a developer, but you are a very ambitious person. You are successful at nearly everything that you put-your-mind-to. So, leading a software team should be no different, right?

How hard can it be?

It doesn’t seem like there are that many mistakes to make, but it is very similar to assembling a working cow, from parts that you buy at a deli. It seems like it shouldn’t be a big deal, right? Just hire some surgeons, and in a few hours, “moo”. What is the big deal?

Unfortunately, you can read lots of books and show a lot of enthusiasm, but in all honesty, you will have to learn from your mistakes, as you go. You could try to learn from others, but that is more of what an organizer does and not a leader. New leaders usually don’t have the confidence to defer to people who know what they are doing. So if you are a new leader, you will feel compelled to lead and control things, and make your own mistakes.  Trusting folks just seems too risky.

It takes a while to learn that [software development projects] are much harder than they should be. So, a new leader, who is learning from his mistakes, will burn-through a lot of clout and will even begin to accumulate a fair amount of debt. It is hard to truly express how much there actually is to learn. I’m not exaggerating when I say that it seems to take FOR-EV-ER to get good at it. Meanwhile, somebody is going to notice that things are not going well. They will look at the person who is leading the debacle (and amassing all of the reputational debt). That is when things start to get ugly.

Owning-up, or not

When you make a mistake, the right-thing-to-do is to accept the blame for your own mistakes. It is right and it is honorable. However, it is exhausting. If you are a new leader, and you are owning up to all of your mistakes, the exhaustion will eventually break you. When it does, you will always pick the next most responsible person.  You will point the finger at the senior developer.

Leader: “Good morning Tim, I’ve moved your desk, to get you some fresh-air and sunshine”.
Me: “Um, you moved my desk under a bus. I know what this is. Just because you didn’t physically [throw me under it] does not mean much”.

Yes, I’ve been under the bus before, and it is survivable. Some would say that it goes with the territory, for a senior developer. However, I would prefer to spend as little time under the bus, as necessary.

The first time someone throws me under a bus, I don’t complain. I guess maybe I’m not so afraid of it any more. However, I have found that if I let it happen a few times, without speaking-up, then it seems to happen more often. Believe it or not, I’ve nearly been fired before, because someone else was making big mistakes and I wasn’t pointing fingers at them. Playing the blame-game is a disgusting practice. I hate it and I avoid it above anything. It is better to privately offer to help the new leader and appeal to his sense of dignity and honor. Hopefully, he isn’t so exhausted that he is running low on both of those.

In the end, it all seems to work out.  It just takes a lot of patience.  When the new manager is panicky, he won’t have patience.  He needs to rely on you.  Be strong.  There is often a sign above my desk that reads “bus stop”. I guess I am okay with that, as long as the bus doesn’t visit me too often.

Posted in IT Psychology | Tagged | Leave a comment

People who hate you for doing a good job

I, and many of my peers have experienced the phenomenon, when you have a colleague that seems to “have it in for you”. Everything you do, just seems to grind their corn. This person isn’t your boss. So the person has no control over what you do and you have little or no effect on this person either. It would be one thing if you were a screw-up, but you are doing a good job. Still, that person just seems to pick-apart anything you do. The person just can’t get off your back. What is that all about?

First a little background:

As a programmer, I don’t see this nearly as often as most people do. Part of it is because programmers have very little contact with other co-workers. A programmer keeps his head down and jams away until all of the programs are done. Then, once the programs are done, there is very little left to do. When there is nothing left to do, there is, um, well, nothing to do. Your job is pretty-much over. So, you usually have to go somewhere else. Therefore, it is hard for programmers to stay-put at one place, for very long. When you don’t stay-put for very long and you don’t interact with people very much, people don’t get to know you and vice-versa.

Every now-and-then, a programmer will land at a company that wants to retain you. As the programs get completed, you get signs. Such as, “the talk” about “moving up” and “taking more responsibility”. Gradually, you are even introduced to people around the company and get invited to meetings and stuff. People talk about what else you can do, other-than programming. This usually means that you are encouraged to stick-around.

Moving up

Usually, most companies prefer to promote from within. Most employees start out low on the totem pole and work their way up. If you have the right personality, and the higher-ups seem to respect and trust you, then the path is paved for you to move up. You might also get some help from your boss. That is, unless your boss is worried about losing you, or if the boss sees you as competition for some reason. Most of the time, your boss is encouraged to groom “the right people” to move up. If that is you, then the process is really cool and works great.

There are some talented people who get overlooked, or passed-over. With a little encouragement, these people could be very successful, but things just don’t work out that way. Likewise, the flip of that happens too. Some people who are terrible, but they move up anyway. That person should be punished instead of promoted. Is the world just hopeless? No. There is some inner game that you cannot see. This is why this sort of thing happens.

Getting the right label

Oddly, the way that a lot of people “get somewhere” in their careers, is by campaigning. Like a politician, you need to get your name out there. People see your face and hear you say nice things. You kiss a few babies and smile and wave at people. Folks see that you are a nice person and they like you. They hope good things happen for you.

In contrast, most geeks are not good at campaigning for themselves. They don’t say hi in a friendly manner. They don’t shake hands or hug people nicely and when they do hug someone, it feels awkward. Instead, geeks tend to hunker-down at their desks and get mountains of stuff done and make everyone else’s lives easier. Unfortunately, this often gains them zero recognition. As a geek, you seem to be doing what you do best. People know it, on some level but that is not at “eye-level”. In fact, if you do your job well, and it makes other people’s jobs easier, they will secretly hope that you never-ever get promoted. Because, if you get promoted, then you won’t be able to do that anymore. Plus, who sees you? Who knows how much work you are really doing. Maybe just you. You can’t promote yourself. Do you see the problem?

Your best foes

The people who are most likely to be your foes are the ones who have it in their heads that they must move up and be in charge of stuff, but do not want to be responsible for much. If they become responsible for stuff, then they can be held accountable, and that is a liability. Those people love TV shows like “survivor”, where the winners succeed by spotting other people who are their competition and work hard to subvert those people. If you are doing a good job and receiving recognition and one of those people identifies you as “competition”, then that person will feel compelled to campaign against you. That person will exert unusual amounts of energy to neutralize your accomplishments. If they can’t win, then they will make sure everyone else loses.

Meanwhile, you are working your butt-off trying to get stuff done and getting criticism from several directions. Where is this coming from? You try to regroup to fix these problems that pop up everywhere. You were doing a good job, but somehow people seem to think that you always make the wrong decision. Your feedback is largely negative. All of your accomplishments are disappearing underneath a growing cloud of complaints. You spend large amounts of time trying to fix the problems. Eventually, you realize that you need to head-off these problems. Otherwise, you can’t make any good progress, to redeem your reputation.

How foes learn this

This is a clever trick that some people were able to master in High School. They were usually known as “the cool kids”. They identified the dorks/nerds/geeks, and campaigned against them in High School and it worked. They got dates and went to prom and were voted “most popular”. Meanwhile, you were studying to get good grades to get into a good university.

In the end, it still comes down to this: some people still get-by on hard-work and smarts, but don’t get rewarded much for doing it. Meanwhile, others prosper by campaigning and self-advertising. They work the system by seeming likeable and trustworthy and it pays-off big-time. It also makes you seem less-likeable, and underlines how much less-warm and friendly, you seem to be.

The wrong solution

It might sound like I am suggesting that you can prosper by turning the tables on these people, but be warned: they have way more experience at this sort of thing than you do. If you aren’t used to that sort of thing, then you have a lot of catching-up to do. Before you try it, I strongly suggest that you should also do some soul-searching and decide if that is the road that you really want to go down. If it is, then start studying how to interact with others better and how to “seem likeable”. You must convince yourself that this is an honorable goal, otherwise, your fakeness will shine through. It must be authentic. You must believe it yourself. You must genuinely develop likeable traits. It sounds weird, but it is actually very normal, and perhaps, you have neglected it and that is the crux of the problem.

Finally, don’t bother picking a fight with your #1 critic. People are not as dumb as you think. They can see when somebody has a grudge on you and they will not buy into it. People hate a villain and they hate rotten people and negativity.  They also don’t like to be told what to think. Just do the right thing, be positive, honest and hard-working. Your critic will eventually shine enough light on you to actually gain you some recognition, but only if you stay on the high road and don’t waiver.

The high-road is a painful path to travel, but frequently tread by the true elite.

Posted in Career, IT Psychology, Professionalism | Tagged , , | Leave a comment

“Ok, sorry”

Gather round, kids. A quick lesson in manners:

Let’s just say that you are on your PC and you need to IM a friend or colleague. Your friend responds with “I can’t talk, I’m presenting right now” or “I’m in a meeting” or something like that. So, what is the correct thing to do?

  1. Respond back with “ok, sorry”
    – or –
  2. Don’t interrupt a second time by saying “ok, sorry”

 

The answer is B.

You already interrupted the person. You know this now. He/she is probably not happy with you already, but is willing to forgive and forget. So, please DO NOT keep sending any messages. Wait till after the meeting, and then apologize.  Apologies are very nice, but not while a person is presenting.  Just save it for later.

I’m a little surprised that everyone doesn’t already know this.

If this is new to you, please write it down or something. Please.

 

Thank you for listening. That is all.

Posted in IT Horror Stories, Personal | Tagged | Leave a comment

Signing certificate not found – Identity Server

Signing certificate not found: CN=COMODO RSA Certification Authority, O=COMODO CA Limited, L=Salford, S=Greater Manchester, C=GB

The reason behind this one, worries me a bit. Our sys-admin was cleaning out some old expired keys. When he did, we got this error.

The way that we resolved it was

1. Go into the database for IdentityServer
2. Find the table named KeyMaterialConfiguration
3. Set the SigningCertificatename to NULL
4. Go to the web page for your IdentityServer. It will now ask you to pick a certificate.
5. Everything works again

This solution makes my skin crawl. I don’t like the idea of allowing [the very next person who gets to this server] to choose an encryption key.

I also wonder if this could be resolved by refreshing the app pool.

If there is not a simple way of fixing this (by reboot, etc), Then I’m going to work on a coding tweak that will detect this error and change the database to simply choose another (arbitrary) key from the list and add a warning message at the bottom of the screen.

Posted in Errors, Lessons Learned | Tagged , , , | Leave a comment

Bad Advice

I’ve met several people in my life who were very smart, but were somewhat unsuccessful in their careers and to some degree, in parts of their lives.  These people did not have any kind of disability that held them back.  They were smart people, who should have done very well but somehow, seemed to run into conflict and resistance often.  There was something else that seemed to be in the way.

When you ask these people if they have some insight into what is going wrong, these people are usually baffled.  They are under the impression that they are doing everything right, but somehow, others are succeeding where they are not.

If you are one of these people, you probably feel like the world is against you and perhaps even wonder if those successful people are part of some secret society that is organized to keep people like you down.  After all, you are doing everything right, and yet people haven’t voted you to be king yet. The people who seem to be successful are different from you (ergo, if you are right, then they must be wrong somehow).  It is so mysterious how the world is wired so backwards.  How could it be?

Well, the answer might surprise you.  Perhaps the thing that is holding you back is that your view of the world is based on some bad advice.  Maybe not just some bad advice.  I know it seems unlikely, but as Clarence Clemons once said, “it is easier to fool people than to convince them that they are fooled”.  Is it possible that you have been fooled.  Could you be convinced?

This may be a little hard to accept, so let me start by describing the symptoms before I talk about the cause.

What They are Doing

When you observe the behavior of people who succeed where you don’t, you might see some differences between their behavior and yours.  For instance those successful people seem to have these traits:

  • The opinion of others might hold a lot of weight (you might even think: too much)
  • Manners seem to be important for some reason
  • They don’t complain much
  • They seem nice to nearly everyone, both bad people and good people
  • They go along with everything and rarely (or never) act rebellious or abrasive

Some of these things may seem disingenuous to you.  Golly, you might even think some of these things are downright fake and are unabashed and outright brown-nosing.  Sometimes, that really gets under your skin.  In fact, some of those people only seem to have conflict with you.  You!  How or why could they find fault with you?!  What is wrong with those people?

Well, if any of that sounded like you, then I may have some news for you.  The problem might not be everybody else.

You may have been the recipient (and acceptor) of some bad advice.  Lets look at some commonly bad advice that tends to darken a person’s viewpoint on (maybe) everything.  Does any of this sound familiar?

  • 75% of all people are a*holes.  But what if they weren’t.  What if you have been treating 75% of people like they were a*holes but 9/10ths of them really were not.  What if those people were simply reacting to the way that you treated them?  Also, what if the actions and behavior of these people were not so bad, but you misjudged them because you were suspicious or cynical?
  • People are popular because they are butt-kissers.  This is a perception thing.  You don’t feel like being nice to people and expect others to be the same as you.  What if you tried being nice to others simply because it is courteous and you felt that you owed everyone a beginning-level of respect.  What if you insisted on treating people the way that you would like to be treated and would not relent on this, even if those people didn’t deserve it?  What if people who treat you badly are doing so because they have an actual problem (without going into detail) and you should cut them a little more slack without demeaning them?
  • #*@ them if they can’t take a joke.  Yes.  Some people can’t take a joke.  They get all bent out of shape at the littlest things.  And so, this is now their problem and you are in no-way obliged to accommodate them. Of course, if this was your mom or grandma or somebody that you respected and loved, then you would try a little harder to be understanding.  The ironic thing is that some cranky people are really just like you.  They may have received some bad advice and they are holding onto it with every fiber of their being.  When you are not exactly like them, they tend to clash with you.  The irony here is that you should recognize the rigid behavior and you should be able to relate to this person because you are the same way, but with different values.  If you can get past that and the other person can too, then you would probably be best friends because you would totally understand each other. Ironic eh?

And so it goes.  A little bad advice can go a long way.  Imagine a person who has received this bad advice and it turns into the dark glasses, by which they view the entire world.

My examples are rather strong ones, but think of other examples of pre-suppositions that you might hold, which color your opinion of people that you don’t really know.  Honestly, those things hold you back too.

If you really want to change your world, start by testing the waters.  Try letting go of some of your expectations.  Try being a better person and see if anyone notices.  They won’t, at first.  However, after a while, you might see the world from a viewpoint that you never knew existed.  Likewise, the world might see you from a different perspective too.  It could turn out better than you expect.

Posted in IT Psychology, Lessons Learned, Professionalism | Tagged , , | Leave a comment

Excessive Diagnostics

When the dung hits the fan, everyone wants the problem fixed yesterday.

If you are the kind of person who thinks-ahead and prepares for bad situations, it is probably because you have some experience in this matter, or you received some really good advice at some point in your career. Most likely, it is the former.  Because, without the experience, it is hard to fully place a value on being truly prepared.

For programmers, there are a few things that every programmer should do to prepare for disasters and bad situations. Specifically, it is best to write your programs with ample diagnostics in each one.  If you don’t know what I mean by “ample”, then let’s just say excessive diagnostics.

Of course, inexperienced developers will question the value of this sort of thing. Inexperienced management will also question the value of it.  After all, it is a simple corner to cut.  “Why do we need that?  When will we ever use it?  I don’t see this in the business requirements. This is out-of-scope”.

You don’t fall for it because you know better. You know that these diagnostics are your “metal detector” to find the needle in the haystack. Someday, something bad will happen in prod.  Things will crash and catch fire, and people will be screaming.  At that moment, you will somehow be able to stay comfortable and keep a level-head.  This is because you know exactly where to look to find the problem. You don’t even need to say “I told you so”.  Even flashing “the look”, will probably seem excessive.  At this moment, the reward is so satisfying.  It is hard to describe.  You knew it was coming someday.  Today, you reap the rewards of being prepared.

I promise that you are better-off with a somewhat smug, but none-the-less happy, “I told you so”, instead of a panicky and angry (with undertones of violence) “I told you so!!!!”.

Be that guy, not the other guy.

Posted in IT Horror Stories, Lessons Learned | Tagged , , , | Leave a comment

Brinkmanship part 2

In part 1, I explained that brinkmanship is the craft of putting yourself (or your team) on-the-brink-of-disaster.  Some people seem to love to dabble in brinkmanship.

Here is my “top 10 list” of favorite (as-in: must avoid) examples of brinkmanship within the programming/IT world:

  1. Making backups but never testing them, until you desperately need to use one
  2. Not checking-in your source code, often enough (anything longer than “weekly”)
  3. Deploying hot-fixes (ie. Moving untested code from dev, to prod) more often than “almost never”
  4. Not preparing a test plan, so, when you deliver your code, you just have to count on the testers (or developers) to think of everything
  5. Not having a plan before you undertake any point of a project
  6. Delivering requirements after the programmers have begun programming (or for Agile: changing requirements during a sprint, instead of putting them in the next sprint)
  7. Acting like there is an emergency, more often than “almost never”
  8. Not monitoring production systems, not keeping logs or not monitoring your logs
  9. Constantly trying to reduce timelines and maximize efficiency of staff, or generally over-working your staff
  10. Not purchasing the software/tools/utilities/equipment/licenses that you require to run things/systems properly

There are a few more things which are not specifically part of brinkmanship, they are common ingredients that contribute to brinkmanship.  Without them, you probably would not be able to experience brinkmanship, in the first place:

  • Not planning ahead
  • Not learning from your mistakes
  • Placing blame instead of taking responsibility
  • Accumulating technical debt

Some of these don’t seem like a big deal, and honestly, they don’t have to be.  There are some companies who are very chilled-out and just go-with-the-flow. They are keeping it loose and free.  In that case, it is fine to expect everyone else to wing it too.  Under circumstances like that, I suppose you can’t have brinkmanship.  You are probably expecting stuff to break and be down occasionally.  When it happens, it is not a surprise, and nobody freaks-out over it.

However, if you are pushing an aggressive timeline, things are going to seem much more serious.  Mistakes, flaws and outages are going to interfere with your timeline.  It sometimes breeds more corner cutting and panicked choices.  Under those conditions, you better put a lot of effort into being organized and methodical.  In fact, if you aren’t doing much to organize your projects, or plan ahead, then you are engaging in brinkmanship.

I know some people live for the excitement that comes from brinkmanship.  The cowboy life is the life for them.  Unfortunately, not many people share the same appreciation for this kind of thrill.  In fact, it is common for non-thrill-seekers to seem irritated and maybe even counter-motivated, when they are told to clean up a mess right now, when they didn’t make or cause the mess, and maybe they even “told-you-so”.  This is not an un-natural response.  You will not be successful at brow-beating it out of those people (the non-cowboys).

Brinkmanship, it is not for everyone.  It is a dangerous way of life and there are more-sound ways of operating.  If you must hand out grenades to everyone, do not keep the pins for yourself.  “All-hands on-deck” will rapidly become un-achievable.

Posted in IT Horror Stories, Lessons Learned, Professionalism | Leave a comment