Allergic to status reports

July 10th, 2008 Jason O Posted in Business, Technology, Work 2 Comments »

I always said that if I got into management I would not do certain things. One of those activities was status reports. Why? Because I hate them.

Basically, if I’m going to do a real status report, one that actually means something, I’m going to spend at least an hour compiling it. That is assuming I haven’t been updating status all week, which would probably add up to an hour of effort anyway. Then the manager, project manager, technical lead, or whoever has to take my status report, read it, and compile it into some other kind of report. Let’s assume that effort is maybe another 15 minutes of effort per employee on their part. Possibly more. This is not counting time spent hounding employees for status, tracking down people who never get around to it (Hello, Boss!), or revising reports that were missing information.

Hey, I respect that managers have to manage and doing so without information is a bear. I’m not unsympathetic, but is this really efficient?

One of the best managers I ever had just did weekly meetings. He would bring a project plan or spreadsheet with him that had everyone’s known tasks on it. Then he would go around the room and get a quick update. Any issues would be talked about outside the meeting. This allowed him to not only get everyone’s status at once, but this was a good time to bring up issues so that he could address them quickly. Even though this was a fair size team, about a dozen people, these meetings could be done easily in half-an-hour. Realistically though you plan to lose an hour of time.

I’ve tried this approach on a team of a similar size and by scheduling a known meeting time every week then no one loses more than an hour of their time for status. I keep track of everything myself and it takes me maybe an hour, tops, to update every week. There is no hounding, missing status reports, or incomplete information. Getting status reports does not become a job unto itself and creating status reports does not become an additional task for employees. I admit, it’s not a perfect system. People get sick or go on vacation, and then I have to put in some extra effort, but really not that much.

The cynical side of me wonders if some past managers didn’t insist on status reports because it helped them do less face-to-face management while also generating work for themselves. After all, if I had to spend 4 hours compiling status reports every week I could look busy while maintaining a facade of importance. Maybe I am looking at it wrong, but all I really know is that the last thing I want to do is harass the people who ultimately support me.

AddThis Social Bookmark Button

Rules of Software Development revisited

May 13th, 2008 Jason O Posted in Business, Technology No Comments »

May is the anniversary of my technology career. Going on nine years now and entering the management fold, I wanted to revisit the rules I created for software development 2 years ago while I was still in consulting.

  1. Don’t panic
  2. Write the best code possible within the time frame given. If you have lots of time then your code should be excellent. There is nothing wrong with writing functional if not optimized software if you are on a tight schedule either. The customer only cares about the end results.
  3. Work to meet all deadlines, even if they are unreasonable. Do everything in your power to make a deadline on time.
  4. When a deadline is not reasonable, point it out to management. They may not change the deadline but at least if you miss it then you can say they were warned.
  5. Coding standards should be adopted and strictly enforced. They make the codebase easier to maintain and will often help less experienced programmers from making simple mistakes. The simple mistakes are always the hardest to find.
  6. Ask for what you need but make do with what you have.
  7. Nobody “owns” code. Anyone should be allowed to make improvements to code when they are able.
  8. Changing code because it was not written “your way” is not the same as improving it.
  9. Every team should adopt or develop a methodology. Senior developers and team leads should observe what is working and make it a formal practice.
  10. When you have downtime, write documentation, make notes on potential code improvements, and maybe refactor that kludge you introduced two releases ago because you were in a hurry.
  11. Refactoring should only be done if there is an obvious benefit. Moving around code, making minor changes, or even doing optimization should be avoided if it may break an imminent release. Refactoring is good, but timing is everything.
  12. Cut-n-paste is a fine tool but should be used with care. A majority of your programming effort should not involve cutting and pasting code.
  13. Don’t underestimate the power of good software design.
  14. Develop a personal methodology to get yourself from requirements gathering to the final product successfully. Coding should be the majority of your effort but you shouldn’t code without a plan.
  15. If the application is functioning as planned but the customer doesn’t like it, then the application is a failure. I don’t care how brilliant your code was.
  16. Technology choices should not be made based on bias or resume building. The most appropriate technology for the job should be chosen.
  17. Act with integrity. Gave credit where it is due, blame no one else for your mistakes.
  18. If you are going to miss a deadline or a problem arises, be quick to notify someone that there is a problem.
  19. If you make a mistake, your first action should be to fix it. Laying blame or trying to cover your rear wastes time. In the long run you’ll look better if people see you acting quickly to correct your actions. The only people who never make mistakes are the ones who never do any work.
  20. Don’t say “I don’t know”. Say “I’ll have to look into it”, “I don’t have any experience in that area”, or anything else that indicates to your client and/or customer that you will make an honest attempt to get some more information.
  21. Don’t say “I can’t”. What it usually means is “I won’t”. Nothing is impossible. It’s always a matter of how much time and how much money. If the customer has an unlimited supply of either, then the only thing stopping you is you.
  22. Assume that QA will find a problem no matter how thoroughly you unit tested. If QA doesn’t find any problems in your code, then assume something is going to fail spectacularly upon release.
  23. When someone finds a problem in the system, assume it is your fault and investigate all possible causes in your code. Laying blame and pointing fingers should not be your first reflex. Besides, it’s a lot easier to lay blame when you already know it isn’t your fault. If it is your fault, maybe you can fix it before people start pointing fingers.
  24. Diversity is a good thing. If we were all the same we’d all make the same mistakes.
  25. The worst person to find mistakes in your code is you.
  26. No one ever became great at their job by never being challenged.
