Throughout my career I’ve helped countless organizations get through some form of business transformation using technology. I learned from a very early time in my career that successful business transformation is as much a human journey as it is a technical challenge. In the tech industry, it’s much simpler to build software that will serve a singular purpose with fixed requirements. But the reality of the world, is human beings are not singular in our mindset. We are complex and beautifully innovative creatures. And for this reason, our “requirements” for how we want to use technology is fluid and a continuous stream of change. Our businesses change, adapt, and (hopefully) grow based on a continuously changing environment. The technology we use to run our businesses needs, in turn, to be pliable and able to continuously adapt on demand. Historically, the term “sustainable software” has been applied to developing software in a way that it can be easily changed and adapted over time. More recently due to the urgency to respond to climate change, sustainable software and sustainable software engineering has been adopted to refer to developing applications that are more energy efficient and employ “greener” business processes and automation. Both of these definitions are not conflicting and nicely merge into a holistic lens when considering a sustainable digital transformation. There are several factors to consider when achieving a sustainable digital transformation:
- Eliminate code wherever possible. In terms of sustainability, functionality is an asset, code is a liability. From the book Software Engineering at Google, to Kirk Pepperdine at Microsoft, to Kevlin Henney, there are many thought leaders in software engineering that emphasize writing the least amount of code to achieve the most functionality. The more code you write, the more you must maintain, transform, bug fix, etc. That’s not good for the environment or your bottom line.
- Implement highly adaptable and flexible architecture. Business requirements will change continuously. New technologies will emerge that your organization will want to employ. Securing your data and intellectual property requires constant vigilance and improvements. Your application architecture needs to be developed in a way that every component of the system can be replaced without impacting other parts. And it needs to be very efficient to change and evolve any component.
- Efficient use of infrastructure resources. There has been a lot of publications highlighting how cloud computing is a greener, more efficient infrastructure to traditional on-premise datacenters. Being able to embrace a cloud transformation and other emerging technologies is an important consideration to reducing an overall carbon footprint. The other way to improve resource consumption is to develop software that is highly efficient in processing operations. If the application can efficiently produce a very responsive user experience on 2 servers rather than 10, the benefits are obvious.
- People are the center of any transformation. If you want to achieve a digital transformation, then the people impacted will need to understand why change is needed and how they will benefit. For many people, change is hard. We have a natural inertia to continue along the beaten path. To be successful in your sustainable digital transformation, it is essential to engage key stakeholders and influencers in the organization to clearly understand the benefits and drivers for change. By engaging these key people early in the process, you may discover that some of your assumptions are based on shaky grounds and need adjusting. It will also empower and motivate individuals to get behind your mission. Prototyping or using tools that enable you to present early versions of the desired user experience to stakeholders and influencers will help drive a more tangible and impactful outcome in the digital transformation. Equipping your internal team with the right tools and knowledge will further develop the necessary expertise to sustain continuous transformation.
- Embrace a governance framework. There should be a clearly defined business case for why the organization is undertaking a sustainable digital transformation. Fortunately, for most companies there are many measurable benefits that an organization can assess as part of building the case: reduce operational costs, increase business agility to respond to market trends, unlock new paths to market by incorporating new technologies, efficient use of limited resources, improving brand and market appeal, and reducing overall carbon footprint. There needs to be a governance structure defined within the organization that aligns with the strategic objectives of the business and maintains oversight of the sustainable digital transformation. This governance framework should include a business steering group with appropriate authority and composed of major stakeholders in the business. The business steering group should provide continuous oversight of measurable key performance indicators (KPIs) from the business case and prioritize sustainable digital transformation opportunities.
A sustainable digital transformation is not a fixed goalpost with a start and end. We need to sustain continuous change, forever. There are certainly milestones to accomplish and goals to set – that’s good governance. The point is we need to embrace technologies and approaches that allow us to rapidly respond and flex to forever changing requirements. This requires the adoption of truly sustainable application architecture.
At greatideaz, we embraced the truth that we can never expect to know all the requirements. And we champion a culture of relentless innovation. Our core product, trellispark, is based on an architectural approach called Data Agnostic Services; which gives us tremendous flexibility to evolve, upgrade, and transform core components of trellispark without large development lifecycles. A significant benefit of this architecture is that we can eliminate vast amounts of the actual code required for CRUD (create, read, update, and delete) functions to the database and most of the frontend presentation layer. If you don’t have code, then there’s nothing to rewrite or test when you want to change your user experience or data model. It’s also designed to make it easy to replace core components of the application without breaking other components or requiring deep, extensive test cycles. This means that we can change the data model of a production system without re-writing lots of code or add a whole new set of functionality without breaking existing parts. We have also developed functionality, such as our UX Creator, that allow you to build custom user experiences with business stakeholders in real-time. Choosing the right application architecture to achieve sustainable digital transformation matters. A flexible and code efficient architecture paired with a functional governance framework and plan to embrace the human journey will go a long way towards achieving a sustainable digital transformation.