Ron Kraemer, our VP of Information Technology and CIO, spoke at the IT Leaders Program this week. He built on his blog post, Interdependence – Both Positive and Negative. To paraphrase:
The growing interdependence of our systems is driving the complexity of our systems towards the edge of chaotic systems. The choices that we make are no longer focused on finding the perfect solution. Instead, we can see many possible solutions, many of which are good solutions. The choice is then to pick the solution which builds positive interdependency and limits negative interdependency.
In his talk at ITLP, Ron also pressed on the ever-growing rate of change. These two factors limit our ability to design and implement perfect solutions to problems. To paraphrase again:
If you take two years to design a great solution, the landscape will have changed so much that the solution may not be applicable. The level of complexity makes finding and defining the perfect solution even more difficult. The level of interdependence means that even more good solutions are available – when many systems are connected, many systems could be used to provide the solution.
I agree with what Ron has come to believe. The level of integration between systems is very high. The expectation for real-time interactions has become the norm. Users expect to see real-time flight information. They expect real-time updates on openings in courses. Students can see, in real-time, the bus schedule, where they are located and the location of nearest bus stop and the location of the buses on their routes.
This interdependence has driven complexity to the point where perfect solutions are hard if not impossibly to design and deploy. Therefore, we must choose from many good solutions that exist. We need to act quickly to implement some solution to meet the rapid rate of change.
This is where Enterprise Architecture and the other architecture practices can help. If we look out to the future and think about the desired state, then we can begin to sift out those good solutions which move us towards that future state. For us, we had stated that Service Oriented Architecture was a strategic direction. That bounded the future state some. In the student area, we had a future state process diagram. This diagram outlined improvements to the way that students manage course data and move through finding courses to enrollment. This put another boundary on the future state. When it came to think about how we get course roster type information out to a new learning management system (Moodle), we were able to use that projected future state to pick from the possible solutions (flat file transfer, shared database connections, web services) those which moved us closer to future state.
The rate of change and interdependency drives the importance of an architectural approach. If you have not thought about the future state, then there is a multitude of choices. To pick from many choices, you have to establish some factors that affect your selection. In a restaurant, this might be dietary restrictions, cost, the weather outside. In technology, it is often quickest and cheapest. But those factors, in this complex environment are often shortsighted and misguided. The quickest and cheapest solution might need to be replicated many times for many systems. This would increase the interdependency in a negative way and push you even closer to a chaotic system. A more expensive, slower solution might serve you well over the long haul.
Architecture can help you make those choices in a framework that is focused on the future and on the overall complexity that you are creating. Enterprise Architecture (and the other architecture practices) can help sort those good solutions and help make sure the choice you make is along the path to desired future state.