Meeting Fu

When it comes to business, one of the greatest pains are the glut of meetings the average large corporation insists on having. As a programmer, I have come to the point where I estimate any project at least three times the amount of hours I actually need to do it, in part to leave room for mistakes and redesigns, but mostly to cover the seemingly endless meetings the client will wish to have.

The worst offender of wasted time is the Status Meeting with the client. Now, Status Meetings with your manager or with other team members can be quite productive, but with the client its just because they want to see work being done. The first problem is that not all work can be seen by the client. If the code I have worked on has made part of the program function better, or differently behind the scenes, then there is no screen I can show the client to say “Look what I did”. This results in two behaviors:

1) The stack of paper. When a client insists on Status Meetings being face to face, I cannot go to the meeting empty handed. Despite the fact that my job as a programmer is almost entirely paperless, I have a stack of paper in a drawer of my desk that contains print outs of sections of code (from my personal web page), spreadsheets (of comic books and a sample timesheet I made for a friend), manuals (for my universal remote among other things), and a complete guide to Teradata specific query formats. Thrown on top will often be one or two emails printed that concern the project from the client I am meeting with, and two pads of paper, one with a task list (a huge TO DO scrawled at the top) with items crossed out and one with various ramblings and scribblings. I take all this stack of well thumbed paper with me to the meeting, and then periodically I will shuffle through it before pulling out a random piece of paper and then either agreeing or disagreeing with the client.

2) Useless screen modifications. During the project planning stages, I will suggest that certain changes get made to the layout of the screens, more often the initial design of the screens is done UOP (Ugly On Purpose) so that they can be fixed later. Clients absolutely love to see things move around the screen to new places, especially if they believe it is their personal input that is resulting in the changes (one item may clearly belong on the left side of the screen, but I will place it on the right and try to get the client to suggest we move it to the left). All this designing and redesigning pages wastes time both in and out of meetings.

The best bet, however, when dealing with meetings is to take extra care when planning them.

Step one, if your company uses Outlook to schedule meetings make sure than any time you don’t want there to be a meeting, you have something scheduled already. For example, from 11:30 am to 12:30 pm every day, I eat lunch, and to avoid people (especially people in other time zones) from scheduling meetings during my lunch, I have a meeting scheduled every day called “Provision Processing” (Food Eating) and it is attended by a few random people who also wish to eat lunch at the same time I do.

The next step is to never schedule a meeting on a day where everyone is open, specifically the client. Try to find a day where they already have five hours of meetings planned. Your best bet is to look for a day when they look all booked up except for an hour or hour and a half around noon. Since you took my advice on Step One, your lunch is already blocked, but that gap is probably where they plan to have lunch. Schedule it then. If it does happen to fall into their lunch, the meeting is likely to run quick since they want to get out of there. Basically, anything you can do to make the client initiate shortening the meeting is great.

If all else fails, call in sick. Sore throat, take my wife/kid/father/dog to the doctor. Specificity is not your friend, stay generic when possible but if you have to give details, make and keep a list so you can remember what fictitious ailments you have assigned to your family members. Never ever make it serious though. If you ever fib your way into Get Well cards, you’ve gone too far.

Of course, none of this applies if you actually have stuff to show the client. The honest truth is always the best policy when its good news. All this other stuff is just to avoid having to explain to the client that they are honestly clueless. You might also get extremely lucky and have a client who understands and some weeks is willing to simply accept “Work is progressing and is on track, but there is nothing to show you this week.” In which case, ignore everything I said.

Except the thing about scheduling a meeting for your lunch.

Ignoranceproofing

In Business, there are two types of people.

The first type is the kind of person who expects any individual who has a job to be able to do that job. This means that the individual needs to make the effort to understand each job function and why it is done. They also need to have a fundamental comprehension of the equipment they are involved with on a day to day basis.

The second type is the kind of person who expects the tools they use in their job to not allow them to make mistakes, so that even if they do not understand what they are doing, what they need to do is explained for them at every step and wrong choices are incapable of being made.

I’m the first type. And because of that, when I write programs, I write them so that everything that needs to be possible is available. Many people I write these programs for are the second type, and they want my program to analyse data (and read minds) and allow them on any given screen to only be able to do what they are required to do for their job.

For example, I have a screen that allows you to edit the status of a port and to edit the assignments of that port. I coded it completely open (you can edit either at any time) because our database and backend has been shown to have… quirks where data goes missing. The people I am writing it for want the screen to only allow you to set a port’s status to working if an assignment exists, and only to set it to available if no assignment exists. They also want adding or deleting an assignment disabled if the port is in a working status. So, if a bug happens that obliterates an assignment while leaving the port in a working status… my way, you add the assignment back. Their way… you have to set the port to available, then make the assignment, and then set the port back to working. And if for some reason you want to manually delete a port… my way, delete assignment, set port to available. Their way, set the port to available, delete assignment.

