Updated: Mar 18, 2021
Software Factories and data platforms are helping government agencies build the next generation of applications. These platforms provide cutting edge capabilities by combining open source and cloud native tooling. While the tool choices keep increasing, customer engagement and mobilization remain a huge challenge. Having a Bring your own Tool (BYOT) policy creates maintenance nightmares (especially for security teams) while mandating usage through a paved path leaves users unhappy with the options.
So, what is the right answer to building platforms that end users love? Our experience with building platforms for DoD customers has led us to these three key principles.
Principle 1: Passion beats everything. Passionate users are what makes a platform successful. Users embrace a platform based on how they feel about the experience and how much pain it takes away from the alternatives. Therefore, the real goal of platform builders is to gain passionate users through Human Centered Design. Platforms that users enjoy are driven by simple and intuitive interfaces that drive consumption. Interfaces that help visualize outcomes and that are based on a common language help users communicate and build their vision.
Principle 2: Less is more. Successful platforms connect end users and platform builders through interfaces that minimize cognitive load and provide quick feedback. Abstracting choices to minimize the cognitive load is the art of implementing the 80/20 rule. By focusing on the most important 80% of configuration (based on the persona of the user), platform builders can simplify consumption and drive adoption.
As Ray Dalio suggests, good decision making requires the ability to navigate levels effectively. This also holds true in the context of platforms. Mapping user needs to the right level of information helps users decide and navigate levels easily. The standardization of the levels helps users see the repeating patterns and they intuitively know which components fit together to form solutions.
Principle 3: Don’t reinvent the wheel. In most enterprise environments, there are existing platform tools that already provide users capabilities like build automation, shared services and security services. These existing tools can be integrated into the new interface that simplifies consumption without adding to the learning curve. Hardened containers provide a great option to standardize tools along with Infrastructure as Code (IaC). The containers can be used with Cloud Native Services (AKS/EKS/GKE), GOTS product (VMWare Tanzu / RedHat Openshift) and even within serverless infrastructures. Each agency might have its own set of hardened containers that can be reused as components to accelerates the deployment of next generation applications. This empowers users with their favorite software since most of the common tools are already hardened.
For agencies starting out on the standardization journey Iron Bank is a great option. Iron Bank provides digitally signed, binary container images that have been hardened and accredited for DoD-wide use across classifications and can be used by any Federal agency. Its Harbor container registry contains 491 containers and the list is growing by the day.
Software is never done and neither is the platform used to build and deploy it. But we use the three principles to decide what to build. This ensures that we are not building the wrong things. Asking these three questions helps us stay on track:
1) Are we validating that it makes the users life easier?
2) Are we abstracting at the right level to simplify decision making?
3) Is there something already available that we can use?
We are passionate about building next generation platforms and committed to continuous learning. Nothing great is ever built alone and we believe in co-creating value. Together we are stronger.