Monday, August 2, 2010

Decisions and the Little Things.

Slight disclaimer: there will be a lengthy portion of this post dedicated to a situation I encountered at work today. It will get semi-technical, and I will not be offended in the least if you skip over it. I'll clearly indicate where it begins and ends to accomodate those who have no interest in my web development exploits.

I've been subjected to a lot of discussion about tradeoffs this summer. Many people around me are making big life decisions, and not many of them have been afforded a clear-cut "correct" choice. Friends are deciding where to live and work, family members are making career decisions, and relationship conundrums are popping up occasionally. Well, that's life I suppose, and at some point we need to get good at buckling down, praying about an issue, laying out the pros and cons, and making an informed decision. It's still possible to choose incorrectly, but most of the time even making an educated guess will help someone avoid royally screwing him or herself.

These types of decisions have always fascinated me, probably because I haven't encountered very many of them (I'm the one who told people in sixth grade I was planning on going to Calvin for a degree in computer engineering, maybe a math minor, and continuing on to Michigan to get my masters degree. For better or worse, I've had things planned out for a while.) and they still retain a bit of their novelty. At some point, I'm sure I'll get sick of them and just hope I can relax and keep doing what I'm doing for a while, but who knows if that will ever happen. Life is fluid, and attempting to keep it static is futile at best, maddening at worst.

I don't have time to dive into how I think people should make life-altering decisions, mostly because I don't really know. What I do want to talk about is something to consider when making little decisions that have seemingly small tradeoffs.

If you have no interest in programming, now is the time to stop reading. I'll let you know when it's safe to rejoin the conversation.

Since I have this little pet fascination with tricky decisions, I find that when I run across miniature examples in my daily life, be it at work or somewhere else, I spend an inordinate amount of time pondering them.

My example for today has to do with a grade-entry tool that I put together in the last month or so for the seminary. Previously, when a professor wanted to enter the grades for a class at the end of the semester, he or she was required to log into an outdated system, worm through several layers of worthless clutter, and finally punch in the appropriate grade for each student. Then, IT had the privilege of passing that data through two other systems, making sure that all of the grades came out unchanged, so that students could view their grades online. The tool I put together is simply a website that a professor can go to, click on which class they want to enter grades for, and quickly enter them directly into the system at the last stage of the previous process. It's fast, it's easy, and it removes not only a couple of steps for the professors, but the entire IT process as well.

Cool huh? I had a blast putting that thing together.

Now for the teensy tiny predicament. When putting together the grade entry webpage, I originally used text boxes. If a teacher wanted to give a student a B-, he or she could type "B-" in the textbox. Simple enough. However, my boss wanted to make sure no one entered a "P+" or a "SDFV," so I threw in a little bit of code to validate the entered grade against a set list of possible grades.

Just as I got this working, my boss turns to me and asks, "How hard would it be to use a drop down list instead?" I thought for a few moments, and figured it wouldn't be tough. Sure enough, a little while later, we've got drop down lists (populated with a list of valid grades) that professors can use. There's no longer any possibility that a professor can enter an invalid grade.

Pausing for a moment here, I just want to explain that this example is 100% EXACTLY what gets me excited in a work environment. The back and forth of "How hard would be be to do X?" "I'm not sure, let me find out!" is what intrigues me about user interface design. There are always improvements that can be made, and ironing out those little details can make a huge difference to the end-user. Little frustrations add up to produce a pretty pissed off person, but the tiny victories (such as software performing as expected) can really brighten someone's day.


I "finished" that web page last week at some point, and figured I was all done until my boss turned to me again today and said, "Hmm, it's a little frustrating that if I punch in a 'B' on the keyboard it automatically chooses 'B+' instead." If you've ever used a drop down box to indicate your state or country, you know exactly what he's talking about. Punching in 'M' won't bring you right to Michigan, it'll bring you to the highest selection starting with 'M.' In this case, 'B+' is above 'B' for obvious reasons, so to get to the 'B' you either need to type an extra down-arrow or move your hand to your mouse to choose the correct entry. (Although I'm sure some students would like it if their grades got bumped up accidentally every once in a while.)

That's interesting! There was a tradeoff moving from the text box to the drop down list. We lost the ability for a professor to just type in exactly what he wanted to grade to be and trust that that was what would be entered into the system. Tomorrow I need to try to see if I can code in there a way for the drop down list to go to the 'B' rather than the 'B+' right off the bat, so we'll see how that goes. If I can, I'll have avoided a decision altogether by getting the best of both worlds.

Ok, sorry about that, feel free to start reading again if you haven't already gone back to poring over Facebook photos.

I mentioned it a moment ago, but I'll repeat and expand on it for those just jumping back in. For most people, their mood when they get home from work or go to bed almost never is the result of some gigantic, earth-shattering incident. Rarely do people go to bed happy because they won the lottery or they fell in love that afternoon. Conversely, people usually don't go to bed angry or depressed because someone ran over their dog or they found out they have a terminal disease. On most occasions, it's because their emotional scale that weighs the little victories against the little defeats has tipped in one direction or the other.

I don't have any great advice for making big life decisions that hasn't been said a thousand times already. However, if you happen to be making a (sometimes incredibly minor) decision that someone might have to deal with on a regular basis, try to consider how you can do your part to provide them with a few extra little victories.


  1. good stuff... and do (/did) you read Joel on Software too?

  2. I haven't, but after taking a look for a few minutes I plan to start. Thanks for the heads up!

  3. Good stuff Paul, That user interface stuff is actually a lot of what I've been doing. Except I'm the guy talking to the IT person going "we should have a drop down box" I've actually said that this summer...haha.