“Tenet: a principle, belief, or doctrine generally held to be true; especially: one held in common by members of an organization, movement, or profession.”
Making a large-scale transition to the cloud means that many development, operations, and security processes are no longer applicable — or, they’re dramatically altered in the cloud. For example, AWS provides programmatic access to provision and manage your IT infrastructure (aka infrastructure as code) while many companies still rely on manual processes (e.g. ITIL) to manage their IT services.
Adopting this type of significant change is just the beginning, however; enterprises on a cloud journey or looking to transform the way they deliver value to the business must also find ways to embrace a host of sweeping new paradigms. And fully embracing these new models requires organizations to make a series of decisions about how they’ll modify their approach and processes. Having said this, though, we know that there are many areas that are unique to each customer. We also know that confronting so many decisions can be overwhelming — especially when there’s no “best” answer.
At Amazon our Leadership Principles guide and shape our behavior and culture, and they’re at the heart of our ability to innovate at a rapid pace to serve our customers. But what you may not know is that our programs and teams have a culture that establishes tenets to help guide decisions and provide focus and priorities specific to their area. My recommendation is to define a set of cloud tenets to help guide you to the decisions that make the most sense for your organization. As one of my colleagues at AWS says, “Tenets get everyone in agreement about critical questions that can’t be verified factually.”
For example —
Do you want application teams to have full reign and control over all the services available in AWS, or should you enforce service standards or provide additional control planes on top of AWS?
There’s no absolute right or wrong answer to this question, and it’s likely that your environment or industry will push you in one direction or the other. But defining a tenet that encapsulates your philosophy on the control or freedom you want to give your application teams should be worked out up front.
Here are some other questions to help define your organization’s cloud tenets —
What type of developer experience do you want to create? Do you want to preserve the experience of a startup developer? Or perhaps all interactions will be handled through code. Do you want allowances for people to manually provision or change services?
What are your security tenets? Your existing policies will probably be oriented to an on-premise world. So maybe this is an opportunity to refine your policies; for example, do you want to use intrusion detection technology or allow full transparency to all events, with the ability to act when necessary?
How do you want to operate in AWS? Full automation? Consistency with existing operations processes?
And do you want centralized decision making when it comes to which cloud services will be leveraged? Or do you want to give full autonomy to your development teams and move to a DevOps model?
To better assist you in defining your cloud tenets, I’ve picked out six of the most relevant suggestions from guidance provided to Amazon teams and programs. But, before I list them, I want to be sure to give a shout out to the many authors at Amazon who have helped contribute to the thinking below —
The charter or mission states the what; the tenets state the how. Tenets are principles and core values that the program or team uses to fulfill the mission or charter. Exceptional tenets explain what the program is about better than the charter.
Be memorable. Being memorable is correlated with effective teaching. Experience shows that the best tenets are memorable. Two attributes of memorable tenets are challenging the reader, and being concise.
Each tenet has only one main idea. Chiseling a tenet down to a single essential idea makes the tenet memorable and clear.
Be program specific. Good tenets will get people excited about the cloud program. People outside the cloud program should find that the tenets give them insight about the program. Don’t make a common tenet-writing mistake — creating a tenet that applies to many projects and communicates virtually no information, such as, “We will have world-class cloud capabilities.”
Counsel. Tenets help individuals make hard choices and trade-offs. A tenet takes a stand by declaring that a program cares more about one thing than another. Tenets guide rather than prescribe detailed actions. There will also be tension between tenets, and that’s okay (e.g. tenets around agility versus enforcement of policies or control).
Tenets keep you honest. It’s easy to get caught up in group-think or distracted by the nuances of a specific project and lose sight of the overall goals. Stepping back, setting tenets, and then considering those tenets along the way (only changing them when you step back again) will help you keep track of the wider strategy.
I’ll leave you with two of my favorite cloud program tenets that I helped defined for Accenture's journey to the cloud —
We need the ability to provision and manage cloud services as fast as consuming the “native” platform directly — “Provision as fast as with a credit card.”
Give app teams the control / ability to consume cloud services without artificial barriers — “If AWS deployed to the public, why can’t we use it?”
I’d love to hear your cloud tenets, so please post them in the comments below for the benefit of those making a cloud journey with AWS.
Never stop innovating,