For government agencies, providing improved public service increasingly centers on the use of technology and software. Today’s citizens increasingly expect the same type of ease-of-use, access and automation via web, mobile, and cloud-based applications, as they do in their everyday work and private lives.
As the nature of software becomes both more important and complex, with multiple vendors, platforms, tools and processes, a centralized and collaborative approach is required to become more agile and responsive to the organization and the public.
Today, many government organizations are establishing collaborative software development environments for effective cross-state and cross-agency sharing. Agile-based practices, with shorter iterations and continuous feedback and improvement, are helping agencies be more responsive. Cloud services and open source tools also provide the ability to cost-effectively keep pace with public needs and demands. Increasingly, open collaboration between public- and private-sector teams result in common solutions to emerging challenges.
For all industries, including government, the need to decrease application lifecycles has led to the adoption of Agile tools and methods. Organizations of all kinds are realizing that traditional software approaches can no longer meet the modern demands of today’s fast-paced and constantly changing world.
A combination of factors must be taken into consideration when looking at the disruptive nature of modern software delivery. They include:
• Divergent, brittle and expensive-to-maintain development tools and processes – creating tool and infrastructure inefficiencies, software delivery slippages and rising costs due to a lack of collaboration among teams – even when they are under the same roof, let alone distributed.
• Lack of cross-team collaboration – limiting visibility and implementation of common processes to improve development efficiency and quality across teams and organizations.
• Limited control of Intellectual Property (IP) – leading to vulnerable software development, governance liabilities and the risk of IP loss.
Essentially, application development in both the private and public sector is becoming Agile, distributed and “multi-source.” As a result, organizations are searching for an open (any process, technology, APIs) application lifecycle management (ALM)approach that scales from small, localized workgroups to distributed, multi-source and multi-agency teams involving project managers, analysts, developers, QA testers and deployment engineers.
For organizations delivering software solutions to the government sector the need to integrate activities and processes is crucial to meet the stringent demands of regulatory life. Secure data sharing, compliance and traceability go far in reducing the heavy administration burden associated with delivering government technology. At the core of this strategy is Agile software development, incorporating open ALM and cloud technologies, to deliver improved government services faster.
Redefining Software Development – Agile ALM in the Cloud
In order to meet functional and operational goals, government IT systems need to be developed in a more agile and secure fashion – delivering fast results in response to changing stakeholder needs and shifting dynamics. As a result, software development is moving from sequential waterfall to more Agile development processes in the cloud, where distributed teams can collaborate around a shared set of tools and data. This allows for shorter and more iterative design cycles to incorporate user feedback into the development process.
Currently, almost half of all development teams engage in Agile development, with 84 percent stating that Agile is used somewhere in the organization. Of teams using Agile, 75 percent use pure Scrum or a Scrum hybrid, meaning a mix of Agile with other methodologies. In reality, hybrid models are the norm for today’s software development, but even hybrid approaches do not stray far from the basic tenets of an Agile approach.
By definition, an Agile approach involves a series of shorter iterative development cycles. Each cycle or “iteration” involves multiple stakeholders and often employs techniques to get rapid feedback on development changes. This collaborative Agile approach enables stakeholders to see and test early successive approximations of the final application, providing greater software stability and assurance that the final application will meet its intended objectives. Agile helps an organization move toward a developer-centric viewpoint with complete lifecycle awareness and more active involvement of stakeholders to make sure things are moving in the right direction. The industry is undergoing a convergence of Agile development with functional test and deployment – with users snapping into physical Cloud infrastructure for early feedback on development, build, test and staging.
Integrating Agile ALM with Multi-Source
Organizations of all types are seeking to develop systems that support internal requests, external requirements and the overarching need to exchange information locally, nationally and even globally. In tightly regulated environments, all systems must offer trusted information sharing, with secure frameworks and detailed specifications defining the interoperable services that can promote diagnostic analysis and share accurate information.
In today’s distributed and multi-partner development model, code for these types of interoperable systems comes from various sources outside of an organization’s own project team. For instance, just in open source, a recent Black Duck Software analysis of its own knowledge base found more than 900 health and medical projects representing 13 percent year-to-year growth, and more than 124 million lines of code, representing 65 percent annualized growth and more than 45,000 staff years of code contribution. Beyond open source, and as part of Agile ALM development processes, virtually every organization leveraging multi-source strategies share the following characteristics:
• Uses captive offshore and partner outsourced development
• Engages and collaborates with commercial independent software vendors (ISVs) and development partners
• Integrates open source code and community collaboration
• Implements a component search and reuse strategy
The benefits of using a multi-source and multi-partner strategy in today’s modern software development methods include:
• Flexible – choose the best components for the task or requirement
• Innovative – select the best talent and resources from a global pool of development assets
• Agile – supports agility and responsiveness. Large portions of code can be rapidly integrated into a development cycle or “iteration” to get early feedback and hasten time to market
Increasingly, this type of Agile development is moving to the cloud with centralized services available to distributed teams, no matter where they are located.
Integrating Scrum with Distributed ALM
Leading government agencies are increasingly integrating Scrum project management methods with underlying Agile ALM software artifacts and teams to be more responsive to the needs of internal stakeholders and public constituents. It results in improved service, reduced cost of development infrastructure and decreased cycle times. For instance, organizations struggling with unresponsive two-year waterfall cycles can dramatically cut costs and improve delivery of software products. Internal and external teams using multiple and disconnected processes and tools for project, requirements and test management can be connected. And, IT management and development teams can trace functional specifications and product tests to original requirements to adhere to increasingly strict requirements. Merging Scrum processes with Agile ALM provides a centralized approach around which stakeholders and development teams easily collaborate, regardless of geographic location.
Take an Integrated, Holistic Approach
Government agencies of all types and sizes have the opportunity to improve services and organizational efficiencies through an Agile-based, integrated software delivery approach. Agile-based strategies, ALM, cloud and open source are converging trends that are redefining software development to cut costs and time to market, while encouraging collaboration and innovation. It is a catalyst for change that is comparable to the Internet’s impact on the world.