Posts tagged ‘software engineer’

Code Monkeys

October 5th, 2008

In today’s IT Industry,  a Software Developer is a person who codes program rather developing it and to make it  irony we call ourselves as developers instead of coders.

A developer in a small company often has to do all phases of software development by himself. The advantage of this is he will know the in and out of whole project right from requirement phase to acceptance testing to deployment in prod. The downside of this is a person has to do the tasks that he is not skilled for. A developer cannot design. Eventually, he develops the solution that satisfies his convenience instead of requirements.

A developer in a big company has to do only coding without thinking about other phases. In a worse case, he will be provided stub code with methods , parameters and return type .. etc. He has to fill up that method with required code just like filling up blanks with suitable words.

We always define program as a set of instructions that do required task. But we never care about effectiveness and quality of code. IT Industry has always produced poor software with low quality code. Tight deadlines which don’t give space for developer’s best makes him to do so. Unfortunately, performance of developer is always measured in terms of number of lines of code.

One of such mistake that we do always is writing unit test cases after writing code. I bet those test cases are the cases that never fail as we write those unit test cases according to the code we have written and not according to the functionality. Have you heard of Test Driven Development? I don’t know how many of us follow this Test Driven Development but one thing is sure most of us wont

We code. We test. We do whatever is needed. We never care about what models we should use. Infact, most developers even might not have known many models except for waterfall or spiral model ( that too if that person is from CS background ). Have you come across scrum or Extreme Programming?

Extreme Programming is one of the most debatable practice in Software Industry. You either love it or hate it. It takes software industry to more unconventional paths. XP breaks all walls and makes its own self defined room.

One last question: Do you write Java as java or as C? Inspite of repeated effort, I am still not able to come out of that. I still write Java as C  :-(

Structured Procrastinators At Workplace

September 3rd, 2008

Aditya, yet another SE, is working at a big MNC for over last two years. He was hard working although lazy sometimes and used to complete his work much before the deadline. He had handled most difficult tasks very well and was alpha geek in the team.  Considering Aditya’s excellent performance his pleased boss put him in an very important project of some big client. But after few months, client started complaining about Aditya’s performance. Aditya was not doing his work at all. Inspite of repeated warnings from both client as well as from his boss, he did not do even a bit of his assigned work. Finally, Aditya was taken back from the client project.

What went wrong with Aditya ?

Giving a thought to this, his boss recalled that during last two years Aditya never used to do certain tasks that he feels uninterested. As he used to carry out most of difficult tasks successfully , those unfinished certain work were always given to someone else in the team. Aditya always had a freedom to choose what tasks to do first from the bunch of tasks that were assigned to him. Out of all tasks, he always used to complete 90% of tasks in less than 50% of allotted time. But he never used to do those remaining 10% tasks and those were always assigned to some other in the team.

At the client location, they used to follow strict order of doing tasks and Aditya was never allowed to choose the tasks that he wants to do. Unfortunately, he was assigned to do the tasks that he never wanted to do. The tasks, which he feels interesting, were queued after these uninterested tasks. Due to Aditya’s basic procrastinating nature, he never finished those uninterested tasks ( which client wanted to finish them first before taking rest of tasks ). Aditya failed terribly and was taken back from the client project.

How Aditya, his boss and the client could have handled this situation better?

The answer is Structured Procrastination.

What is Structured Procrastination?

Structured Procrastination is an approach / strategy discovered by John Perry. It is a way of doing everything else inorder to avoid one important task. It is a technique, if properly used, makes structured procrastinator most efficient than anyone else in his team.

How it is different from procrastination?

Normal procrastinators always avoid doing important tasks ( that are really important and urgent ) and also they don’t do other less important tasks inorder to avoid those important tasks.  They just procrastinate everything.

While structured procrastinators always avoid doing important tasks ( that are not really important and not urgent ) and they do other less important tasks ( some of these tasks are really important and most difficult ones ).

Got it? NO? Let me explain in detail.

How to become Structured Procrastinator?

The first step to be structured procrastinator is to create self-deception point.  Given a list of tasks, choose one or two tasks that you don’t like ( and are not so important or urgent ) and mark them as very important high priority tasks ( self-deception ). Mark the actual important tasks as low priority tasks. Creating self-deception for yourself, now you have to do all those low priority tasks ( which are actually important tasks ) inorder to avoid those high priority tasks ( which are less important or urgent ).

This may initially feel awkard / funny / weird. But as you go on practising it, you will achieve tremendous productivity.

How bosses should handle Structured Procrastinators?

There are many approaches:

Suppose say if there are six tasks to be done by a sub-ordinate which normally takes 18 days considering avg 3 days for each task.

1) Making him fool:  Assign all six tasks to him. Tell him that one out of six is very important task ( which is actually not an important task ). He will do rest 5 tasks in 9 days and will avoid 6th task which he don’t want to do. When he finishes 5 tasks, assign that 6th task to someone else.

2) Understanding what he likes and what he hates: A boss should always understand what his subordinate likes to do and what he hates to do. Always attach a task ( which he hates to do ) along  with other tasks. He will do rest of all tasks inorder to avoid that task which he hates. when he finishes rest of tasks, assign the remaining task to someone else.

3) Let him choose: Assign bunch of tasks and leave it to him. He will choose one task which he don’t want to do and will do rest of tasks. He will usually keep that as last task. As usual, you can always assign that last task to someone else.

Where bosses do mistake?

Structured Procrastinators are not normal workers. They need special treatment. You cannot treat them just as any other worker.

1) Assigning one task at a time instead of bunch of tasks where he will loose the freedom of doing rest of tasks and avoiding important task.

2) Enforcing to follow strict order to complete tasks such as Task A must be completed before taking Task B and Task B must be completed before taking Task C.. etc. If  Task A is the task that he hates to do, then he will never do it and thus he will not be able to do none of them.  ( This is what really happened to Aditya at client location in the above scenario ).

3) You can never ever force a structured procrastinator to do a job that he hates to do. Scold him, threat him, beg him, request him, kill him.. but he will never do that job. His boss must understand this.

Conclusion: Structured Procrastinators, if properly utilised,  take 50% of time to do 90% of tasks while normal workers take 90% of time for the same.  Structured Procrastinators are not black spots at workplace. Only their bosses should know how to handle them properly.