AddThis Social Bookmark Button

An open letter to Crytek

May 2nd, 2008 Jason O Posted in Business, Gaming, Technology 2 Comments »

Alright, Crytek, I read your announcement about no longer focusing exclusively on PC games. Piracy you say? You’re going to make a smart move, diversify your business and broaden your target market but making it sound like its a bad thing. Why? Are you afraid you’ll offend the PC only gaming snobs? Didn’t you already do that by calling them a bunch of thieves?

All I have been hearing from you guys is how well Crysis has been doing. I never could figure out who was buying this game as apparently the computer needed to run it had not yet been invented. You were in a market where piracy has been an ongoing problem, this is not news. You claim you want to make this move because of piracy, but surely it wouldn’t have anything to do with the fact you made a game that only a small portion of the gaming population can play, right?

Here’s the thing. This is not hard. You saw the PC gaming market and it’s a multi-million dollar industry. Then you saw the console market and that it’s a multi-billion dollar industry. This is not hard math. You’re a business, I expect you to make money. I have no issue with any company wanting to develop for multiple platforms. You should not be defending a good business decision!

I’m not saying piracy isn’t a problem, but it’s also not killing the industry. Games like Crysis are killing PC gaming. Games that no one with normal hardware you might find in an average home can play. Why would you make a game like that? I’ve tried really hard not to take potshots at Crysis, but you shouldn’t be surprised that the game didn’t do well, and piracy had nothing to do with it. Sins of a Solar Empire is selling quite nicely and it doesn’t even have copy protection. Even if you could get people to stop stealing your game do you really believe those same people will convert into paying customers? You guys are, essentially, a technology company. Surely you must get out of the office enough to understand who these people are that steal your games. These are people who have such a strong sense of entitlement they have rationalized away all reason to pay for the things the rest of us do. They steal far beyond what they could actually pay for. I would be surprised if you even got 1% of them to turn into paying customers, and even then you’d have to find out some way of stopping piracy altogether.

Not to mention all those copy protection schemes ultimately hurt me, the paying customer, while pirates have found all kinds of ways to circumvent them. So I’m not really interested in your games if your copy protection is keeping me from playing them. I have already sworn off Steam and Starforce for this very reason.

Then again, this isn’t really about piracy, is it? This is about money, the money you’re not getting because of the console market. It’s not pirates who are stopping you from making more money and you know it. You could have made this a positive announcement and showed that you were making a smart business decision to ensure the success of your company. Instead you’re acting defensive about it and insulting the very people who have supported your business so far. Well played.

AddThis Social Bookmark Button

How to use technology and not be a jerk

March 5th, 2008 Buddy Pine Posted in Business, Technology, Work 4 Comments »

My mother and I have to call businesses for our job and on occasion we need to leave a message for a specific individual to return our call. This is made all the more difficult by, you guessed it, caller ID. I use caller ID on a regular basis, its a very helpful tool and before anyone gets bent out of shape, I’m not faulting the technology in any capacity, it is how people use it that is the issue at hand.

So for those of you that have caller ID, I offer the following guidelines to help you utilize it with maximum efficiency, my efficiency that is. You get to save your dignity, thats a pretty fair trade in my view.

1. Use the call back number provided - NOT the one on caller ID. When I leave you a message and provide you with a contact number that is different than the one seen on your caller ID box, please call me back at the number I provided for your use. See, when I leave a number that means I actually want to talk to you! Amazing! The number I give you is to facilitate quick contact. Perhaps I was out of my office or in my case, using the fax line to place the call. Regardless, listening to my message and then using the caller ID number in spite of the one given is just stupid. Perhaps you feel you are reaching out and connecting with me on a private line, perhaps you feel special or clever using this technology to circumvent my request for contact on that number, but all you do is look stupid, especially when you tell me you got the message….

2. Identification please Common courtesy would dictates the following when you return any call or message from the caller ID:

“Hello, my name is John Doe, I received a message/saw your number on my caller ID and was returning your call”

The following are not acceptable as complete opening sentences:

“How can I help you”
“Who is this?”
“You wanted to speak with me?”

