I recently wrote a Windows service using Microsoft .Net technologies to act as a broker between two heterogeneous systems.  Being a service, there is obviously no user interface for one to get feedback on how the process is executing or if it has gone into a state of error.  My solution to this was to build a very complex logging mechanism which logs information to the Event Viewer, a text file and when needed snds emails to the administrator.

All of this of course works very much as expected, but what about data integrity.  What if one of more of my systems has suspect data?  Of course the typical response to this question is for the developer to simply say, "Well the data has to be right since the app has to have good data at the very least in order to have basic operation."  So I don't believe anyone reading this would argue with that, but there are times when dealing with third parties that data can become corrupt due to errors in both their database and the communication layer.  When this happens, who is really hurt by the bad data?  The answer of course is the developer and his management chain.  It is not immediatly the third party.

To battle this problem there has to be a mechanism for at least handling data integrity issues so that better information can be sent to the admin to combat the issues.  Currently, the way we are dealing with this is by placing in-line rules into the service code as needed and passing as much data as possible back to the admin to further investigate so he can escalate the issues with the vendor.

Many information technology departments, already saddled with a heavy load due to budget cutting in a bad economy will have a difficult time building the appropriate rules into the code simply because they don't have enough time in the day.  Currently I don't have a good solution to the problem other than to make sure that every company has a data steward.  Just a food for thought blog entry.

Introduction
I have been in the software development business now for twelve years.  I have worked as a contractor, consultant and an in-house developer and thus have been on many an interview along the way.  First, it should be understood that companies generally do not know how to interview as noted in the book "What color is your parachute?" by Richard Halls, but worse than that most companies put other developers in the room to interview the job candidate as they wish.  These are people who have their own agendas and often expect more in the interview than they would expect from an interview.  I want to outline several problems I have seen over the years in the IT interview process so that perhaps someone might read this blog and find a better solution to this dilemma.  I don't expect you to agree with everything here but please read it with an open mind and try to make real changes in your interview process.

The Standard IT Interview Process
Interviews usually go through the following workflow.  First, the resume is received by a human resources team or a recruiter who specializes in finding IT talent.  On their desks it is scrutinized for spelling mistakes, overselling and the ability of the job candidate to articulate his skill set.  I really do not see a problem here as this is what one would expect from a good HR employee.

Next, the handful of candidates who were chosen based on their resume are often scheduled for a phone interview.  The phone interview varies but is often peppered with questions about who you are and where you have been and in many cases a series of basic programming syntax questions are asked. 

Finally, one or two candidates are chosen from phone interview for a face to face interview.  A candidate coming in for a face to face interview could be subjected to several interviews with various levels of management and development staff.  In some cases these combined interviews can last several hours and produce very little toward the goal of hiring a candidate.  The last step is often repeated one or two more times until the company in question is sure they have the right employee.  Below I have outlined several interview types which I have identified over the years and why they are effective or in most cases not effective.

The Test Driven Interview
Nothing is more daunting to both the developer and the interviewer than the test driven interview.  In this interview scenario, there is often a verbal and/or written examination which can vary from simple syntax questions on a particular language to full blown project related questions where a developer codes a business scenario under a given time window.
Testing has a purpose in an interview, but testing is often not realistic and not focused.  First, asking a seasoned developer syntax questions is often just an exercise in futility.  Veteran developers have authored projects in languages ranging from Java to  T-SQL to Objective C and realize that syntax is pretty much the same across all OO languages.  A good handle on Google is about the only tool a long term developer needs.  So if you are interviewing a senior or lead developer keep the syntax questions to a very minimum. It is better for the interviewer to tailor their questions toward the subject of architecture and problem solving.  In other words, a for loop is a for loop so who cares how it is executed.

The Good Ol' Boy Interview
In this type of interview, general questions are often asked which probe the developer to see what kind of a fit he would be in a particular team.  I have been asked questions such as "Do you drink beer?" or "Do you play World of Warcraft?" or "What is your political affiliation?"  These types of questions do have a  place in the interview but one needs to be careful that the entire interview isn't questions about hobbies and life stories.  Personally I would stay away from questions regarding alcohol and political preference.  The interviewer should be able to get a good feeling about the candidate without asking personal questions.  Just as a note, I usually excel at the Good ol' Boy interviews because, well, I am a good ol' boy.

