Enterprise software failure
Adapted from work with my colleague, independent software systems consultant, John Cona
Why software development projects so often fail
In government and the private sector, failure of in-house IT and outside vendors to deliver software as proposed and bid leads to very public failures of software systems and surrounding operational processes, and negative news coverage. Many of these failures can be directly attributed to lack of a feasible executive and program management structure supporting development and maintenance of software systems.
A complete overhaul and rewrite of dysfunctional software is not always required, to “fix,” “patch,” or “repair” existing software. It only only requires a small team of experts who can and will accomplish the immediate goals of the software which is failing or has already failed. These experts will define the technical elements of the effort; identify, describe and implement the appropriate management methodologies, and oversee sourcing and vendor fulfillment.
However, for the effort to succeed, Company management must understand the scope of the effort required and agree upon a firm budget as soon as the team determines the extent of the effort required to meet the timetable for deploying the new software.
“Fixing” already failed and “patching/repairing” failing software
Repairing the damage from software failures generally requires a discovery, re-architecture, refactor, and software development initiative meeting industry standard levels of quality. The effort can only be directed and implemented by an expert team that understands Software Development, Project Management and has sufficient background and experience to meet mission-critical delivery timetables.
The repair effort will require new strategies for:
- Sourcing personnel through cost efficient use of Company resources.
- Contracting agreements for systems development and support.
- Pursuing new opportunities through value-added features built on existing operations.
Elements of a successful repair/patch/replace response
- Initial investigation and discover.
- Identification and immediate resolution of any security issues
- Preliminary stabilization of operations and workflow associated with the software requiring repair.
- Review, assessment and where necessary remediation of vendor contracts.
- Establishing a project management facility to quickly develop operating and oversight models.
Software lifecycle project management
- Implement a PMO
- Provide best-practice based policies and procedures for code promotion, management, version control, maintenance, and security for the repaired software.
- Provide meaningful and effective real-time support for all of the software modules.
- Provide technical documentation for revised system components including fully documented code and version control procedures.
- Provide sufficient user training in accordance with industry norms.
- Assure an orderly process for knowledge transfer from consultants to Company employees.