How do non-technical managers evaluate programmers?

When I was an undergraduate, I argued with my professor about the management theory that said it was not necessary to understand the business to be an effective manager but only to understand management. The example he gave (and that I never accepted) was of a carriage in the park. The driver of the carriage has never been the horse and he cannot pull the carriage like the horse. He just needs to understand the horse’s motivation and either use the carrot or the stick to get the horse to do the job.

OLYMPUS DIGITAL CAMERA

Here is where that analogy falls down – the carriage driver knows exactly where he wants to go, how fast he wants to go, where he wants to turn and so on. This is not so true with managers of programmers.

I was thinking about this topic today as I rewrote a part of our game. We had originally used surveymonkey, because we had a deadline to meet to deliver and test a prototype. That being done, we sat down to re-write a portion of the testing to make it better.


The design is as follows:

  • testflowThe student is given a problem of moderate difficulty.
  • If incorrect, the student gets the easiest problem in the domain (Q1)
  • If the student gets the easiest problem incorrect, the student exits the test and gets sent to study. There is no point in attempting several more difficult problems if he or she has failed on the medium and easy problems.
  • If correct at the beginning problem, the student gets sent to one of slightly greater difficulty.
  • If the student gets the more difficult problem correct, the next is of even greater difficulty,  and so on
  • Any time the student misses two consecutive problems, the test exits.
  • The student must get five problems correctly, increasing in difficulty to the last problem. When it becomes mathematically impossible to get five problems correctly, the test exits.
  • If the student answers five problems correctly, in increasing difficulty, including the last problem, it is a success and the student can go on to the next part of the game.

Once I sat down and designed this, I coded it in JavaScript for one test. I could have stopped there, copied the code into the header of every test and been done for the day. If I had done that, how would my hypothetical carriage driver of a boss know? Not only would it have worked but it may have been done sooner than what I did.

What I did was, after having completed the above for one test, rewrote all of the functions to be more generalizable. Then, I rewrote all of the tests so that for each one the beginning question was zero and the remaining questions had ideas of q1 – q7. I moved the javascript into a separate file that all of the test files call. This required some time (not a lot), to rewrite the javascript code and more time to rewrite every one of the test files.

There are three advantages to this:

  1. When we add new tests, it will be very fast and easy.
  2. Documentation of all of the test files is easier, because all that is left in those files is just some forms that call the function in this one scoring file.
  3. I only need to test the code and get it working once.

We only have about 40 tests at this point but within the next few months we will have hundreds. The extra time I spent today to rewrite the code from the first test that worked to be more generalizable will pay off greatly. However, if I had a non-programming manager, how would he or she know that I unless I explained it? To what extent is it reasonable  to expect that the people you supervise to you should be explaining to you what they did and why? Would I even have thought of explaining it? Would the supervisor have even thought to have asked? I completed what needed to be done to get the tests to work as diagrammed, within the time frame, but one way of doing it was far superior to another.

I’m not complaining mind you. I did the original design because I knew we had a short deadline, and then I did the re-design and coded it. This isn’t a rhetorical question. I really am wondering about this, because I have worked for pretty good people almost all of my life, including a couple of really terrific bosses. Both had technical backgrounds, but while one had a degree in computer science, the second came from mechanical engineering and couldn’t write an IF statement. What the latter did, though, was find the technical staff with the very best reputations, recruit them to come work for him and spend much of his time sailing or playing golf. I remember his recruitment pitch went something like this:

Everyone says you are really, really good. I figure most technical people in this company are under-valued so I’m on a mission to get the very best people to work in my group. They make me look good and I will do whatever I can to make them happy – higher salary, travel budget, better equipment – anything short of whisky and hookers, you name it and I’ll get it for you. Well, you’re a woman so I guess you wouldn’t want hookers, would you?

He was very successful for a long time and moved up in management quite rapidly. I eventually moved away and lost track of him.

local_offerevent_note March 14, 2013

account_box AnnMaria De Mars

2 thoughts on “How do non-technical managers evaluate programmers?”

  • Dr. D, will the game utilize only the problems or tests you program in, or can/does/will the teacher have a way to input his or her own questions to target individual student needs?

  • The game will only have the problems and tests we program in. However, in our test classrooms in the fall, some teachers created their own materials and explained to the students that this was the information they needed to be able to succeed and get to the next level in the game – which they told us was very motivating to the students.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.