“Digital” is generating a lot of distracting chatter that needs to be separated from the core concepts that make up digital. To filter the signals from the noise, let’s focus on the four stages of digital technology creation: design, develop, deliver and operate.
Before making the first jump and heading into a long and drawn-out Design phase, it should be noted that Design and Develop need to be closely coupled. In some cases, in the very early phases you could hold off design and move into just developing something based on a simple ideation or user story. But be careful; design is a critical part and needs to be done before you step too far down the life cycle.
The design process for a system in a digital world must:
- Start quickly with the big picture, broken down into smaller chunks to guide developers.
- Be strongly influenced by end-user thinking (empathizing) using Design Thinking principles.
- Incorporate feedback from the Develop and Deliver phases, addressing and fixing issues and features requests continuously.
- Be highly collaborative, engaging developers and engineers early to reduce risk, build trust and leverage knowledge.
- Apply good practices to ensure the design can adapt quickly with minimal impact to the business. The goal is “design for operations” using automation and intelligence at scale for frictionless adoption.
Considerations for moving to a DevOps model include:
- Decide on which DevOps model (there are many). Consider your business model and operating structure.
- Don’t be too prescriptive. The value of development in a digital world is allowing developers to have autonomy, using the guardrails and requirements from the Design phase. Remember to feed findings back into the Design phase.
- Do not confuse the multiple stages of development (alpha, beta, prototype, pilot). A simple rule is that the early stages are unconstrained, allowing developers to show the art of the possible. As you move towards later stages, the reality of operating in the business (compliance, regulations, integration) means you may have more constrained (structured) thinking. The Design phase should also consider this.
- Explore new ways of accelerating development. Open source, crowdsourcing, hackathons and buildathons are new ways to develop products. Some lend themselves to the unconstrained space (crowdsourcing, hackathons), while others are better suited to more structured development (open source, buildathons). Other considerations are coding styles; for example, Extreme Programming is a popular method.
In the digital era, deliver is a continuous motion in which delivery organizations must:
- Engage proactively in the development process rather than waiting for the output. Deliver needs to part of the development team, where knowledge is shared and Deliver teams are aware of the next release (i.e., “no surprises”).
- Deploy in small increments. This reduces risk, improves support and makes system changes a normal, daily task.
- Build trust with the business and customers. That is what happens when you deploy small incremental improvements. You upgrade your smartphone apps without fear; this is same feeling we need in the enterprise.
- Remove governance bottlenecks and traditional change control processes as trust builds. Test some rollouts, and once you are confident, replace processes with automated tests that the development team must validate against.
- Give feedback to development and design on future improvements and issue resolution.
- Structure teams and operations for high frequency by automating as much as possible to move fast and reduce the risk of failures.
The final stage, operating the new service, requires the system to be highly automated and almost completely self-serving. Teams must:
- Capture log data from all systems and applications. This data, although specific to an individual device, app or service, when combined with other logs can provide amazing insight into the operation of the end-to-end solution.
- Automate good processes and fix bad ones before automating them.
- Integrate operations and security to resolve problems faster. For example, a denial of service attack might start with a server or firewall outage. How much time is wasted sending this to the wrong teams to fix?
Linked life cycle
To determine if a service or product is truly digital, ask if it is designed, developed, delivered and operated using the new techniques. If it is not, eventually it will fall short of expectations.
The most critical aspect of the four stages is that they are linked. There are no gaps between the stages, no fences to throw things over, no long and drawn out governance models. Feedback loops ensure that issues are dealt with and improvements are made.
The optimal example of digital is when a product can flow from left to right (design –> develop –> deploy –> operate) as a single value chain, with information, teams and processes all interlocking and supporting the stages. Feedback is provided from the earlier stages to continuously improve the product.
Consider Google or Amazon Web Services, who bring new services to market at mind-boggling velocity. This is possible not just because they have a common platform, but because they have an operating model that supports this left-to-right motion that embraces the best practices, most of which they are writing or contributing towards.
Although the people aspects are just as important as the technology when shifting to a digital world, you should now be able to filter out the noise in terms of the technology to focus on becoming a digital business, and be able to evaluate services and products to see if they are deemed worthy of carrying the “Digital” brand.