Practical Points to be remembered while working on project/software Company
This article will talk about some important points we should note while working with tight dead line project. I am sure every one has some or other important points to share while working with software companies and projects. Do put your points here I will consolidate and make nice list, which will help the software professional community.
I have been writing and recording lot of architecture related videos on
Design Patterns, UML, Function Points, Enterprise Application Blocks, Code
Review Tools ( FXCOP and STYLECOP ), Complete .Net Project, Visual Studies 2008, C# projects,
SharePoint, WCF, WPF, WWF, LINQ, SilverLight. You can see the sample videos at http://www.questpond.com/FreeDesign1.htm.
- 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.
- Do not try be a hero in the project. Because heroes 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 friends , but remember 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.
- 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.
- 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 or non-official sign offs from the end Customer.
- 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.
- 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 knows 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 resources and roll the old resources off for some better prospects.
- Avoid unnecessary meetings.