CRITICAL Software recognises that each project and client is unique and important. Effective project management ensures that project outcomes are delivered on time and within budget, to ensure our clients achieve the maximum return on their investment.
We work closely with our clients to understand their requirements and use our experience to create a detailed project plan and timeline. This involves identifying constraints and risks, accurately estimating requirements, scheduling actions, allocating people and resources and defining clear communication pathways and reporting systems.
Measure by Measure
We deploy ‘live’ measurement techniques to track project progress against planned milestones. We keep in close touch with clients regarding project progress and quickly identify and raise any issues.
The Need For Speed
In fast-paced, competitive markets, business waits for no one. Our agile development methods are designed for projects that require the quickest possible results, providing working software as fast as possible, even when a project’s goals are not completely identified at the outset. This unique approach replaces end-objectives with incremental deliverables prioritised according to the value they add to a client's business.
We are realistic, recognising that even the best-laid plans can change. We intelligently plan around obstacles throughout project lifecycles. We deploy risk management strategies to minimise the impact of uncertainties on project goals and manage appropriate responses, to ensure that projects are delivered in efficient and cost-effective ways.
Quantitative Project Management
It will come as no surprise to learn that the well-established cycle of planning, executing and improving also applies to project management. Our experience in software development is solid and our policy of performance measurement has, for several years, been recognised by CMMI Level 5 certification. Building on performance measurement, quantitive project management principles apply techniques to extrapolate future project performance based on progress and the performance of comparable projects.
Our clients benefit from greater accuracy about project time and costs at an early stage. We use the performance measures of past projects to estimate the effort and materials required for the successful and efficient execution of each new project. Past project performance measures are also used to estimate the duration of each project stage, increasing the accuracy of the estimated delivery time.
Customers also benefit from earlier calls for action regarding deviations from performance. Real delivery performance data is collected from the beginning of the project and compared with the planned performance. Deviations are thus identified as early as possible, providing the greatest possible reaction time to correct the execution path and to reposition efforts to achieve project goals.
Quantitative Project ManagementRead less
The Agile Manifesto focuses on individuals and interactions, encouraging the production of working software, collaboration with clients and responses to change. Scrum captures clients’ understanding and expectations by producing and presenting intermediate functional working software versions in short (two to four week-long) sprints and collecting feedback to allow rapid re-alignment when required.
The definition for the execution of a sprint is based on User Stories, a user-oriented structure of writing requirements. The full project/product set of User Stories constitutes the Product Backlog, which is produced and maintained by the Product Owner. User Stories are prioritised and the scope of each sprint, called the Sprint Backlog, is selected from the top priorities.
Project team dynamics are a key characteristic of Scrum. Daily Scrum meetings, lasting 15 minutes, are held, in which each team member states what they have done, what they plan to do and what impediments, if any, may prevent them from progressing as expected. Team members are expected to be proactive, rather than having tasks imposed on them.
A common misconception about Scrum is that it does not cover documentation or tests. In Scrum, the practices that must be followed in each Sprint are set out in the 'Definition of Done'. The Definition of Done could and should include effective means of documentation and test, as well as any other practices considered necessary for code reviews. The team should follow the Definition of Done in every Sprint if the result is to be accepted.
The results of each Sprint are assessed in Sprint Review meetings. The team presents what has been produced and the product owner evaluates the level of achievement against the Sprint Backlog. Alternatives for future development are discussed and added to the product backlog.
The team can pursue continuous improvement by performing Sprint Retrospective meetings, where the sprint is discussed without limits or boundaries and with the single rule that actions for change must be objective and feasible.
Scrum’s flexibility of scope, accommodation of change and incremental development has a cost. Periodically, the incrementally-produced software from each sprint must be consolidated, when the producers are confident it is stable, to make sure it does not suffer from quality issues resulting from incremental development. The cost of this activity is the cost of mitigating the risk of using Waterfall with an incomplete or unstable definition of scope. This cost should be compared to the cost of reacting to the discovery of a large misalignment of expectations after months of development.