Sunday, March 18, 2007

Points to be noted while working in projects

Started my C# and ASP.NET projects book. Below are some text from the same

There is life outside projects....your life and your family.Love your work but not your project or the company. Many developers after a certain amount of time become possessive about the project and the company. Try to come on time and go on time. So that you do not get saturated and work on the project for a longer time and effectively.

Try to freeze your requirements before the start of the project. In practical scenarios it is very difficult to control the end customer. But if you can atleast control the changes that will make the project more comfortable. The best way to control changes is by taking official sign offs from the end Customer.

Do not try be a hero in the project. Because heros also have to go through all hardships. So believe in equal load distribution which is not only good for the project but also for you on long run.

Every project has parasite developers. In short every project has developers who constantly take help from others thus bringing down productivity. Yes its is possible that those are your freinds , but remeber one thing do not give fish to the needy teach him how to fish. If you are project manager you should analyze such kind of developers and ask for replacement and if you are a developer avoid doing their work from start to finish. Yes give them hint but do not do complete coding for them.

Do not make projects your learning ground. Customer’s pay heavy for making software do not make it a learning ground. In many projects developers try to implement new technologies in mid of the project just by hearing jargons.

Test, Test and Test. That’s the key to success for any software project.

Do not hide your defects. Developers are the best guys who know where the code will crash. Do not hide it , analyze and fix it. Do not cheat and leave the same till it goes to the end client.
Avoid ego issues during project. Many times in project developers and managers get stuck up with ego issues. Sometimes moving back makes the project move further.

Tackle bigger problems of the project first. The best way to complete any project is to start those screens which are used by the customer more often. For instance every project has non-frequent masters code them later and start the transaction screens first. Many time developers end up doing nitty gritty work and forget the bigger part of the project.

Do not talk about stars. Every project starts with talking about stars but later end up somewhere else. Developers talk about concept of OOP’s , full database normalization , design patterns etc etc. These fundamentals are important but it should not end up with only jargons. Some times practical deadlines makes it impossible to implement these features. Keep yourself flexible and compromise with quality when you have deadlines…..believe me its not a sin if customer is giving you unreasonable deadlines.

Maintaining a right project hierarchy is very important i.e. the A model. In A model you have one senior person at the top , project manager , team leader , senior developers and then juniors. The right proportion of people from each grade is important. On any level if you have too much concentration you will have ego issue and promotion issues.

Do not treat your project people as a resource. Project managers have these jargon of thinking every one as a resource. Thats bookish thinking. Any one working in a project is finally a human with emotions. The time you consider them as resource they will consider you as resource.

Make yourself visible. If you think you have done something good show it , advertise it , make it visible. Will help you during your assesment.

Avoid getting in to project politics. Peace of mind is the most important thing. Getting in to egos and politics will only complicate things.

If you are working on maintenance project upgrade yourself time to time.

In case you are Maintaining some other Developers code do not criticize the code. Who know in what circumstances was the project made.

If you are project manager in the project do not make it a compulsory rule that you will never touch coding. Remember juniors respect their seniors if they sit with them for development and know their difficulties.

If any resource is working on a project for more than a year his performance comes down. Prepare a proper KT plan and bring in new ressources and roll the old resources off for some better propects.

Avoid unnecessary meetings.