There is much to consider to ensure good delivery on projects. There is no single factor for this, but there are common elements in the inventory that always need assessment and application. The most important element is structured and consistent communication. So many projects get off to a good start when all the news is hopeful, but communication lessens when there are risks, issues and concerns that we don’t like to discuss. These are the key areas to manage that breed success. Risk and issue management and constant focus on reasonable deliverables and scope are the key ingredients to ensure communication and delivery. A key approach to manage this is Agile development methods. This approach has been “rebranded” and matured over the years, but whether it is called XP, SCRUM, Rapid Application Development, Iterations, Rapid Prototyping or some other name, a key focus in all these development approaches is delivery of working code and architecture early with strong communication and involvement with the customer. Even in waterfall implementations, verification of key architecture and technology early in the process with key business functions is key to mitigate risks. This done with collaboration on POC’s (proof of concept) to review and manage high risk areas of the project have proven to be one of the most important factors for success.
Requirements and scope management through iterations and agreement with the customer is another factor that is essential for success and to verify expectations. All requirements are not equal and a balance of key business ROI and technical risk for initial iterations ensure the technical and business stakeholders have a clear understanding of priorities and why we are working certain features first. This also allows for an earlier baseline system and the inherent benefits of a tangible design (a working system) that can evolve with significant user input and excitement vs. specifications on paper. A working specification (code) is what we strive for.
Good sound principals such as clear definition of roles and responsibilities, project planning and milestones, risk management, and scheduled progress reviews are fundamentals that we always employ to ensure communication. These processes and related deliverables vary depending on the project needs and complexity, but experience on what techniques to use and flexibility in our development process depending upon the needs are what makes each project challenging and interesting. In the RUP (Rational Unified Process), this process is part of the Environment Workflow. This flow includes setup of the environment for infrastructure, development, testing, and equally important the management and process configuration approach and deliverables/artifacts needed to manage the project.
Although we start with a common process for projects, experience and collaboration are the two key factors to provide the insight and flexibility that every project needs. Experience with varied projects, industries, understanding varying levels of risk and needed controls, and collaboration techniques all come into play to set the stage for solid execution and delivery. An extensive framework and the experience to use it is essential to balance controls and consistency with the flexibility on each project and customer.