5 Agile practices to keep pace with digital transformation
Source – appdevelopermagazine.com
Disruptive, continuous change is now the norm. Online companies like Uber, Airbnb and Netflix have transformed the transportation, hospitality and entertainment industries with disruptive technologies and services that couldn’t have been conceived just ten years ago.
However, enterprise organizations have been slower to respond. While customer facing web and mobile applications in retail, financial services and healthcare industries have been developed using continuous delivery methods, examples of enterprises adopting similar methodologies are few and far between. The culprit is typically a traditional top down, structured approach to application change delivery that isn’t flexible or fast enough. In addition continuous delivery tools are designed for software development organizations and don’t meet enterprises’ needs.
Here are five tips for enterprises to achieve agile delivery with rapid and safe changes:
1.) Break down the silos
Large enterprises, especially those maintaining legacy solutions, are accustomed to various teams working independently. Development and QA are treated as separate organizations where developers “complete” their tasks, then pass them onto QA for testing. In reality, developers’ tasks aren’t finished until testing is completed and the system is accepted. To reap the rewards of agile programming, development and testing teams need to practice shift left methodology, where testing is moved up earlier in the delivery cycle enabling them to respond to more quickly to continuous feedback.
2.) Increase business owners’ involvement
Users are the center of gravity for all software development. Although business owners, should be involved at every stage, they often don’t have adequate visibility into the project as a whole – status reports, project delays, bugs, – and getting this data is often cumbersome and requires many emails and meetings. On the other hand, it is also important that business owners provide detailed feedback frequently to ensure the requirements are met, reduce the likelihood of defects, and increase that chances that the final product will meet their needs.
3.) Automate everywhere
Automation is the key to an agile workflow, and manual processes cannot keep up with the pace of agile software development. Here are just a few examples of processes that can be automated; pinpointing a system-wide problem that needs special handling, reassigning tests to more available or dedicated teams, identifying entry points that are impacted by multiple requirements, running a security scan on adapted code and identifying any vulnerabilities, analyzing the impact of change requests, analyzing performance in real time, and preparing optimized test plans. And there are many others.
4.) Use agile tools designed for enterprises
There are excellent agile tools available but often they don’t meet the needs of enterprise application delivery. These capabilities were designed to be used by professional software engineers and not business users who shouldn’t be required to go to training to learn how to provide feedback. In addition, these systems can also be expensive to purchase and maintain having too many features that requiring excessive computing power.
5.) Incorporate machine learning and AI
There are tools today that utilize machine learning to analyze business processes and automatically generate test scripts for you. Scripts break often, and are expensive to create and maintain. Instead of creating specific transactions, you can start with a high-level scenario and track what the business user does. Then you can listen to a production system, track all of the different routes though the business processes, and apply machine learning to extract representative business process flows. Instead of interviewing key people in the business to see how they use the system, in a few hours you can see the transactions step by step. You can then use this data to create testing scripts that can be executed autonomously. This ensures that you are not only testing right but that you are truly testing the right things.
By increasing visibility into the change delivery process, improving collaboration with business users are scattered throughout the globe, and automating wherever possible you can significantly speed up development time. We have witnessed quarterly development cycles successfully transformed into bi-weekly releases in organizations who have implemented changes like these. With shorter development cycles, systems are more flexible, more quickly deployed, and most importantly IT becomes a true enabler of digital transformation.