In this series of articles, Haran Sold provides his thoughts on the state of large-enterprise software, the move toward business cloud delivery models, the role of automation and the impact of legacy thinking.
When large businesses have complex back-office systems, natural code entropy poses a risk, particularly for custom code within large platforms. Historic systems are generally customized to meet unique business needs, but they require continuous maintenance and updates to avoid performance degradation or failure. This complexity introduces fragility into the systems, which creates risk.
Mitigating risk from custom coding
IT departments often manage these risks through planned upgrades and maintenance cycles. Companies avoid catastrophic decay of custom coding by staying up-to-date with their vendor's latest releases. However, once this cycle has been completed from start to finish, it typically must start again, and updating custom code for new versions is an intricate, manual process that stretches out project timelines.
Embarking on an upgrade requires careful planning and extensive testing of customizations, and these precautions only address the technology side of upgrade cycles. While it is vital to stem the natural system degradation of custom code through maintenance cycles and tasks, improving functionality to address changing business needs is equally important. System testing must evolve to incorporate these changes as well. A complete test program doesn't just test changed functionality, it tests the entire system, including the integration of existing, new and external functionality.
Ensuring project success beyond testing
Even a completely tested and functionally compliant system project may face failure if it is rejected by users who were not prepared for the change or if it does not solve the business problems. As such, the entire undertaking is at risk without a well-planned and executed change management strategy that accompanies the technological upgrades and changes. Further, business users require support through organizational change management. Transparency, communication and education — all focused on addressing the needs of the business audience — can reduce the risk of user rejection while gathering feedback that can be applied to any upgrade project.
Cutting down project timelines
These are all standard IT project delivery techniques, and while they contribute to risk reduction, they may not be sufficient as the velocity of change or the demand for rapid deployment increases. Luckily, the addition of automation techniques to custom code maintenance and testing accelerates timelines. With system customization, the development and execution of integrated system testing becomes an intricate project for manual processes to achieve. Automation tools, on the other hand, allow companies to adapt to changing requirements and rapidly retest from the component level up to the entire integrated system as required.
The complexity of large customizations can stretch manual testing timelines beyond business-driven change cycles. As a result, enterprises can become trapped in development cycles without delivering, since the requirements change faster than standard project models can deliver. The addition of automation can address the testing timelines, but increasing velocity of business change puts pressure on project delivery models that are tied to on-premises systems with extensive customizations.
The progression from on-premises to cloud business models eliminates much of the need for upgrades and maintenance. The cloud business model moves innovation and maintenance to vendors, and as such, it has less of an impact on business clients. Clients are not burdened with the risks of complex maintenance projects — instead, they can focus on business change management only as required.
Continuous incremental improvements that match the velocity of business change are inherent in well-executed cloud delivery. The move from on-premises to cloud delivery is aided by adopting automation techniques to refine and refactor custom code to ensure critical business functionalities are not lost in the transition.
Has your organization run into any problems cause by custom code? How did you overcome them? Let us know your story in the comments.
Haran Sold is a self-professed tech fan and geek at heart who is passionate about new and different solutions. This has made him a strong advocate for innovation and a change agent in the world of SaaS ERP. With a broad background from agile startups to executive management in global operations, Haran brings a valuable perspective to this rapidly changing landscape.