Government agencies are under a lot of pressure, both internally and from the constituents they serve. Constituents and government users are no longer willing to tolerate poorly performing, unintuitive legacy applications. Instead, they expect the same level of responsiveness that they receive from privatesector applications — a level of flexibility and resiliency that is achievable only by accelerating application development. Unfortunately, agencies often encounter several obstacles.
1. Legacy shortcomings
The natural first step is fully embracing the cloud, both for existing and new applications. Easier to do with new, cloudnative applications, it can be a big problem for agencies that depend on applications developed for on-premises environments, which may not work as well in the cloud. These applications often experience latency, interoperability and performance issues, and sometimes depend on noncloud applications. This makes it difficult to determine how to migrate applications to the cloud without disrupting critical business applications.
2. Lift-and-shift mentalities
In cases where legacy applications have made it into the cloud unscathed, there are other issues to consider. Simply migrating an application to the cloud, for example, doesn’t mean it can truly take advantage of the benefits cloud provides. The “lift and shift” method doesn’t mean that the ported application is as scalable or flexible as cloud-native applications or those rewritten for the cloud.
3. Vendor lock-in
Even for agencies that have conquered these challenges, another often remains: vendor lock-in. Agencies that have standardized on the application development tool from their current cloud vendor of choice may find themselves locked into using that cloud, unable to switch providers for cost or other reasons.
The Solution: Rapid Application Development
RAD, an Agile development approach, focuses on quickly iterating applications to improve the user experience and performance. It’s an effective way to accelerate application release and ensure that applications take full advantage of what cloud has to offer.
“The goal of the Agile approach is to develop and release working software on a more frequent basis, reducing release cycles from months or years to just weeks or days,” said Sean Walsh, Director of Sales Engineering at Emergent. The best Agile practices release software continuously, iterating and improving features at the microscale, a process often called continuous integration. With this approach, developers work at the microscale level, getting feedback from every minute change, he added.
Although it’s possible to cobble together the tools you need for RAD, it pays to have all of those tools under one umbrella. For example, consider Kubernetes. It provides the technology for container orchestration, but there’s much it doesn’t provide, such as:
- The services necessary to build and run containers from scratch
- A network to connect application services
- An ingress load balancer to bring traffic into the Kubernetes cluster
- Persistent storage to back stateful application services
- Monitoring and logging to ensure that the platform and applications run smoothly
By standardizing on a platform like Red Hat OpenShift that provides all of these capabilities, agencies can take advantage of all of cloud’s benefits. Most importantly, it allows developers to scale containers and microservices as demand increases.
More agencies are leaning toward open source software in many cases, including application development. Open source software has been proven to be sound and cost-effective, and it embraces rapid release.
This article is an excerpt from GovLoop’s recent report, “Adopting Agile: Four Best Practices for Innovation.” Download the full report here.