There is a general consensus throughout the IT industry that software development projects, especially those involving disparate delivery teams and several integration points, have a higher risk of failing to meet expectations or even worse, failing to deliver within the agreed timescales and budgets.
Computime's Software Development Unit has grown substantially throughout these last few years and we now have the capability and resource to deliver large scale software projects to large companies in Malta and overseas. Through our experience we have come to learn that there are certain guiding principles that one should stick to during the delivery of software development projects.
Good management - While we might be stating the obvious, good people and project management skills are an absolute necessity in the delivery of larger scale software projects. The ability to handle different teams and contrasting individuals, as well as the ability to bring together people from all over the globe to form part of a single team having one common goal, are key factors contributing to the success of a project.
Project knowledge - Throughout the life-cycle of a project, a good project manager must always be aware of what is going on, who is doing what, what the issues and risks are, what actions are being taken, who are the stakeholders involved, where the required skills are and last but not least what the goals and deliverables of the project are. Sticking to a proven methodology for project management does help, however a good project manager must have the necessary experience and aptitude in order to lead a team and deliver successfully.
Communication - Good team organisation and clear communication lines are essential for software projects. This can be achieved through regular meetings, either by adopting agile techniques and daily shorter meetings, or by formalised project weekly meetings. Having said that, meetings are only a medium through which good communication practices are established. Constant communication on a day-to-day basis is critical to the success.
Estimates - Unfortunately it seems that for many projects, time and budget estimates are generated more as a pre-sales activity with the intention of winning projects, rather than to provide an honest and detailed estimate of a project up front. A good guiding principle is to consider all the phases and the stakeholder involvement in a project. Communicating and confirming estimates with the project team is vital. Inaccurate estimates will inevitably lead on to a failed project.
Risks Management - This is another critical step in the preparation of a project, as this is the way one reduces the risk of having to take on-the-spur decisions rather than calculated and logical actions. The thought process prior to the beginning of a project should include an estimate of what can go wrong in a project, how the occurrence of such a risk can be reduced and what actions will need to be taken if the risk occurs. Risks should be monitored regularly as projects are fluid in nature and new players or requirements could introduce further or new risks.
Benefits - When looking at projects from a supplier point of view one should participate in the success of a project together with the client. Ideally, a supplier should have clear visibility of what the client’s projected benefits are following a successful implementation of a project. If this information is not available, the supplier should instigate and help the customer derive the benefits and the metrics that will be used to measure their realisation. Working towards a common goal can only help in the successful delivery of a project.
The above principles do not encompass all the elements responsible for the successful delivery of a software project. Through our experience we have learned that by applying as much as is possible from the above helps towards the successful delivery of software development projects.