The current project that I was on has made me realized that I cannot be managing the team and yet be the primary developer in a project. Once I get too caught up in the details of development, I will fail to oversee the management of the project and other fundamental issues like the design, frameworks etc. I cannot properly coach the weaker ones also.
I must delegate the development and assist in design issues and project management. I should also take the chance to observe where in the system/process I can improve upon to improve the effectiveness of the team. New tools and measures or processes must be validated in at least one SDLC before formal implementation.
However, I feel that I am still lagging in resources and tools for a proper development team setup. How can I acquire these resources, and how can I convince the management that these are necessary? This is the key difficulty that I always had. It's not a application development company, and it tough communicating some concepts and issues without a common set of lingo or context. I feel that I am often alone in this area.
I don't have the right amount of people, and I don't have the people with enough knowledge or experience. They are cutting the project cost so low, that I cannot justify further growth in the team. This translates into having to do more with lesser resources, and I find that I keep ending up on the losing end. Tighter deadlines, more OT with same resources.
I have to improve my project management skills to come up with better and more realistic estimates. I also have to improve my communication and negotiation skills to have the management and customer understand these estimates, at the same time their constraints, to arrive at a more workable consensus.
I have to draw myself out of the battle, take a backward step so that I can better manage the project in the following aspects:
- project control and monitoring. Are the progress in line with the schedule. Any key activties or show-stoppers that's delayed? Watch out for indicator to initiate project recovery before its too late.
- reporting and progressive customer testing to minimise last minute amendments.
- QA. Testing, testing, testing.
- framework and code gens template versioning.
- code versioning.
- frequent design reviews and code reviews.