I have been around large scale projects for better part of 10 years now and have seen great project management
skills from most PM's I have worked with. One thing I found in common with successful project managers is how
good they are with risk management. A few tips and tricks I learned from these people was that every project
will have its pitfalls; it's what we do to avoid and circumvent some of the risks to attain our goals is what
makes a project successful in the end.
In my opinion a gold rule to follow when dealing with a large scale OSS project is the organization of personnel.
Hire the right man for the right job will allow a company to fill key positions with skilled employees who are
knowledgeable in that field. An organization should know the strengths and weaknesses of its employees and organize
them properly to get the job done.
A project manager must manage teams who identify business requirements and assist designers to architect the right system
for the requirements to avoid major risks that might derail a project. There needs to be clearly defined roles and
responsibilities, developers are responsible for developing the code while BA's need to identify the requirements.
Team meetings are a vital part of the overall scheme of things since this is a touch point for everyone to do a Q&A and
get on the same page.
Building core components of an OSS software solution can help tremendously also. By completing the tough tasks of the
software development first in order to avoid the last minute crunch. Leave the easy stuff like bug fixes for last. Quick
decision making is vital to keep the project moving smoothly. If decision makers are in one time zone and the developers
are in another then there is a lag of a day or more which leads to a delayed project.
In the end proper planning of a project will allow everyone to understand the goals and objectives of the project in order
to get it completed in time and on budget. Poor project planning will lead to overworked developers who would not be able
to explain the code to others in order to delegate.