As a gamer, I have often found myself uttering things that begin with “It can’t be that hard to…” followed by something that logically it can’t be that hard to design. For example, in many MMO games, friend lists usually have a hard cap, some games go high to start with while other games begin at 10 or 20. Later on, people will want more friends on their list and will say “It can’t be that hard to increase the size from 10 to 20.” And logically, they are right. In a perfect world, you’d just go into the code where the MaxFriendListSize variable is and change it from 10 to 20, or 50, or 200.
As a programmer, I have often found myself nearly exploding in a fiery ball of hate when a boss or customer says things that begin with “It can’t be that hard to…”, because honestly, if it wasn’t hard, we wouldn’t even be having the conversation we were having for them to be able to say that, I would have just done it. The problem is, that when designing a program, you literally can’t think of everything. You know, yes it wouldn’t be hard at all if there was in fact a MaxFriendListSize variable, but we didn’t think of that when writing the program because that number, 10, was only supposed to appear in one place, however, over time it ended up in 22 modules and one lazy coder even used that number to hack some other part of the program and when we changed it from 10 to 20 on one of our internal test servers the character models all doubled in size… grrr…
Seriously… This is exactly how programming works sometimes. You sit down and design out 500 features of your program, then, 18 months later, you realize that you need feature 501, but the best way to do number 501 involves redesigning 47 other features because 501 needs outputs or to share variables with some of those features, or 501 just kicked off an idea of a much more efficient design template that would make a number of other features work better.
Nothing, and I mean nothing in programming is ever easy. Its like getting to the end of writing a novel and deciding that “well, I don’t think the brother should be the killer, it should be the police officer” and now you have to rewrite half to book to make it all make sense.
I couldn’t agree more.
When I started programming, I made the mistake of grossly underestimating my time. Now, I cringe the moment I see the comment on the boards “how hard could it be?” or “it’s only a minor change.”