The Bad Cop, Bad Cop Interview
Did I mean "Good Cop, Bad Cop?"  No, I meant bad cop, bad cop.  In this type of interview the interviewers make every attempt to intimidate the developer and make him crack.  I think somehow they think if the ask every question like a police office trying to get someone to confess to murder they will weed out the weak.  In this particular case they often project themselves with a solemn face and ask questions in monotone.  My personal feeling is that they really don't want to be there and they really don't want another developer on the team so they try to run the poor guy off.  Usually they ask very difficult questions in an effort to completely fluster the candidate.  In one bad cop interview I was asked "How many parameters can be passed into a stored procedure in SQL Server 2005?"  Really, is anyone passing 1024 parameters into a stored procedure?  Think about the questions you ask. Are they practical and meaningful or just trivia?  In one instance I became so angered by the silly questions they were asking, I just started asking them difficult questions.  Of course they didn't know the answers either.  Interviewing is not a game of Jeopardy, it is a way to find out if a candidate will be a good fit and be productive in an organization.

The Senate Hearing Interview
Similar to the Test Driven Interview, in this scenario, the candidate is faced with a panel of perhaps 6 to 10 developers firing away question after question ranging from simple to the absurd. These interviews can often last over an hour.

In our world, there is a concept called fight or flight.  When a person is put into a pressure cooker situation such as a panel of interviewers the fight or flight mode is activated.  I have reacted in this situation in one of two ways.  Either I become angry that they are asking so many questions from so many directions and I begin to get defensive or I just give up.  Remember that you are hiring a developer not an attorney.  A software developer does not need to be able to stand up to a barrage of questions coming from 10 different directions.  Most developers are involved in very small groups and do a large amount of head down development with small meetings scattered in.  By the end of this interview the developer is tired and generally turned off about your organization.

Conclusion
An interview should be composed of between 1 to 3 people and be structured as follows.

  • Get to know the developer time  (10 minutes) - question to ask might include topics about where he is from where he went to school and what type of hobbies he participates in.  Do not ask him where he sees himself in 10 years.  This can be a huge turnoff for me anyway.
  • Project Related Questions (10 minutes) - questions might include topics about the business problems solved and how architecturally they were solved.  Also ask questions about technologies used to solve the problem.
  • How To Questions (10 minutes) - questions might include topics about how would I connect to a database and what types of objects are involved. Be creative here but not ridiculous.  Don't ask questions about the value of "x".  This is a waste of time!
  • Questions from the Candidate (10 minutes) - this is the time for the candidate to ask you questions.

The interview lasts no longer than 40 to 45 minutes!  Note that in the end no interview process is going to giv e you the perfect candidate but it can make the choice a little easier.  Culture and fit probably play the biggest role of all in finding the perfect developer.  Technology can be learned but communication skills cannot.  Finally, don't forget about the technical references.  Usually they are coworkers or a manager and can offer good insight into what technologies he knows and what he has done.


  
Although this is not directly music related I did here a sermon on the radio this morning which really spoke to me and I thought I would share it.  I was listening to 830am and Chip Ingram was discussing the issue of brotherly love and harmony among the Church. The message was entitled "Stop the Violence Part 2."

The verse he used for his lesson was Matthew 5:20 - 23

"You have heard that it was said to the people long ago, 'Do not murder, and anyone who murders will be subject to judgment.'  But I tell you that anyone who is angry with his brother will be subject to judgment. Again, anyone who says to his brother, 'Raca, ' is answerable to the Sanhedrin. But anyone who says, 'You fool!' will be in danger of the fire of hell."
What a powerful and sobering passage and it is even more powerful in full context of the chapter.  I encourage you to read the whole passage.  In the above verses, Christ compares murder with harboring resentment toward a brother.  In the first verse Christ says "anyone who is angry with his brother will be subject to judgement."  Here, anger is translated or means  "a smoldering type of anger or bitterness that is routed in vengeance." Christ is comparing anger to murder!  Folks this is a very serious issue for believers.  We cannot harbor anger against a fellow believer. If it means you have to apologize or beg forgiveness or forgive someone then do it today!  Get your life right.

The word "Raca" in this verse is a difficult word to translate but according to Biblical scholars it means to despise with arrogant contempt.  Mr. Ingram goes on to say this type of anger is where you put someone down and say cutting and cynical things to them. The intent here is to cut them to the heart with words.

You know I had a personal experience with this topic not long ago.  I had wronged a brother who I used to work for and I suffered tremendously with dreams and guilt.  Finally after I had a dream about reconciliation with him I talked to him and told him how sorry I was and that I shouldn't have done and said the things I said.  It was tough, but the relief and joy I felt afterward was something difficult to put into words.

Please if you have offended a brother, go today and resolve it before the judgment of God resolves it for you!

Last night was largely a typical night in my household. The kids and my wife went off to bed and I stayed up to watch some old episodes of Emergency on Netflix.  I began to slip off to sleep but was awoken by my wife calling me to turn off the TV and go to sleep.  No big deal, still a very typical evening. The room was somewhat darkened as I made my way to the front door to make sure it was locked.  The only light came from the TV which gave off its typical eerie glow.

