Just a day after graduation, I received a congratulatory note from the Director of Software Development at work. The email is addressed to the whole software development department and it goes something like:
“Congratulations in accomplishing another milestone in your life. Now, there’s a new milestone that you need to accomplish…”

I don’t get it. What’s with deadlines and software development? and why is it that most, if not all, developers I have met (or read their blogs) hate deadlines? and why is it that in the field of I.T in general, it is a common and accepted practice that projects overshoot and miss their deadlines? I know that’s alot of “whys”, but cut me some slack, will ya? I’m just 3 weeks employed.

Just this week, my manager (Development Manager) approached me and told me that I will no longer be working on my Dirty Job (Localization, that is) and that I will be placed on a new project that involves ASP.NET and Licensing. Well, who would not want to work on a shinny cool new feature using an updated technology especially when it will take you off a dirty job? So I took it and became the main developer for the project. Anyway, Encryption and security stuff is right up my alley (My undergraduate thesis is related to encryption) and I have 2 years experience working with .NET code so I thought, the project is just appropriate for me.
The project involves implementing a new licensing scheme called Temporary Licenses. There’s already an existing set of licenses (READ: SET) that is too complex for me to explain in this post. But anyway, the reasoning behind implementing the new temporary license is to allow the Salesman (or the Marketing Guys) to demonstrate how the new product works and in turn, close the deal and earn some green.
My task, then, is to construct an Architecture Document to explain how the different components of this new feature will interact with the existing core system. Now, let’s take a step back and consider the fact that I am just 3 weeks old in terms of employment and then I am asked to deliver an Architecture Document! A high-level design document! That’s a huge vote of confidence coming from my manager and I’m very thankful for the fact that they are giving me an opportunity to flex my Programming Muscle very early-on. (Yes, I know its documentation but in-order to deliver this particular architecture document, you need to understand the underlying code of the existing system. Think of it like the foreplay before having sex. haha).
Right after reading the concept document (a document which contains how the higher-ups believe the new feature should work), my manager asked me for a guesstimate. So I said, “I don’t know“, and quite joyfully at that. How should I know? I haven’t even seen a single line of code of the existing system. Even though I know exactly how to implement the new feature, I still need to add it to an existing working system and integration needs research and time. Luckily, my manager is not a “suit” so he understood where I was coming from and scheduled a meeting with our Technical Lead and another Senior Developer to produce a valid estimate.

Eventually, my manager persuaded me that this task can be done in 1 week. By that time, I already have a vague idea on how to implement the feature in the existing system… I just have to prove my theory by directly working with the code so I agreed and started by asking for a debug build that I can work on. Sadly, there is no working setup for a debug build so I have to make do with just reading the code and compiling mentally. And doing it like that will take time — time which is not included in my prior guesstimate.
Now I know why developers hate deadlines. Deadlines makes developers feel that they are not in control of the situation. And as developers, we hate being out of control. We are so used to having TOTAL control of our own universe (Our Systems), that we already think that we are the Gods of our own universe. I remember a quote by Joseph Weizenbaum, the creator of ELIZA, that goes something like this…
Why do I feel that deadlines make us feel out of control? Well, in my particular case, I feel out of control because I don’t have any command to the crucial variables that constitutes my task. Like, I don’t have any control on when I will have my debug machine. I also don’t have control on what time the people from U.S. and U.K will respond to my inquiries via e-mail. I don’t even have immediate control of my research time because it is dependent on having a debug machine and other people. The key word here is DEPENDECIES… and it plays a big part of making us feel out of control.
hing that is related to my projects and that is also why we have always submitted 2 to 3 weeks ahead of the deadline. Other teams have always submitted late (As much as 6 months late), and those teams are composed of friends or barkadas… Because they are so keen on working in batch (like overnight thesis making) that they ended up not finishing anything at all. Why? Because a MODULE that is supposed to be done by MEMBER A is not done in time so the other MODULE by MEMBER B cannot move forward because it is dependent on MEMBER A’S MODULE. This is the common excuse during their defense and I believe its a common excuse among I.T. students everywhere when asked why the project was delayed for so long — and it’s all about dependencies.
Back then, I used to love deadlines because it makes me feel that I am the master of my own destiny. I used to love it because it makes mo more productive by giving me something to shoot for… a competition, a race, a tourney to win…
… Now, I hate it because if I’m behind schedule, I feel doomed and depressed and unmotivated.


(1 votes, average: 4.00 out of 5)

























































Popular Posts