Interest Vs Role in IT

Technical skills and commanding people are different. IT management often picks up a technically sound person and put him in team management role. It is a blunder. It is no guarantee that technician has a natural interest or taste in managing or commanding people.

I worked under technical leadership, both good in technology and have good commanding over people. I also worked under pure technician who does not have leadership interest.

I notice that person who have natural interest or taste in questioning, commanding people will be good leaders. Those who do not have appetite for ruling others will become poor leaders.

Natural interest, appetite, taste to rule the people, to dominate – plays important role in successful leadership.

But IT management put technically sound person, but without an interest to lead in leadership role, then later blame the person for not leading the team or people. It is not mistake of leader. It is the management mistake to select a person without having interest to rule and depute him in leadership role.

I am not talking about people who consciously change their interest, attitude as per their role. I am talking about people who do their role as per their basic interest. If the interest and role matches, they would be fine. Otherwise, they would be utter flap.

How to increase Programmers Productivity

To Programmer

Keep yourself energetic and relaxed. More you are relaxed and energetic you will have more productivity.

Do not check your email while working. If you are in bench or without any work, check your personal email, otherwise do not check it. The amount of strain and energy to read emails are more than what you think. Above all, the diversion from the work is very high. It will dilute your concentration in your office work.

Another important thing is never never use mobile phone while working. You are diverted from your work immediately. Continues use of mobile phone and checking personal email at work place gradually reduce your productivity in long run.

Stop working when you feel tired either mentally or physically. Have a small break as change then continue the work. It is good to take rest before you get tired.

If there is emergency, you can work extra time for one or two days, but never work over time often, which eventually reduce your productivity.

Take leave at proper intervals. Every three to four months take one week leave. Every year once have one month vacation if possible.

Sleep minimum of six to eight hours a day. You must have such life style and work style to have sufficient sleep.

Never engage in any part time or additional work unless your salary is very low. Programming is brain work. One mind one concentration yields better results.

When you do not have any work, please switch off your monitor and speak with your colleagues or listen to some music or get up from your seat and look around. Keep on starring the monitor and browsing the dirty web pages will waste your energy.

Every one or two hour wash your face, hands and legs.

To Management
Try to keep a working environment which is free from fear and relationship stress as possible you can.

If any programmer who is in project for more than three months to six months, give them one week forced leave. Change and rest will re-charge them.
Continues usage will result in low productivity.

If you find any good programmer, preserve him/her like anything. They are like missile hitting the target precisely. You do not know, how much stress and tension you will have when you are dealing with low quality fake programmers.

So if a programmer is not giving any work related tension to you, try to make him/her feel comfort in the office.

If possible give leave to programmers in bench. Empty mind is devil’s factory. Programmer in bench make dirty surfing and dirty mega downloads. They actually increase traffic and higher bandwidth, Which indirectly slow down the work of programming and project.

Stress Free Programmer

Software industry is highly stressful. But not all the software engineers are working stress fully. Only few, rest working without stress.

There are three types of programmers. Stress free programmer, Stressful programmer, and Smart Programmer. They are technically strong, having good experience, have communications skills etc. Especially in outsourcing companies, you can find the first two types of programmers.

Stress free programmers are always cool. Only clients or supervisor or immediate boss who is extracting work from them will get stressed out. They put the pressure on programmer. But stress free programmer sends the pressure back to those who give it.

Their logic is simple. Do what is easy to them. Stress free programmer do what they like and what is easy to them. Never work hard to fulfill the real requirement.

There is a module which has ten tasks. Four are easy and six are very tough. After completing the four easy tasks, stress free programmer will inform the module is ‘completed’.

It is their superior or client has to test and point out the remaining six tasks.

The lazy programmer will avoid the work in various ways. They simply drag the days without accomplishing anything. They stay in the office for days and nights but without little progress.

For stress free programmer asking ‘help’ means give the code not guidance.

They intelligently stimulate other hard working – result yielding programmers by asking ‘help’. Hard working programmer squeeze his brain to solve the task assigned to lazy programmer.

Somehow the stress free programmer get the code from hard working programmer and paste in his file. There are several ways he tries to get the task done without breaking his head.

Some time the client get stressed out by getting the job done from stress free programmer. He will close the contract and move to other company. Soon, the cool programmer will be relaxing in bench.

Here is an example of how stress free programmer work without stress and make his client go mad. Programmer and client may sitting across the continent or sitting in same office.

The task is creating a HTML form for reservation booking. In the form there are fields to enter ‘From’ and ‘To’ date. Both must be validated.

Assume that current date is : 2007, March.