Now, the question is, do you see why my way is better?

This screen is not the entire application. And there are hundreds of people using the application. On another screen, there is an equipment assignment page that searches for and offers available ports for assignment. In both cases, they are making the port available for assignment when it is not ready to be (or is not going to be) available.

So, I do it their way… and the next complaint I get is that one person was working on the manual screen above and the port was assigned by the automatic screen after they made it available when it wasn’t really available. Now they want me to code in a delay, store a time stamp and only offer to automatic assignments ports that have been available for at least an hour… *sigh*

Blipverts

One of the things I used to enjoy most about going to see a movie at the theater was the pre-show entertainment. Long ago it was simply some piped in music. Then they upgraded to those movie network things where they would actually play selections from movie soundtracks and on the screen they would project slides with ads for the candy counter, upcoming movies, local businesses where you could take your ticket stub for a discount, and trivia.

The trivia was the clincher for me. Either it was actual questions or those ones where they show you the high school yearbook picture of someone famous and you had to guess who it is. Sometimes they weren’t even entertainment questions.

At the Delk 10 cinema, my theater of choice for a couple of years, one of their auditoriums had the slides mixed up. My younger brother and I went and memorized the mixed up order, and at later visits we would confound the other audience members by yelling out the correct incorrect answers. “Who is the top money winner in professional golf?” “Cooperstown.” What movie is the most recent to sweep the top oscars?” “Tom Kite.” “What city is the location of the baseball Hall of Fame?” “Silence of the Lambs.”

This week I went to see Cars at the theater (I’ll review that later), and noticed that there was no trivia anymore. In fact, their slideshow had been cut down to about maybe twenty slides at most (it is actually a Power Point presentation these days, no more slides). And the music wasn’t real music anymore, it was fifteen to twenty second clips of songs, not even enough to decide if its worth going to the music store to check out the rest of the album. Even worse is that they only had about four of these clips with introductions, so the whole loop only took about ninety seconds to play. Having gotten to the theater with about twenty minutes to spare, it was fairly maddening to hear the same clips over and over, all with a backdrop of the same repeating images.

Did they do this because people’s attention spans have gotten so short?

The movie theater isn’t the only place I’ve noticed the shorter, rapid fire, less involved advertising going on, and it all makes me fear the possible real introduction of blipverts. Fight the power people… demand slower, demand quality, demand better. Faster and shorter isn’t always best, just ask any woman.

Posting, Toys and Work

Well, after two months of posting every day (except Mondays), I’ve fallen back into my old habits of not posting as often as I’d like. Frankly, sometimes there is just nothing to post about… or I just plain forget.

Anyway… I continue to buy new toys for myself. After getting the PDA Phone, I’ve gotten myself a Bluetooth keyboard and mouse for it, so its like having a little computer, much smaller than a laptop, everywhere I go. I’ve spent some time fixing it up with software, mostly free stuff, and getting it to the point where I find myself using it pretty often. Calendar, contacts, emails, even writing (the screen is small, so writing for the website can be annoying, but I can do it, and will since work is getting really boring again). Its pretty sweet.

Speaking of work, did I mention it was boring? As much as I love the idea of getting paid thirty bucks an hour to play Freecell (up to 75% win ratio, should have myself up to 76 this coming week, 77 the week after at this rate) and Minesweeper (which cheats, the mines aren’t set until you click a square, you cannot lose on the first click, and it always has at least one spot where you have a 50/50 chance and no way to determine logically which one it is), I feel like I want to tear my eyes out some days. When there is work to do, its awesome, like right now, I taught myself how to utilize XML files on the webserver to emulate global variables for a .NET app instead of making constant round trips to the database server for building my objects. But when I’m waiting on someone else to finish their work before I can start mine… I keep telling them, I cannot design a front end for a back end that doesn’t exist. Its like asking someone to design a car chassis without telling them the size of the engine that needs to fit in it. Sure, you can do it, but when you finish your sports car design and they hand you a diesel truck engine for an 18-wheeler, it just means you have to start all over. I can’t build a screen for data input without knowing what fields to put on it. I’d go for dynamic screen building, but it looks bland and just gives you text fields, none of the fancy radio buttons and drops downs that people like to see on their forms. Bah! And then there is this one screen in the application that is blank because I’ve been waiting about two months for someone to give me the info that goes on it (its a help screen that has to have specific guidelines for contacting support desks and all that)… and I’m still waiting.

Enough. I’m done. Off to clean the bathrooms.

Screen Scrapes and Screen Shots

Its really funny sometimes… the big stuff, world hunger, politicians, war… even things like my car getting broken in to… they don’t really bother me. It all just kinda slides right off my back. But the little things just grate on my last nerve.

