Working Hard -> Working Productively

It's 7.30 AM in the life of an usual software programmer. He wakes up lazily to the alarm beep, cribs about the day that began, posts "Good Morning" messages to his WhatsApp friends and freshens up. An extra urgency has come up, the meeting scheduled in the post-lunch afternoon is now preponed to post-breakfast. He cribs again, irons his best formal shirt and trousers, puts them on and leaves.

Traffic in the city is horrendous. He's now slightly annoyed. Local trains and buses are jam-packed to an extent of skipping 3-4 of them. The journey ain't simple, he has to take transfers at interchanges and rerun the mad rush all over, twice. Every day. Every single journey. He ignores the ongoing mayhem and reaches to the venue.

Puts his bag of a pile of books, headphones, his tablet and wallet aside, switches on the computer in front of him. The computer is running Ubuntu, with his cronjobs going on in respective terminal consoles, sees the change in data in the database and switches to his IDE. The meeting required a simple presentation of the ongoing status in the project that he's assigned. Turns on Firefox, logs into Facebook, scrolls down till that last known point of recurrence, closes the window and begins to ponder what to do for the meeting.

Time is running out. He has to get something to show up. Being smart, he turns to reveal.js and starts writing some code with screenshot attachments, some HTML code and beautifies it with the CSS script. Edits and re-edits. Checks if everything is in place and then that time comes.

He takes nothing with him to the meeting room. He knows the address where his computer has been assigned. The manager asks for the slides. He takes his laptop, types in that web address and voila! His presentation is on the big screen. Impressed by the new technology, manager pats on his back and winds things up.

Post meeting, he navigates to his favorite forums viz., CodeProject, Hacker News and Twitter feeds to "stay updated". Some of the articles are extremely intriguing and further explorations happen via Google. After knowing how that system works, he realizes it's lunch time. Goes out to eat in that food outlet, picks up the traditional ones and stuffs them up. Gets back to his seat with his favorite Coke.

Studies the requirement document and designs the desired outcome on a sheet of paper. Finds that it deviates a bit, redesigns. Just then, his mobile rings and calls of blabbering surge. WhatsApp messages blow up. Cribs, cribs and cribs for how the things are going by. Nothing has been coded yet. Evening dwells upon him and he's now under pressure, for the requirement has to be checked into Git repository by that night with the change-request handling.

Night's back. Grabs a burger from that McDonald's outlet and sits to write. Googles throughout for search of a similar code written elsewhere, copies and finishes the code. Tests it as per the needs. Finds it satisfactory. Comments arbitrarily for change-request and finally checks in. Happy to find the work being done. Checks time, 10.30 PM. Takes his bag of items and repeats the horrendous journey back home. Reaches home, turns on TV with his smartphone in front of him for social networking updates and WhatsApp discussions. 12.30 AM and day ends.

Right. Why am I telling you this story? Well, for some reasons. Most importantly about how the person spends his day throughout and ends up nothing in his head. Being brilliant, he's unaware of the passing time and eventually ends up working for longer hours. Why? Unwanted things sneak in between and his code isn't his own to be proud of. So, let's see how to optimize this to a practical extent.

1. Social Networking: Guys, you're doing an amazing job. But it is hindering work via being addicted to your updates! Remove the time spent and an amazingly high amount of 2 hours gets into the pocket. Er.. on an average.

2. Feeds: Being upright with technology is fine, but not at the cost of precious work time. Another 3-4 hours of waste. Again, an average.

3. Code: Heck, that code your wrote might be awesome. But the repercussions of it? Dependencies with other entities? Satisfactory working with warnings as per told by the IDE is not good work. Remove them too! Those warnings are actually signs of later disasters. How to remove? See why that code gives warnings. IDEs are awesome in suggesting things to work around. Communities post detailed discussions on such. Try and see if you can put this to use.

4. Smartphone Activities: WhatsApp and G+, phenomenal utilities to stay in touch. But ask yourself whether is that really necessary during work hours.

Now I come to know, how Andrew Ng, the Machine Learning guru and similar brilliant professors are productive rather than working hard. They don't do any of the protagonist's activities!

blogroll

social