Programmer will validate the fields are empty or left out. He conveys to client as the form is completed. Now client test the form, he will raise a bug ticket as the system is allowing expired dates. If the current year is 2007, booking can be done for future years, but not 2006 or 2005 or below.

The programmer ask the client to explain the bug in detail. Soon he will do some work in the form and conveys the bug is fixed.

Client will raise another bug as current year is not allowed in booking. Programmer will argue as he has done as per previous bug. Booking can be done for future years. So current year is not possible.

Client has to explain as if the current month and year is March 2007, booking can be done for April, May… of the current year as well as future year. Programmer will fix and close the bug.

Client will rise another bug as month is not validated. After several rounds of ‘bug re-opening’ and heated arguments, programmer will fix the month as current month or future months. He closes the bug.

Client will raise another bug as month names older than current month is not allowed to book. System should allow months older than the current month. Programmer will argue as he did exactly as per the previous bug – current month or previous month alone allowed in the booking. If the current month is march, January or February cannot be booked. He will argue with client as he did exactly as client required earlier.

Client has to explain if the current month and year is March 2007, Jan Feb of 2007 should not be allowed. But Jan Feb of 2008, 2009 or more can be allowed. Now Programmer will fix month validation and close the bug.

Again client will find another bug in date. The logic applied to month has to be applied for date/day too. Client will not raise the bug now. Because of the stress in getting the job done from stress free programmer, he will close the contract move to another company or keep the reservation process manually.

Year, Month, Day, Hour, Minute, Seconds have to validated in a sequence in reservation process.

Stress free programmers keep the stress at client end.

How to Estimate a Project for successful completion

All projects need clear goal, a preamble. All sorts of tasks involved in the project must be identified and must be precisely assessed for time duration. We need to have buffer time for unidentified hidden tasks. Complete smaller tasks comfortably one by one. See the smaller task alone; don’t see the big picture of final stage while working (it should be visualized during planning), if you see then you will have implementation block or ‘Action Constipation’.

Ancient pyramid, temples, sculptures, and paintings are spark of the genius of project management.

Many projects fail or people involved the project suffer like anything is due to improper project vision. Leaving many or some tasks unidentified, and not allocating sufficient time for completing small tasks.

Improper vision leads to confusion; you don’t know what do to or what is next. Unidentified hidden task collapse the time schedule leading to ‘hurry burry’ approach. Resource allocation is a big headache when hidden tasks are identified later and intruded into the middle of the project. Project will not take of if time assessed is unusually too long. Short time frame will lead to ‘Rush to Finish’ which eventually leads to project failure due to de-scoping or lack of quality.

For a successful project execution, actors who are going to implement the project should understand the project vision precisely. Break the project into small task and identify all tasks. Also aware that they may leave some tasks as hidden, be prepared to handle the situation when it spikes to the fore. Avoid predicting too long time for more comfort then project will not take off. Avoid predicting short time to satisfy the project owners, you cannot complete the project or you cannot work in next project due to excessive burnout. Be honest in timeframe. Be true to you instinct and experience. Discuss with senior or compare other projects done already. Don’t be a miser or spend-drift. Just be generous. After predicting the time frame add 20% to 30% of the time as buffer to handle unidentified task.

Project owners or stockholders has significant role in project completion. They should ensure that, executors have clearly understood the project goal. ‘Human is to be err’. They should accept the time frame extension up to 30% of actual time frame predicted. Example: if 100 days predicted to complete a project, but it is completed by 130 days, it is a good finish. They should be anticipate and appreciate this 30% extension rather than 100% or 200% or more. The whole time frame assessment is just a prediction. Please be aware of it.

A task will take away the time required to get it complete. Time cannot be squeezed. Let everything take it’s own time to perfection.

A cordial working environment and relationship, appreciation in time, periodical rest will ease out the project execution.

How to complete Big Project

Sculpturing a statue, filming a movie, writing a novel, constructing a building, doing small investment for big return, and developing a software all are projects. A project means anything broken down into small tasks leading to a big finish.

If you sum up the quantity of food eaten by a man’s full lifetime, the size of total food will become a huge mountain. During a course of time this ‘Food of Mountain’ is eaten in small quantity in proper intervals. Swallowing the big ‘Food of Mountain’ at once is impossible and leads to bottleneck. But we all do this eating project successfully without our consciousness. We do it consistently without minding when it gets completed. There is no pressure of time. We cannot swallow all at once. There is no bottleneck by time or quantity. Completion attained by consistency. This is the best attitude for project completion with an artist spirit.

Don’t expect the project completion or rush to finish. This expectation will make you tired rather than the work. No hurry No worry, just work for the day, and get the current task completed. That’s all. Consistency and time leads to completion. No human is completing anything.