This article focuses on a project for modernizing a large mission critical system, to be executed under a firm fixed-price contract. Failure to meet schedule and quality goals would result in millions of dollars in yearly expenses for the customer. Despite our history and capability, we needed to execute the project with more agility to meet stringent schedule and cost constraints. The following are key factors that helped the project succeed.
Define project common language
Every project interacts with multiple internal and customer groups, with varying levels of interaction. Customer groups include end users, focus groups, development teams, test groups, management, and so forth. Internal groups include the development team, backend team, business logic team, user experience team, test group, process group, configuration group, network team, systems administration team, and so on. Invariably, there is ambiguity in the terminologies used among the different teams. Examples include acronyms with varying meaning, variance in the definition of task completion, perceivable understanding of terms, etc. A lack of clarity leads to an increase in assumptions. Assumptions, in many cases, are the cause of most defects and discontent among teams.
Additionally, most development teams (vendors) see the different customer groups as sources of input and in some cases as having differing goals. Generally, this leads to discontent among the groups and hampers project success. Change from the multi-team, customer–vendor relationship into a unified team with multiple groups but common goals initiates open communication, transparency, cooperation, and working toward project success. Keeping the customer engaged with frequent status reporting, issue resolution, and product demonstrations builds the customer relationship. However, understanding the customer and the customer’s goals and using customer terminology are key steps to changing the customer–vendor relationship into a unified team relationship.
Build and emphasize commitment
Studies have shown that teams progress through the four stages of forming, storming, norming, and performing (Tuckman, 1965). The team’s efficiency and productivity is highest when they execute at the performing stage. To get the team to the performing stage quickly, all team members should have a common understanding of the project’s goals and objectives, and take ownership of the project.
During the project launch session, the development team members are included in the meeting with all internal and customer stakeholders. This facilitates all team members having a common understanding and prioritization of customer goals, and the business impact of the project’s success or failure. The team takes ownership of the project by identifying the work products to be developed and defining the processes and work breakdown structure to be used, the in-process goals to be monitored, and the data to be gathered. The work breakdown structure details each task to be executed for the different types of work products and the expected output for each task. The project management roles are broken up (Humphrey, 2006) and team members take on the different roles within the project.
Plan using experience rather than intuition
Every project is made up of a combination of knowns and unknowns. Current industry practice is to plan using intuition and retrofit into the expected schedule. Planning using intuition normally accounts for peak performance capability rather than nominal performance capability. With current industry practice, most projects start as schedule disasters on day one.
The accuracy of project plans increases when plans are made based on historic experiences and data. These estimates are made by domain experts and are continuously revised based on new lessons learned and new technologies incorporated. A plan based on data and well-defined processes gives the project the best option to be predictable throughout execution and the most realistic option to be successful.
Plan for quality—quality cannot be added on
Quality in software development is often an afterthought. Most software projects assume that quality is ingrained in the development process, only to encounter major quality issues during the test and deployment phases. Projects without quality plans typically are on schedule through the start of the test phase and then fall behind due to endless cycles of testing and rework. These projects either end up canceled or are delivered with unpredictable quality because of a lack of budget or schedule. “When poor quality impacts schedule, schedule problems will end up as quality disasters” (Seshagiri, 2014, p. 32).
Every developer, as a human being, is fallible and may introduce defects. The development process accounts for this fact and identifies tasks where defects could potentially be introduced. Quality steps are added into the development process to remove any introduced defects as early as possible. Adding quality gates and accounting for anticipated defects in the development phases helps reduce the number of defects passing through and improves the quality of the development process. Quality data analysis and statistical process controls are used to help identify components that may require remedial actions to ensure high quality.
Execute the plan
“How does a project get to be a year late? One day at a time” (Brooks, 1995). Project-level plans will guide the team to achieve its goal only if the plan is maintained periodically to reflect the current status and list the remaining tasks required to meet the final goal.
To understand current status and maintain the project-level plan, individual team members need to understand the status of their commitments on a daily basis. This requires individuals to track data as they work and analyze their status daily. Tools capable of gathering data, analysis, and projections help individual developers understand their current status, identify projections based on completed work, and define quantitative corrective actions required to complete their assigned work on schedule.
You can attend our Online Certified Associate Project Management Training facilitated by our trainers who have more than 15+ yrs. of training and industry experience.
MSys Training is the markets-leading learning services company. Our customized training solutions are efficiently tailored to meet organization and individual goals. With various training formats, technologies, and approaches, we recognize the need for custom solutions that fit your company’s systems. MSys Training is highly recognized for its global expertise on trainings to co-create significant business value.