I’m a programmer, been doing computers for twenty years and programming for eleven. I’ve worked with all sorts of languages, dealt with umpteen different kinds of servers and thousands of applications, and over time in a career like this, you learn the terminology. Certain things mean certain stuff. For example, when dealing with mainframes or midranges and converting their text displays to another format there is an interim step called a “screen scrape“. It got this term because you are literally scanning the data stream to the terminal or PC, identifying and pulling out text and fields, and munging them through some sort of GUI to display to the user or do stuff to the screen (like autofill certain fields). Then after if they used a GUI, you plug the data back into the fields and submit it to the mainfraim or whatever. You are scraping the screen for data and fields and doing stuff with it. On the other hand, a “screen shot” is an image of the screen captured for display elsewhere (often in user manuals or to accompany a bug report).

Some of the people I work with, some of whom have been around computers longer than I have, keep calling their screen shots “screen scrapes” and its driving me up the wall. And the even worse thing is, because they don’t understand the difference, when I ask for “screen shots”, I usually get back blank stares. Finally they’ll ask, “Do you mean a screen scrape?”

My head explodes on a regular basis.

The Hitchhiker`s Guide

I just got back from the theater, and I must say I’m a bit… not underwhelmed… and not overwhelmed. I guess I’m just… whelmed. I read the books long ago, read them twice. And I loved them. The movie captures some of that… and loses some of that… and adds something different. There is an entire plot thread in the movie that isn’t from the book, and some of what I read and pictured in my head came out differently in the film.

It was funny… I laughed quite a few times, but overall I think I laughed more with the book.

Anyway, it was okay, but I’d suggest people wait to rent it or something. Oh, and when you do, or if you see it at the theater, stay through the credits. One of my favorite parts of the book shows up in there… admittedly, less funny on screen than in my imagination.

Cellular

I like seeing action films in the theater. Dramas and comedies are fine for the small screen, but action films just beg for big. Last year I really wanted to go see ‘Cellular’ on the big screen. However, time got away from me as it often does, and I missed it.

It showed up from Netflix the other day, and I just watched it tonight. It was awesome. The action scenes were well paced and spaced, the funny moments were funny at the right moments. It’s just a really well made film. And it has William H. Macy in it too. Bonus.

If you don’t recall, the movie is about a woman who gets kidnapped and she’s held in a room with a smashed phone. She manages to fix the phone enough to make a random call, and luckily enough, the guy she calls doesn’t hang up.

It was definately worth the viewing. Good movie.

Kill Bill Vol. 2 & The Punisher

It was a weekend of revenge at the movies.

First up, Kill Bill Vol. 2. Volume 1 was a spectacle of kung-fu and splatter style gore. Arms and heads removed with ten foot arcs of blood. The body count was high. The story was interesting, uncomplicated, and above all else, action packed.

In Volume 2, the death count drops, in fact, unless I’m mistaken, only 4 people die in it. This volume spends more time focusing on the back story of Black Mamba (Uma Thurman), and how she became the woman she was. As I overheard someone say, "Quentin saved all the talking for this one." And they were right… the story here is thicker, sometimes slow, but still cool enough to keep me watching the screen and not my watch.

The two movies really are an excellent pair, and one day when they make the special collector’s edition DVD with an hour or so of extra footage, it will find its way into my collection for sure.

In another tale of revenge, The Punisher brings to the screen the Marvel Comics character of the same name. And while they changed many of the details of his original (Vietnam Vet just doesn’t fly as easily anymore if you want to set the story in current day), the changes made didn’t detract from the character. Frank Castle is a man whose family is killed by criminals, and he decides that with the life he still has he will stop as many of them as he can.

Its not revenge, its punishment.

While I did find some of the earlier scenes of the movie, mainly those setting up for the death of Frank’s family, to be "laying it on a bit thick," once the action started, it was mezmerizing. The fight scenes, both hand to hand and gun battles, were well done, with the right touch of violence without being overly vicious (some on screen stab wounds were paticularly unsettling, but most finishing shots on wounded victims were done off screen).

As long as Marvel keeps putting out quality films like this for its properties, they can continue to count on my hard earned movie dollar.

And in the Darkness, Bind Them.

The day has come and passed. The Lord of the Rings was finally brought to the silver screen properly (Ralph Bakshi’s bastardization doesn’t count, and if I close my eyes and repeat “it does not exist” maybe it might come true).

Wow.

And…

Wow.

The film is beautiful. The effects are amazing. Every actor nails their role. Peter Jackson has succeeded (so far) in bringing one of the most loved fantasy novels to life. For almost 3 hours, I didn’t blink. I didn’t want to miss a single frame.

I could go on about the story and the film, but I will leave it at this: Sitting to one side of me in the theater was a girl that I overheard in pre-movie chit-chat had never read the books. When Boromir died, she wept. This is the words of Tolkien and the vision of Jackson. Simply amazing.