Effective Patterns for Enterprise IT
In the last post we talked about anti-patterns that often get in the way of enterprise digital transformation. In this post we’ll cover some good patterns. We call them Shrink, Strangle, Confirm, Cohere, Omit, Shorten, and Embed.
Pattern 1: Shrink
Reduce the size of deliverables. Make large projects into small projects. Reduce the amount of work in process. Deliver small units of capability as frequently as possible. Stage investments. All of these things will reduce risk and increase velocity.
Pattern 2: Strangle
Transform continuously. Constantly refactor systems to maintain their agility. Continue to make small changes to existing assets. Instead of building entirely new systems, work from existing systems where possible.
Pattern 3: Confirm
Consider all requirements to be hypotheses. Test them by building MVPs (minimum viable products) and setting up experiments and data collection in production. Be clear on what the objectives are and then measure each experiment by whether it helps to meet the objective. Don’t ask users what they want; observe them to see what might help them and then generate ideas, test them on the users, and measure the results.
Pattern 4: Cohere
Combine business and technology into a joint effort. There are no requirements tossed over the wall; instead, there is a shared goal between a cross-functional team spanning business and technology. Find T-shaped people whose skills cross business and technology. Assign clear business objectivesto the teams rather than specific requirements. For example, service teams at AWS are given the business objective of driving out costs and passing the savings on to customers, but the team decides for themselves what “requirements” will accomplish that objective.
Pattern 5: Omit
Maximize the amount of work not done. Begin with a minimal product and add to it incrementally until the mission is accomplished. Reduce the number of objectives for each initiative and only do work that helps accomplish them. Simplify. Don’t do today what can be put off till tomorrow. Do things at the last responsible moment, because they might have become unnecessary!
Pattern 6: Shorten
Relentlessly shorten lead time between idea and implementation, concept to cash, mission need to deployed capability. Every piece of this value stream should be shortened. Eliminate gatekeeping and replace it with automated controls, standard mechanisms, reusable building blocks, etc. Shorten investment decision making, oversight, and compliance activities—all without sacrificing any controls. Make bureaucracy Lean!
Pattern 7: Embed
Embed security, quality, and compliance practices in all processes and architectures. None of these should be “added on later.” Build rugged, assuming that bad guys will be targeting you. Do chaos engineering. Expect unusual uses of your code—e.g., people named “Null” or “Void.” Design systems to fail gracefully. Architect for simplicity, flexibility, loose coupling—assume that you will constantly be changing the code. Build a culture of security, a culture of privacy, a culture of compliance, and a culture of innovation—and make these a part of day-to-day activities for everyone, not just IT.
If you implement these patterns, you will be able to move much more quickly—at the speed of the digital world, in fact. You will stimulate innovation and reduce waste. At the same time you will gain control and improve your compliance and security.
A Seat at the Table: IT Leadership in the Age of Agility
The Art of Business Value
War and Peace and IT: Business Leadership, Technology, and Success in the Digital Age (now available for pre-order!)