In a previous post (Complexity – The Silent Challenge Part 1) I shared thoughts on the challenges of complexity and its impact on delivering business value. The objective of this post is to provide insight into addressing complexity for the short and long term.
Why should you care? Complexity continues to be a major detractor from IT responsiveness and contributor to risk. A recent survey by Trustmarque shows that 79% of the CIOs surveyed stated that simplifying IT is a high priority in their organization. Additionally, 89% of those CIOs recognized that simplifying IT while driving innovation continues to be a significant challenge. My point is complexity is a major issue within today’s IT environment and has to be addressed.
Granted, one can debate the point that today’s systems are inherently more complex. Technology advances have unleashed new capabilities – this is a good thing. The challenge is the distributed systems needed to deliver solutions that scale can be complex. How do you balance data consistency and availability (apply the CAP theorem)? How do you manage session state when network connections may be unstable? These are a couple of architecture challenges associated with today’s systems and there are many more.
This is one side of complexity. The other side is all of the baggage that comes with minimal systems planning, suboptimal operational practices, and legacy technologies. In other words, the big mess that results from years of fire fighting and getting solutions out the door as fast as possible. This is not an indictment on IT as there are several factors that lead to this situation.
Enough with the background let’s get to the point of this post – how to address complexity and achieve simplicity. Talking about simplicity is easy, achieving it is the hard part. To achieve simplicity one must have a strong command of what needs to be delivered coupled with an even stronger understanding of how to deliver it.
The remainder of this post offers my perspective on addressing complexity and achieving simplicity. Below is a summary of the steps needed to tackle it for the short and long term. This approach has worked for me several times and I hope it helps you address your challenges.
Steps to Simplification
- Understand what’s important to your business
- Define future state IT architecture and principles
- Establish the culture and enhance skills
- Rationalize and maintain
1. Understand what’s important to your business
The key to achieving simplification is developing a great understanding of the business, business processes, and user community. What’s the connection? This enables development of solutions that hit the mark without rework and retrofit. Think about it, the biggest driver of complexity is a lack of understanding the problem that needs to be solved. Get your technology personnel ingrained in the business and understand the processes. Take action on the following three points to gain an understanding.
- Business goals and strategies – Work with business leadership to understand where the business is going. What strategic imperatives will drive achievement of goals.
- Critical business processes – Identify the processes that support core business operations. In addition to simply mapping the processes, seek to understand what your stakeholder is trying to accomplish and offer options to further optimize. This requires a great understanding of the business.
- User community – Understand how users work. Are they nomadic? How do they interact with systems? What business processes fit within their role?
Combining knowledge of business goals, processes, and user community will result in streamlined digital solutions. From a user perspective system interaction will be intuitive and access to information will be fully optimized. From an IT perspective improvements such as simplified points of integration, streamlined workflow, and elimination of unnecessary components (e.g., Citrix) can be accomplished.
2. Define future state IT architecture and principles
The next step in the process is to identify the right IT architecture and principles needed to guide solution design and delivery. Architecture and principles have become extremely important in today’s IT environment. IT has become a broker of digital services with architecture and principles serving as the glue to tie services (SaaS, IaaS, PaaS, and on-premise services) together and maintain simplification. The graphic below provides a high-level overview of the key architecture areas to address (integration and common services).
Reference Enterprise Architecture Example
The architecture must be accompanied with principles to ensure consistent design and delivery of services. Why is this important? Consistency in design and delivery is essential to reducing and containing complexity. Below are example guiding and technology principles. Define the principles needed to facilitate the right outcomes in your organization.
IT Principle Examples
- IT decisions will be aligned with the future state architecture and strategic plan
- Industry leading practices will be used to guide service design, delivery, and management
- Solutions will adhere to IT standards; exceptions will be made where non-standard technologies provide significant business value
- Solutions deployed must be affordable, interoperable, sustainable, and compliant with industry and regulatory mandates
- Dynamic data will be hosted close to the application; static data will be hosted close to the user
- CAP theorem will drive design of distributed databases
- Technologies must fail securely
A good definition of the future state architecture and over arching principles goes a long way to root out complexity. Don’t forget to involve key personnel (e.g., Enterprise Architects, Solution Architects, Senior Business Analysts, etc.) in the process as this will expedite acceptance and increase passion for what needs to be done.
3. Establish the culture and enhance skills
The next step in reducing complexity and achieving simplicity is changing the culture. Over time organizations become accustomed to getting solutions out the door quickly without understanding how it fits in the big picture (enterprise architecture) and, more importantly, how it will be sustained. Also, haphazard changes in the environment add to the mess.
This culture leads to poor morale because constant fire fighting becomes the norm. Constant fire fighting leads to employees not believing their work is meaningful and they don’t see a light at the end of the tunnel – doom and gloom. This culture has to change before you can truly address complexity.
Changing the culture requires leadership to provide clear direction and a pathway to meaningful work. Leadership must develop a roadmap that shows the path out of constant fire fighting and into the future state architecture (see step 2). The messaging to the organization must clearly address:
- Why this is important
- What’s in it for them
- What’s needed from them
- How success is measured
- How everyone will be held accountable (no threats – practical goals and objectives)
Communication of this information along with helping each team and team member understand what’s expected of them will establish the right culture. It’s amazing how clear direction and meaningful work motivate teams to perform at a high level. This is extremely critical!
The change in culture must be accompanied by focused talent development. The skills needed for today’s IT personnel are much different than in years past. A keen understanding of the business along with a diverse set of skills (technical and soft) is needed for today’s IT professional. I’ve addressed this in previous posts, Key Skills for Technology Professionals and How To Become A Great Architect so I won’t rehash it here. Ignoring these shifts and delaying skills enhancements will perpetuate the complexity challenges in IT. The primary focus must be enhancing architecture skills, start their to get the most benefit.
4. Rationalize and maintain
Now that all of the prerequisites have been fulfilled (future state architecture, principles, culture, etc.) the rationalization process can proceed. The real work in tackling complexity is rationalizing the environment to eliminate redundancies, remove unnecessary layers, and replace technologies that don’t fit the future state architecture (see graphic below).
IT Rationalization Process
The rationalization process starts with identifying the application portfolio and mapping applications to business processes. Once the future state application portfolio is developed the next step is to rationalize the data and infrastructure environment needed to support it. I’m greatly simplifying the process because there are several steps to execute after application portfolio development.
The result of the rationalization process is the simplified technology environment needed to support effective and efficient IT service delivery. Wait, the work doesn’t stop there. Processes must be implemented to maintain the optimized environment and prevent drift. This is where governance, solution design, and ITIL processes play a key role. Each organization must find the right balance to ensure the processes yield the right result without becoming a barrier to progress.
Rationalization requires a significant amount of work but the benefit to the business will be significant – reduce cost, reduce risk, increase delivery efficiency.
Hopefully this post has given you insight into addressing complexity in your environment and inspired you to address it holistically. Most organizations focus on IT rationalization, which will yield benefit. Great organizations focus on the other areas (business, architecture, and culture) to achieve real transformation and long term benefits for their business. In my experience the holistic approach is a significant undertaking and the benefits greatly outweigh the effort.
There is much more detail behind the points outlined in this post. Please contact me if you’d like to discuss. I’m passionate about transforming IT to meet future challenges and always up for a discussion.