I need me some Vietnamese food. I need it bad. Guys, lunch, tomorrow? Saigon Cafe
? Come on, you know you want some fried spring rolls. You neeeeed them almost as much as I do.
You need the pork with funny noodles. The perfectly barbecued pork slices on top of thin rice noodles, covered in chopped peanuts. The crunchy carrot strings and bean sprouts. You want that little splorch of hot sauce in the corner of the bowl to dip the pork into and for a nice bite at the bottom of the bowl when you go to finish up your noodles. It’s like crack, I tell you.
I laughed, and laughed. Man, Steve Ballmer is nothing if not entertaining.
I’ve been working on a theory for a few weeks that you all probably know already. I want to share it just in case you don’t. There seem to be many people where I work who just don’t get it even when I use small words and exaggerated hand gestures. I even drew a diagram with stick people and arrows. I think I even used multicolored white board markers. Yes, it was pageantry and sophistication all rolled together in the round mound of me.
|Equipment: The boxes and software that will run your site, tool, database, whatever.
|Backend Programming: Writing stored procedures for the database, setting up data sources, creating daemons, etc.
|Webserver Integration: Hooking up the backend systems to the webserver and writing procedures and/or functions to surface them to the webserver.
|Frontend Integration: Using the stuff written by the previous step to build the actual pages returned to the user.
|Users: Ummm, they use it. The “intended audience”, if you will.
I bet you’re wonder what this theory is now, huh? I’m getting there, just hold on. I work on some very large projects involving many different groups. The flow is in a lovely table to the right. The problem is that if the system involves daily interaction with employers, or worse, the general public, any steps you’ve taken to cut corners that make the product less usable will ultimately cost you more more in time and money than if you had just done it right the first time. Every hack that the person after you has to create in order to get code to work is a waste of time and money. Every useless step a user has to do to accomplish the purpose is wasted time that gets compounded by the fact that there are probably many more users than there are programmers. It’s even worse if this is a consumer site. If it doesn’t work, or is difficult to use, they won’t use it at all, and it will really be a waste.
Cost-cutting measures during development made in the sake of saving time or money save neither. Every mistake made that isn’t fixed wastes the time of the next person to work on the project. If the next step involves multiple people, you’ve multiplied that waste by the number of people who have to compensate. No matter how much your backend developers make, it’s not enough to justify wasting the time and talent of the people who take over. The same goes for everyone else involved. When building something, do your part right. Talk to the people who will be using what you produce. Let’s say you’re in the webserver integration group and you’re writing something that will be used by 20 people. Talk to them and make sure you’re not doing something that will make them have to work around your product instead of using it as intended.
This all boils down to usability. The principles of usability don’t go out the door just because it’s software and not a webpage. Writing crappy code because it takes you less time is no excuse. It’s the poorest of excuses because you’ve just inflicted a giant time and money waster on the people who then have to use it. So, think before you code, please? Say it with me: I will not write crappy code. I will do things the right way, deadlines be damned!
Do you know who Bela Fleck is? Should you? Laws, yes you should! He and the Flecktones
have been creating amazing music for about ten years now, and show no signs of slowing down. They’ve broken all the laws of their instruments and man, you should just go out right now and buy Flight of the Cosmic Hippo
, Live Art
, Tales From the Acoustic Planet
and Live at the Quick
right now and melt into music bliss.
Other than that, I have nothing to say today that I haven’t said already. Work is really busy and it’s sapping all my creativity.
I am so tempted
. Unfortunately, I can’t because I work for the company that owns HBO,
but man would I love it. Every time I think I understand the system, something happens to shake my faith it. This whole thing with Cheney and refusing to turn over documents about the energy taskforce is driving me nuts. I don’t want the energy policy for my country decided in secret after talking to the heads of all the major energy brokers. Everything about government that’s not related to national security should be transparent and out in the open. This wasn’t an RNC
meeting. It was a meeting between the Vice President of the United States and people who spent a lot of money on his campaign (not just his, but several). The American people have a right to know what decision lead to the policies that are inflicted on us. It’s the only way we can make informed decisions about who to vote for and what to support.
My favorite part of the administration’s argument is the need for “unvarnished” advice. You’ll never get “unvarnished” advice from a CEO for a company you’re about to set a regulatory policy for. The argument is thinner than Calista Flockhart. You’ll never get completely objective advice from anyone who’s actually involved or affected by a policy. The only way to come to an semi-objective conclusion is to take all of the subjective advice, compare it to the available facts and proceed with a course of action.
I have to actually get work done now, but I’ll come back to this topic at some point, I’m sure.
I’m going to spend today recouperating. I think, if I wake up, I’ll go get some pork with funny noodle at Saigon Cafe
, and go see SuperTroopers.
This being alone thing is really starting to suck. The novelty of going to the bathroom with the door open and playing video games with the volume way up. Then, I realized that if I really wanted to, I could do that when Jen and Max are here. I need to find something to do with myself for the next ten days. There are only so many movies to rent and TiVo one guy can watch. Now that I’m starting to feel better, I can leave the house even!
I’ve done some of these before. I did my week of GeekTraining tidbits (1
). Today, it’s some stuff for project managers. The title is different depending on the company (or even within the same company). Here, they used to be called project managers, and now they’re producers. The name’s been changed about ten times without the job function moving at all. Being a project manager is a pretty crappy job, as far as I can tell. You end up as everyone’s dumping point for bad news, demands, requests, problems, gripes, requirements, schedules, conflicts and slips. You don’t get the thrill of building something, much credit if it’s successfull, but a lot of blame if it fails or comes in late.
I won’t deal with project management as it relates to dealing with business folks, because I don’t know much about it. I do know how to deal with geeks, because I am one, and have to deal with project managers of varying talent levels all day, every day. Here are some of my observations, gathered from my three years in my current position:
|Good Project Managers:
||Bad Project Managers:
|understand, at least at a high level, the technology involved in a project. They understand acronyms, implementation timelines and relative complexity.
||constantly remind the geeks how stupid they are by asking the same question several times in the same meeting, constantly answer questions with blank stares and decide certain tasks are easy because “it didn’t sound hard to me”.
|provide a buffer between business folks and geeks, translating businessSpeak into real requirements and providing effective communication between the two groups.
||forget to tell the geeks about requirements until the last minute and refuse to stand up to business folks when the business folks give unreasonable timelines or demands.
|keep track of each step of the project. A good project manager knows that person A from design is going to be late, and therefore, geek B needs to know that work won’t be coming until later, and then communicates the slip to the business so they can readjust their schedule.
||do their best to avoid being the bearer of bad news, and conveniently ignore slips by other groups while still expecting the geeks to make up for everyone else by completing their work in less time than they agreed to.
|are friendly and develop good working relationships with each party. This goes a long way to making everyone do their best work. When a requirement becomes a request instead of a demand, everyone is more likely to accomodate it.
||are antagonistic and think the best way to get people to do their job is to constantly nag them, stand over their shoulder, speak for them in meetings and set schedules without consultation. They’re my favorites.
There are more, I’m sure, but this is all I can come up with at the moment.
And to make myself feel better, I am worth exactly: $2,572,760.00.
Yesterday, people on AOL searched for “yo mama jokes” as many times as they searched for “notre dame” and “cysts“.