As I walked back toward the kitchen, without warning,  I hear a loud bang of kitchen chairs smashing together, then scratches of feet across the kitchen floor.  All of this was followed by more banging against kitchen cabinets.  Now I am half asleep at this point so needless to say I was more than startled by this eruption.  As I neared the dimly lit kitchen I noticed that my dog was causing all this commotion. I could clearly see her gyrating and flopping in all directions.  My first thought was she was having a seizure as this was the same type of behavior I have seen in other dogs we have owned.

So I yelled her name, "Puppy are you OK?"  Now I am right on top of her so I flip on the kitchen light and clearly see her problem.  A grey shadow darts across the floor in front of me followed by puppy in full pursuit.  A mouse!  My dog was chasing a mouse!  Not only was she chasing the mouse but she now has it cornered against the cabinetry. 

She is about to go in for the kill when I grab her collar and yell no!  I didn't want her to eat it because we use poison in the house to control the mice.  So I dragged puppy to my wife by the collar and reenter the kitchen just in time to see the mouse slip under the refrigerator.

Who needs a cat?
First, let me say I have been with AT&T since 2007 so that qualifies me to at least make a decent opinion of the company and its services.  It is also my sincere hope that AT&T will provide its customers better options in the future.

For the first two years the service went pretty well.  A few dropped calls from areas where the antennas were not properly aimed, but that is to be expected to some degree.  The real problems began after upgrading to the Blackberry Curve.  I went with the curve upgrade in 2010 mainly because the upgrade was cheap and I was doing some Blackberry development at the time.  It really wasn't a bad phone, although I must admit, it was no IPhone.  Well to make a long story short the phone quit working and was no longer under any warranties so I contacted AT&T to help me.  Yeah I know they were under no obligation to help me but I figure they are sitting on a ton of refurb phones and they make their money off the services.  I have been a customer since 2007 and have always made my payments on time.  Surely they will help me get another refurb to get by with.

Well a year later I still have no phone but I am sitting on a contract I can't get out of.  I ask you, is it worth it to them to keep losing customers?  Apparently so.  I think part of the problem is they are so large that the customer service people cannot make important descisions to keep the customers due to strict rules for employees. One thing I know  is that as soon as this contract is up I am going to another provider and it will most likely be a long time before I come back.

They will offer me some great deal in December 2011 to upgrade my phone to try and keep me, but I am going to have to fight the desire for the phone and move on. 
God has blessed me to live on this earth 38 years and in those years I have never seen an ant invasion such as what I have seen this year in North Carolina.  Our yard has ant hills everywhere, they have invaded the house and yesterday I find about 100 of them swarming under the door of my car.

 The species appears to be "the little black ant"  and they are really a pain in the tail as far as their intrusion factor.  At least they do not bite or one has never bitten me.
Like many citizens of the US who are looking for change in the government, I watched the Fox News presidential debate on 8/12/2011.  My overall impression of the debate was that most of the candidates were just playing politics as usual and would not engage fully on the issues.  What we need is a no nonsense president who can stand up to the Washington bureaucrats and put and end to the debt/deficit.  Here is my take on the stand out candidates...

Mitt Romney - this guy is old school politics at its best.  He constantly dodges questions and tries to please a larger base of people.  I really don't know why there are so many who think he is the best candidate out there and I am tired of the Republican party trying to push him on the people.  He does have some good ideas but the other candidates also have the same ideas and they don't believe in social medicine.  This guy is out in my opinion.  Perhaps he would make a decent vice president.

Herman Cain - without a doubt one of the best candidates on the platform but he suffers from not having significant name recognition and no political experience.  He is a no nonsense kind of guy and I respect that enough that I would vote for him. I especially like his views on tax reform and social issues, but right now I don't think he can grab the American vote.  A good choice for a VP.

Michele Bachmann - sassy and ready for a fight, but is her fighting spirit too much for America?  I think the answer is no.  We need someone who is sassy and can stand up to other entrenched veteran politicians.  It is sad that during this debate, Fox News intentionally placed her next to her old rival Tim Pawlenty as a ratings boost which was tasteless.  Again a serious contender who could get my vote and I really want to here how she is going to solve the debt crisis.

Newt Gingrich  - Newt is another candidate that knows his way around Washington, is smart and has proven to make some good decisions, but this is also his greatest weakness.  He is from a generation who plays the Washington political game and the time for that game is over.  We are in a terrible financial and moral decline in America and we need someone who is energetic and able to take on the world.  Newt is not someone who would get my vote in most cases.  He is best left to retire as an old tired senator.

The big loser in last nights debate was Fox News.  I was completely embarrassed by many of the questions which were posed.  The questions seemed to attack the candidates at a level other than their policies and Fox should be ashamed for this.  The American people want to know how the candidates stand on the issues not why their campaign doesn't have any money.  I hope that some of the producers got chewed out by their management this morning for that showing.