It’s no secret today’s IT landscape has become significantly more complex as organizations strive to satisfy business demands. The race to provide data for informed decision-making (big data), build applications to provide anywhere access to services (mobile), and deliver solutions to support revenue growth has created unique challenges for every organization. This challenge combined with the baggage of legacy systems contribute significantly to complexity.
Most organizations have pursued enterprise initiatives such as IT rationalization to simplify their IT landscape. This does provide value when the plan is followed up with effective execution. A missing ingredient in most organizations is a definition of and adherence to a set of practical IT principles. These principles are critical to promoting the right behaviors and solutions when architecting, designing, and building systems needed to transform the environment and realize the IT strategy.
This post highlights the principles associated with planning and building IT systems whether it’s developing new or refactoring existing solutions to be agile (speed, scalability and flexibility), performant, resilient, and secure while maintaining a level of simplicity. The development of principles requires an understanding of the market the business serves, not an inventory of current business needs. This is an important distinction because principles should be connected to an IT strategy and future state architecture that’s consistent with a clear understanding of the market served by the business.
Below is a summary of IT principles that should be considered to enable businesses to thrive. The intent is to share the most notable principles that facilitate transformation to a more agile environment that restricts complexity.
FIRST PRINCIPLE: DESIGN AND BUILD THE MINIMUM
Value: Agility, Security and Simplicity
IT solutions will possess the minimum features to meet user/business needs. Understanding how users work and what problem need to be solved is essential to designing and building solutions; don’t focus solely on a list of requirements.
SECOND PRINCIPLE: BUILD SERVICES RATHER THAN APPLICATIONS
Value: Agility and Resiliency
Applications should be developed as a collection of services that expose APIs. Services must conform to service-oriented principles (i.e. stateless, modular, loosely-coupled, reusable) to enable the agility needed to adjust to marketplace changes, and the resiliency needed to maintain availability of services.
THIRD PRINCIPLE: DESIGN FOR FAILURE
High availability is replaced with resiliency. Focus on software and services that sense failure and automatically redirect requests to available systems.
FOURTH PRINCIPLE: BUILD THE RIGHT LEVEL OF SECURITY IN EACH LAYER
Security begins with the development of solution concepts. Understand the sensitivity of data and implement the right controls to maintain privacy and integrity. Each layer in the stack must be considered to protect data from creation to storage. All personnel must maintain knowledge of security needed to compensate for known weaknesses in technologies used to deliver IT solutions.
FIFTH PRINCIPLE: TECHNICAL DEBT WILL BE MANAGED
Value: Agility, Performance and Security
Legacy technologies and messy solutions become hindrances to progress and increase risk. Legacy technologies will be contained to non- critical services and replaced when feasible. Messy solutions will be allowed if there is a strong business need, however a well-defined and funded plan to make the necessary improvements should be in place.
SIXTH PRINCIPLE: INFRASTRUCTURE PLATFORMS WILL BE MULTI-TENANT AND DYNAMIC
Value: Agility, Performance, Security and Resiliency
Compute, memory, storage, and communication infrastructure will allow for performance, privacy, and fault isolation to ensure application services are contained and cannot impact the integrity of other services executing on the platform. The infrastructure platform must scale out. This principle applies to on premise platforms and Infrastructure as a Service (IaaS) subscriptions.
SEVENTH PRINCIPLE: AUTOMATE, AUTOMATE, AUTOMATE
IT tasks ranging from provisioning of test environments, to configuration management of production systems, to compliance checks will be automated to increase speed of delivery and improve efficiency of operations.
EIGHT PRINCIPLE: CONTINUAL REFINEMENT
Value: Agility, Performance, Security and Resiliency
IT will work to understand system usage and behavior patterns, and adjust services as needed to ensure availability, performance, security, agility and costs are aligned. This includes making decisions to ensure workloads are executing in the right venue.
Principles aren’t easy to comply with because the day-to-day realities require IT teams to “creatively” solve problems and live to fight another day. When you are in the heat of battle it’s difficult to step back and think about principles. The challenge is principles must be adopted to get IT organizations out of the hole they may find themselves in.
The key to principle adoption is to get buy-in from the right personnel within the organization. Architects and technology leaders are likely targets as they have a strong influence on the design of new and modification of existing solutions. C-level team members can provide the necessary resources and organizational support to implement the principles. With their buy-in, these principles become ingrained into system lifecycle management processes. Once this happens it’s only a matter of time for the principles to shape services and facilitate IT transformation.
Each organization should identify the principles needed to guide their transformation, and integrate them into daily decision-making to establish and maintain the right IT culture.
For more information, please reach out to Karl at firstname.lastname@example.org.