Building the Case for Software Factories

The term "software factories" conjures up images of pristinely clean technology assembly lines with super-efficient singularly focused line workers. In reality, a software factory is not a place, but rather a process for improving the speed of software development and release. A software factory provides a repeatable, well-defined path to create and update software. As the name implies, a software factory applies manufacturing techniques and principles to software development. This means software factories provide templates, playbooks, and reusable code that people across the organization can use to quickly create new applications.

With DevOps and agile software development methods as a basis, a software factory combines tools, teams, and practices to standardize and reuse code, building upon accumulated knowledge. Organizations using software factories not only speed up software delivery but find that software is of higher quality being built on proven code. Continue reading

Agility. Enabled by Agile.

Agility has been a key attribute for success over the past year and a half. Everyone had to quickly adapt in their personal and professional lives to do things in new ways to keep business and society running. Even the great bureaucracy of government found itself pivoting and quickly changing "how it's always been done" to meet the needs of the day. This should not end with the return to what feels like pre-pandemic normal. In the form of Agile methodology, Agility will play a huge role in the government's ability to continue the fast-forwarded digital push as a result of the pandemic.

Just as government pushed agencies to try Cloud with the "Cloud First" initiative, some are suggesting the same approach for Agile. An "Agile-First" evolution would have a huge impact on IT modernization efforts, accelerating the move from legacy processes and technology to a modern digital approach. The response to COVID-19 showed that the government can move quickly in changing how they do work (across all areas of government). An Agile-first "mandate" could institutionalize that speed and make it the rule rather than the exception.

Continue reading

Developing Interest in DevOps

DevOps, a combination of the words development and operations, is designed to smooth the frequently problematic handoff between an organization's developers and its operations staff. It is an operational philosophy that has technology developers and the operational team who will use the technology working together closely through the entire development of a technology solution. The goal of this approach is quick releases of solutions that have an immediate impact on how people do their jobs.

On the surface this sounds like a perfect fit for government, an "industry" in need of fast digital transformation to meet citizen needs. The DevOps promise of making application development quicker and cheaper is incredibly attractive to the government. However, the third part of the promise, collaboration, proves to be the most problematic as culture and process stand in the way.

From a culture perspective, organizations need to break down silos and create brand new teams focused on an application's output, rather than on tactical roles. To achieve this goal, individuals need to be empowered with autonomy and be enabled with strong communication skills to ensure everyone understands their roles and buys into the overall project objective. As U.S. Special Operations Command CIO Lisa Costa described it, "creating a DevOps culture is akin to practicing tactical shooting. You remove all extraneous movement, and that's how you get efficiency." She said her team focused on stripping away processes that had accumulated over the years but were not serving the objective of getting solutions out to the field quickly. Continue reading

An Agile Modernization

As government agencies look to respond to modernization calls from the executive branch as well as citizens at large, agile and DevOps practices are being employed to help speed time to "market" with new applications. A report issued in early 2019 found that sixty-nine percent of respondents said that their organizations are piloting agile, if not partially or fully adopting it. But, the same report also saw a significant percentage of respondents say that agile met their expectations "less than expected" and "much less than expected." So, if agile is seeing an uptick in use, why is it not meeting expectations?

The issue may lie heavily in training and understanding. Agile is not just a new process; it's a new mindset. It requires a new organizational structure that is a departure from the traditional command and control hierarchy of government. Agile teams are relatively flat with everyone holding interconnected and equally important roles. There's not only a logistical change that needs to happen in terms of org charts and structures, but also a cultural shift to a collaboration-driven rather than command-driven environment.

To begin really seeing the benefits of adaptability, speed, and cost efficiencies agile promises, people need to be trained not only on the process but on the softer skills of communication and collaboration that power the process. We've pulled together a collection of upcoming events that may help. Continue reading

Opening Up Government Through Technology

There's a huge buzz and movement about opening up government. There are three phrases that are used frequently in relation to openness in government but each mean something a bit different.[Tweet "The focus on openness is changing the way IT is designed, developed, and implemented. #GovEventsBlog"]

  1. Open Government - This is a core tenant of our democracy, the belief that citizens have the right to access the documents and proceedings of the government to allow for effective public oversight. While this has always been a practice of government (via the Freedom of Information Act), with the move to digital records the way people want to receive and the way the government can share information has changed dramatically.
  2. Open Data - This is data that can be freely used, re-used and redistributed by anyone. Much of the information the government holds should be open data, but giving people the access they require has been a stumbling block to open government.
  3. Open Source - This is the technical piece of the "open" puzzle. Open Source is software for which the code is made freely available and may be used and changed. Open Source solutions allow people to not only get at the data but also work with that data in new ways.

Continue reading