And my personal favorite:

“Yes?”

Maybe the person on the other end of your line doesn’t know who the hell YOU are? How am I supposed to respond to picking up the phone and hearing “Yes?” as an opening? I certainly don’t know you without your name, its hardly professional. If I tried to call you and wasn’t able to reach you, don’t call me back two hours later and expect me to recognize you instantly. Just because you assume I have caller ID doesn’t mean we aren’t supposed to introduce ourselves to each other.

Odds are, I am going to ask who you are. Most people seem to get offended or respond “But you called me!” as if that is supposed to create a memory that doesn’t exist. Maybe in the course of my day I call more than one person? Maybe I never made the actual call in question and someone else did? Maybe I misdialed? Cat and mouse games aren’t going to help matters.

3. Keep the attitude for yourself. If you cannot be polite when you return a call, please do not call back. If you are so put out by the experience then avoid using the phone as a form of communication. The following are not valid responses:

A. I don’t recognize this number! - As well you shouldn’t. Part of having a phone number is the fact that people outside of your small circle my in fact call you. It happens to others all the time in this nation and around the world and will happen to you.

B. This is a long distance number! - If you cannot afford a nickel or a dime, you must be a pauper or perhaps, a hobo. How you can afford the monthly fee for the actual telephone line or the service charge for your plan is truely amazing. Welcome to the 21st century, phone service here is cheap, reliable and available from dozens of soruces.

Your inability to shop for a cost effective telephone service provider as a business owner is not my concern, please keep you incompetence to yourself. Admitting to me you cannot afford or are too cheap to make a telephone call is showing me more of your ignorance than you might want.

C. Is this a solicitation? - I’ve called far too many businesses looking to deal with them on a private matter, only to have this “charge” leveled at me the moment I am called back. Perhaps you can assume that the mythical telemarketer isn’t out to drain your life in a vampiric fashion and might approach me, a total stranger, with some form of pleasant tone and courtesy? I find it bizarre so many retail stores adopt such a confrontational attitude when calling back potential customers.

I cannot abide such a crass approach. Why am I under the gun like some strange traveler outside the city gate at midnight because I dare call your store?

Long story short folks, stop being assholes. If you cannot utilize technology without using it as a means to circumvent common sense and courtesy then please make life easier for the rest of us who care and stop. You aren’t clever or witty.

AddThis Social Bookmark Button

Devil May Install

February 19th, 2008 Jason O Posted in Business, Gaming, Technology 4 Comments »

The guys over at Penny-Arcade were poking at the install process of Devil May Cry 4 on the Playstation 3. I don’t really care much for the Devil May Cry series or the Playstation 3, so this was barely a blip on my radar.

Until Tycho asked the question, “Why can’t you install it on the 360 but you’re forced to install it on the PS3?” (Paraphrased). Um, wow, well this got the software developer side of my brain thinking.

The X-Box 360 and Playstation 3 are essentially computers, and we’ve been doing game installs on computers for a very long time now. Not finding the resource you need and reading from disk instead is not a new process. His question is entirely legitimate. I figured that since the 360 only uses a proprietary hard-drive and also since the 20 gb version is far more common that Capcom didn’t want to force people to part with their limited and expensive storage space. Also, there is that, according to Tycho, very little difference in load times between the PS3 and 360 versions of the game.

The other question I had was why does it take 20 minutes to install the game? Either something is wrong with the PS3 hardware that slows down the install process (Seriously doubt it) or something is wrong with the installation process and/or software Capcom is using.

I also find it really odd that your choice is either a forced install on one platform or no install on the other. Is there something wrong with the PS3 port of the game that slows it down even more if you didn’t install it? That would seem odd considering Devil May Cry 4 was originally a PS3 exclusive.

There is a lot more to this story than what we’re being told. Something is definitely fishy going on, but I don’t see Capcom being willing to admit anything either. It would be my assumption that their problems would lie on the less powerful hardware of the 360. I guess this wasn’t the case.

The logical conclusion would be that Capcom doesn’t bother with an install on the 360 version because it doesn’t need it, but why force it on the PS3 version then? The next conclusion would be that something is wrong with the PS3 port, which as I stated would be odd considering this was the target platform. Then there is the ridiculous install time which would also lead me to conclude that something about the game’s install process is being done wrong.

None of these conclusions are necessarily true, but without confirmation from Capcom I don’t have much else to work with.

There is something very disenheartening about this process, and we’ve seen it many times in the past. Something is clearly not right and the real explanation may not be that bad but the developers have left the customers to speculate. I’m trying not to assume too much here, but even giving them some credit the pattern of events is what leads to the conclusions I have postulated above. I’d love to hear more from Capcom themselves as to why this bizarre chain of events has taken place.

AddThis Social Bookmark Button