Barriers to success in software projects
In Actinium Consulting’s experience, companies regularly have to invest a great deal of time and effort in reworking their new or modified software solutions because a wide range of problems become apparent during productive operation. The difficulties range from inconsistencies under practical conditions to insufficient auditability. Klaus Hüttl, managing director of the consulting firm, has therefore outlined some of the most significant barriers to success in software projects from a practical perspective:
- Poor software management/documentation: It results not least from the fact that when using the usual programs for source or version management such as CVS, Subversion, Git or Mercurial, only dependencies at the source level are taken into account. These systems can therefore only help to a limited extent to avoid inconsistencies. What is needed instead is a software management system that can also analyze and manage cross-references – for example, between programs and scripts. It must also be consistently integrated into the entire development process.
- Unclear processes in software development: A low transparency of the processes creates ambiguity, unsettles the developers, increases the need for communication and thus subsequently generates misconduct to varying degrees. This is not only at the expense of efficiency, but the subsequent manual corrections always harbor a higher susceptibility to error, because even when adapting a script or copying a file intransparent developments with high consequential risk.
- Programming standards are not exactly observed: As a rule, the programming standards are deposited in internal manuals, but in practice they are rarely taken in hand. As a consequence, each developer uses his own interpretations of the standards. By the use of different methods however later sometimes substantial discrepancies develop in the application. At best, this leads to subsequent editing, but it is also possible that methodological bugs remain dormant in the program for a long time despite testing. For critical software objects, a consistent orientation towards the generation principle of a consistently used development methodology such as Scrum is therefore recommended. It avoids the problems already in their emergence and makes the results portable.
- Personnel fluctuation in development: The more unclear the processes in software development and the established standards are, the more negative impact personnel changes in the course of development projects. Then each fluctuation means the loss of know-how and specific experience with the application, without a sufficient transfer to a new employee can be guaranteed. These problems are even exacerbated when frequently changing external resources are used.
- Specialist deficits of employees: Even complex software projects require a similar professional level across all developers involved. Such a situation is in practice but often not encountered, rather are often technical deficits of individual employees. In a clearly defined development process with fixed standards, on the other hand, employees are managed in such a way that technical weaknesses can be compensated for. Because such an integrated software management provides them with all the information they need for the daily development work.