The 'Tim' Problem [ or change 'Tim' to someone you know...... ]
While many developers sit behind a desk, only seeing the sun on their way to and from the parking lot, Mike felt lucky that he got to travel all around the country performing installations of his company's enterprise software. He enjoyed seeing new places, exploring the local nightlife, and most importantly for a business traveler, expensing everything to a corporate account.
Having installed the software hundreds of times and in dozens of cities, the process had become routine for Mike. He'd send the client's IT administrator a list of requirements, verify that he'd have the appropriate access, and when he'd arrive on-site, spend an hour or two configuring the software. His job after that was to monitor training classes given by a coworker he traveled with, while brushing up on his Freecell.
The first sign that this installation would be different was Mike's numerous contacts with the Tim, the client's project manager and IT administrator. A simple request for a list of the twenty-odd users of the software was like a conversation with an eight-year old.
"What format do you want the list in?" Tim asked, "I could send it in Excel, Word, Access, or CSV."
"Any of them is fine," Mike replied, "all I need is a list of names, emails, and departments."
"Are you sure don't have a preference?"
"No, it's only a couple dozen users," Mike re-explained, "we're just going to type them in by hand."
"I'll do Excel then," Tim said, "this way, you can import it. What other fields? I can give you their hire date, birth date, etc."
"Excel will do..." Mike paused, "but all I need are names, emails, and departments; our software doesn't store any other fields."
"I'll put in dates. Do you prefer text, numeric, or date-time formats?"
The dialog dragged on and on, as Tim continued to ask questions about what fields to sort on, how he planned to import the data, whether boolean values should be numbers or letters, and so on. Mike just gave up, and decided to wait until he'd arrive on location to input the data. Sure, he would have less time for Freecell this trip, but typing in a few dozen records wasn't very time consuming.
When Mike and his colleague arrived at the site, they learned that Tim hadn't bothered to tell anyone that highly-paid consultants were coming to install software and train the team. Presumably, he was too busy sorting and re-sorting Excel spreadsheets.
But not to worry, Tim could fix it. Without even asking Mike, he pulled together everyone in the office for an "emergency training" meeting. That's when Mike explained that it was standard procedure to install the software before training people on how to use it.
There was also one other small problem: Tim neglected to complete any of the prerequisite steps for installing their software. Well, it was small in comparison to the other problem: Tim didn't have the key to the server room or even administrative access to the server. While Tim worked to track down the network administrator (who happened to be on vacation), Mike's colleague did what little training he could, allowing Mike to get in a few good hours of Freecell.
Anything you can do, Tim can do better
Later that day, Mike was able to work with the fairly disgruntled network admin to configure the server and get their software up and running. This meant that they could resume training first thing in the morning. At least, that's what they thought.
Instead of letting Mike and his colleague run the training session, Tim had some other priorities. He explained at length that he already knew how to use the software because, after all, he knew .NET. Of course, even if the software were written in .NET (it was Java-based), the knowledge was as relevant as metallurgy is to driving a racing car.
Tim then grilled Mike as to whether or not the software would work as a "thin client." It was a web-based application, so the answer was clearly yes, but the point of confusion was apparently the definition of "thin client." What Tim actually meant was some computer he had with small chassis.
Then Tim demanded to know if the software would work with terminal services, since he didn't like coming into the office. He even wasted everyone's training time by explaining how he would convert the GUI text into Spanish. Finally, when he saw a PGP file, he commended Mike's team for using "Plain-Good Privacy" security methods.
Solving the Tim problem
This process continued through the first half of the day, and Tim's constant questioning did nothing more than confuse the users in the room. Mike realized that supporting a poorly trained staff would be a nightmare once they got back home, so he came up with an idea.
"We've got an emergency we need your help," Mike told Tim after lunch, "we need a list of people who are participating in the training. It's a high priority, so could you work on that while we continue training?"
"Sure, sounds easy enough. I'll have it for you right away", Tim replied.
Mike handed Tim a flash drive and smiled, knowing that he had taken the bait. A little later, Tim returned with the drive and Mike popped it in his system. Before Tim had an opportunity to interrupt the training session with another question, Mike pre-empted it with a request. "That's great Tim, but can you also add the phone number and office extension?".
"No problem Mike, I'll get right on it!"
An hour later, Tim returned again with the drive. "Wow, that's even better," Mike responded, "but could you sort by employee last name and shorten the job title field to 30 characters max? It needs to be just right."
The process continued for a few more iterations, and Tim seemed genuinely happy that his meticulous expertise was being utilized. More importantly, without Tim in the training session, they were able to finish up and even cover some of the advanced features. As Mike was packing up to hurry off and catch a plane, Tim handed him the final result of all of his "coding".
"Here's the data you requested. I put it together just the way you wanted!"
"Thanks Tim, I'll take a look at it on the plane."
After his second expense-accounted drink of the flight, Mike plugged Tim's USB stick into his computer and promptly selected the Format Disk option. Content in the knowledge he had resolved the "Tim" problem, Mike decided to take a nap for the rest of his flight home.