Editor's note: Mike Bishop is vice president, Product Delivery, for Mitchell Auto Casualty Solutions. Robin Peters is manager, Business Systems Analysis, for Mitchell Auto Casualty Solutions
Technology companies using Agile development offer a variety of benefits for their customers, and ensure that the voice of the customer is truly integrated into all aspects of the software-development process.
Lean Agile is a software-development methodology that emphasizes incremental and iterative development, and is a departure from the more traditional waterfall style where work is planned and performed in a sequential manner (requirements, design, implementation, verification, maintenance). Where waterfall lends itself to so called “big-bang” releases, Lean Agile favors a more rapid and flexible approach where small amounts of functionality are delivered at more frequent intervals. This allows product organizations that employ Lean Agile concepts to be more responsive to customer requirements and needs as they evolve.
Lean Agile runs on a two-week cycle (termed a sprint), with the first few days devoted to planning and prioritizing what is next for development. Once the planning is completed for a specific sprint, the work is divided up among teams so the development is done in a simultaneous manner (as opposed to the sequential development in waterfall). The spirit of collaboration is essential to Lean Agile, since programmers and developers form self-directed teams to accomplish the many tasks necessary to create software.
These self-directed teams meet briefly each day to review work that has been accomplished, what needs to be done, and what obstacles need to be overcome. Each team develops a sense of ownership and the daily meetings provide an opportunity to quickly tackle any issues that may arise.
Lean Agile also allows for customer input to be incorporated more often, as the product roadmap and planning cycles can be updated repeatedly. Since the Lean Agile process is customer centric, companies applying Lean Agile methodologies continually work with their customers to learn what's needed, what can be improved and how new initiatives can be designed and implemented to meet customer needs. In addition, the frequent release cycle of Lean Agile provides earlier access to new functionality, which helps to accommodate change requests with minimal disruptions to the entire project.
Based on customer feedback, prototypes are developed that are tested against the user requirements. This collaborative approach to development provides the opportunity to refine design concepts and verify functionality along the way, rather than spending a great deal of time and resources developing something that customers don't need or want.
Frequent testing is another benefit of working with firms that use Lean Agile development. Since there are typically small releases measured in weeks, as opposed to big releases on an annual (or longer) basis, customers are able to test these changes along the way. This helps with resource allocation and can help to minimize disruptions to other corporate initiatives that may be underway. In addition, any defects can be identified early on and fixes applied much more quickly using Lean Agile techniques. Course correction can also be applied at each of those intervals to make sure that the software solutions are solving for the most valuable problems.
A core principle of Lean Agile development is to deliver frequent software updates. By shortening the time that an application is in a state of flux, the risk and complexity of putting it back together again for a production release is reduced significantly. However, in order to derive the risk-reducing benefits of this principle, the updates to the application have to be completed at the end of each development cycle. And this may become a challenge when delivering features that are not able to be completed within the designated development cycle.
One way to address this challenge is through the use of a concept known as Latent Code. Latent Code provides a framework for including dormant functionality in a product so that it can be exposed later when needed. The various mechanisms for doing this go by many names–feature bits, feature flags, toggles to name a few–and companies such as Google, Twitter and Flickr use them extensively with great success.
Whatever name it goes by, the idea with Latent Code is that once you put it into the application, it can be turned on incrementally so that new features and functionality are deployed piecemeal. This approach can also be applied to making specific functionality available to only a certain percentage of users at a time.
Phased deployment of the Latent Code provides developers with the ability to monitor for any quality and performance issues as they arise. This lets developers address problems before they impact the majority of users and helps to improve quality for future development. Use of Latent Code helps to avoid long duration, big bang releases that may not always meet customer needs.
Another benefit of working with partners who use innovative technology approaches like Latent Code is that future enhancements can be scoped out during the planning stages, scheduled for creation, and then added to the software for later use. It provides the ability to plan ahead for large changes, such as the switch to ICD-10 that technology companies operating in the healthcare industry will need to address next year and address these in an incremental fashion, with plenty of time for additional testing and validation.
Some software technology companies are already providing ICD-10 functionality enhancements, such as the changes to their integration layer and database so that their customers and partners can update their systems to conform to the new data formats while they are still working on processing, display and pricing logic of ICD-10 codes. So although the full ICD-10 project is not complete, parts of the ICD-10 functionality within products can be released in order for early testing and integration.
These features will not be fully utilized until providers start to use ICD-10 codes on bills. Having the ability to implement the pieces of ICD-10 before it is necessary gives software partners the ability to be proactive and flexible with changes and gives customers the ability to test and provide feedback before the use of ICD-10 codes is required.
Using Latent Code is just one of many techniques that technology partner use to improve the ways they deliver products both in terms of speed to market and quality. By embracing these innovative principles and tactics, they are embracing a core tenet of Lean Agile–continuous improvement–and increasing the delivery of quality products.
Want to continue reading?
Become a Free PropertyCasualty360 Digital Reader
Your access to unlimited PropertyCasualty360 content isn’t changing.
Once you are an ALM digital member, you’ll receive:
- Breaking insurance news and analysis, on-site and via our newsletters and custom alerts
- Weekly Insurance Speak podcast featuring exclusive interviews with industry leaders
- Educational webcasts, white papers, and ebooks from industry thought leaders
- Critical converage of the employee benefits and financial advisory markets on our other ALM sites, BenefitsPRO and ThinkAdvisor
Already have an account? Sign In Now
© 2024 ALM Global, LLC, All Rights Reserved. Request academic re-use from www.copyright.com. All other uses, submit a request to [email protected]. For more information visit Asset & Logo Licensing.