How automated tools can unlock IT challenges

Continuous Integration and Continuous Delivery are changing government IT.

devops
 

Senior IT government leaders are faced with some increasingly insurmountable challenges. They are being asked to develop new IT functionality, capabilities and services to support the mission in the face of reduced budgets for equipment and training. Government program offices are looking for more transparency from their IT departments during application and system development stages.

Former federal CIO Tony Scott was quoted last year as saying that agencies now spent approximately 80 percent of their IT budgets on operations and maintenance, with little funding left for development of modern systems, much less innovation. Traditional software development processes cannot hope to keep pace.

That's where Continuous Integration and Continuous Delivery (CI/CD) comes in. CI/CD tools and automation are bridging these gaps to quickly unblock day-to-day IT challenges and provide a platform where increased coordination and collaboration takes place.

CI speeds the software development process using automated building, and automated testing to comprehensively test the entire application to integrate every code change as improvements are made. Developers find and fix bugs as they occur, continuously driving efficiency. That integration then enables CD, the ability to confidently deliver reliable, secure code to production as it is finished. This greatly streamlines the process associated with Independent Verification & Validation testing.

If agencies hope to embrace DevOps to improve their software developed, that necessitates embracing CI/CD as well. CI/CD produces immediate feedback to all software code created. It makes creation and testing of code part of a single process. Every change in code triggers a host of automated testing, and this library of tests grows over time. So, coding velocity can accelerate over time, producing reliable, tested code far faster than was possible in the past. This process lets agencies be more agile – they can see the real results of development quickly, try out a new idea, and let real feedback drive a system in new better directions that will gain user adoption, and ensure value from the technology.

CI/CD even improves the code quality by integrating various tools that perform automated code analysis and profiling. This process eliminates the need for manual procedures for unit test, integration test, UI test, security, load testing and Section 508 compliance.

In the past, when a process or application broke down, it took time for the problem to be identified and it was not clear without laborious research what exact code caused the failure. Continuous code quality tools cover a wide area of code quality check points which include: Architecture & design, complexity, duplications, potential bugs, etc. In a sense, quality control is "baked" into the production process right from the start. This enables government IT to implement critical applications with higher confidence to achieve real benefits to program missions.

Here's what all this looks like in action. The Department of Housing and Urban Development has implemented CI/CD to address the department's need for efficient building, comprehensive testing and integration of applications. HUD needed a development process that enabled improved time to market, consistently high-quality code and a robust velocity for successful deployment of new HUD systems and applications.

HUD's FHA Loan Review System was implemented using the CI/CD pipeline. Automated deployments to Development and Test environments now happen within minutes rather than days, and multiple deployments to Staging and Pre-production take place each week, letting the program's stakeholders perform acceptance testing periodically to put the application in production on time.

HUD can now deploy new application code functionality within hours to Development, Test, and Staging environments using the CI/CD pipeline and promote the release to Production environments within days. Through the CI/CD pipeline, HUD implemented its first pay.gov enterprise services. These services are used to process over $40 billion in benefit payments. Frequent and incremental releases for HUD's Office of Native American Programs Loan Origination System were also made possible with the CI/CD pipeline. Integration of document management and workflow management systems with ONAP's core application functionality were introduced in incremental releases which helped mission users to continuously see improved functionality in frequent intervals.

Adopting the CI/CD approach across government is perhaps more a cultural challenge than a technical one. It represents changes in project planning, and how IT teams function. CI/CD automates repeatable processes to provision infrastructure which helps application teams to become productive when they come onboard. And on first adoption, CI/CD adds work during application code development as the team creates build and test automation scripts as they build upon the code. Over time, the library of automated scripts make the entire process more efficient, reducing time and cost. Additionally, the product that comes out is of much higher quality, and as mentioned above the process increases the team's velocity over time.

Historically, software development has been an expensive process, requiring highly skilled staff and long delivery times. CI/CD is dramatically cutting the cost and time it takes for government to develop new software based tools and services. Wider spread adoption of CI/CD is imperative for government to increase and speed innovation and operational efficiencies in the current budgetary climate. CI/CD is important if government want to reduce the 80 percent proportion of IT spending that goes to operations and maintenance, and increase the portion that goes to innovative and modern systems.