From the course: Strategic Monoliths and Microservices
Digital transformation: What is the goal?
From the course: Strategic Monoliths and Microservices
Digital transformation: What is the goal?
- So let's talk about digital transformation. What is digital transformation? Well, we really have to understand what the goal of digital transformation is. I think that a lot of people have different ideas of what actually constitutes digital transformation. In this video, when I talk about digital transformation, I'm talking about strategy and innovation. First of all, it's good to understand what strategy is. So let me give you some definitions. Strategy is a set of adaptations that serve an important function in achieving an ongoing process. Okay, so this means that we're going to bring together some basic ideas that help us to perform some kind of function that has value. And let's say that it has to have value to users or customers. An invention is an act or process of producing something for the first time through the use of the imagination or of ingenious thinking or experiment. Now, I have to say that invention is very difficult, pure invention, where we're talking about the thing doesn't really exist before. And so how do we get around the fact that very few true, completely unique inventions happen these days? Well, let's look at the third definition. This is innovation. So innovation is a new idea, method, or device, and the introduction of something new that may be derived from something existing. So innovation is kind of like an invention, but a tiny invention in that you're kind of twisting something that exists and making it better in some way. So, different. Another way to look at it is that the sort of watershed between invention and innovation is that all invention is innovation, but not all innovation is invention. And you know, when you think about it, well, if you invent something completely new, that is an innovation. But an innovation doesn't have to be a completely new invention that no one has ever heard of before. And I'll explain this more in a few moments. But think about the difficulty in having a pure, new invention. It's difficult to accomplish, and it might even be impossible depending on the domain, the business domain, that you're working in. However, an innovation is a realistic goal because it might involve breakthroughs in differentiation. So this means that a process or a way of working exists already, but you can still create breakthroughs or discover breakthroughs that differentiate the way that your software works compared to what other software does currently. On the other hand, when Steve Jobs talks about innovation, he said, this was years ago, "You can look at the competition," or "You can't look at the competition "and say you're going to do it better. "You have to look at the competition "and say that you're going to do it differently." So innovation is actually around differentiation. And when you think about the iPod that came about, well, you know, when I was much younger, I used to listen to Sony Walkman and some other sort of handheld devices that could play cassette tapes. They could also be used as radios, but they weren't the old, old transistor radios. These were FM radios that, you know, we had earbuds, or you know, basically the wire running down to the Walkman. Now, Apple didn't invent that kind of listening device. What they did actually invent though was the ability for someone to put thousands of songs, or at least 1000 songs, in their pocket. And if you also look at Microsoft Office versus Office 365, or I guess what's now called Microsoft 365, Microsoft did not even invent the word processor or the spreadsheet at the very beginning. So Microsoft Word and Microsoft Excel were not inventions. They were innovations around word processing and the spreadsheet they innovated with those. And they also created the Office Suite as innovations. And Microsoft 365 also didn't invent online office productivity. It simply innovated by putting those capabilities of the Office Suite online so that we can use them through the internet. So this is the kind of thing that I'm talking about when I talk about innovation. Some people consider that lifting their software from their local data center or their own in-house data center, or whether it's inside or outside the corporate buildings, they consider lifting that and shifting it to the cloud, such as AWS or Google Cloud or Azure. And that though is really not innovation. It might save money, maybe, but it might not actually. It might actually cost more than having your own staff and your own data center. It depends. But that's really not an innovation. So when we talk about lift and shift, that's really not what I'm talking about as an innovation, even if your CIO claims that it is an innovation. What I'm really talking about is investing in differentiation. Now, here's another example, SpaceX. SpaceX is and was and is an amazingly disruptive innovation. From the years 1970 to 2000, launching one single kilogram into space cost about $18,500 U.S. dollars. For a SpaceX Falcon 9, the cost dropped to $2,720 U.S. dollars. That's a seven to one improvement in cost. SpaceX, then, has most of the space launch business in the whole world. That's how disruptive that innovation was. So their goal, their innovative goal, was to dramatically reduce the cost to launch things into space. How were they doing that? Well, they had to recover booster rockets because some of the biggest expense is the booster rockets falling into the ocean and never being recovered. The innovation was that the booster rockets weren't new, but recovering them and reusing them was new. And look at the disruptive innovation that occurred because of that. So we want to think of innovation, strategic innovation, as differentiation. Imitation is not a strategy. So if you were to go out to look at any example around the internet, and you see, well, let's just take Microsoft 365, for example. Creating a one-to-one functional office suite like Office 365 is pure imitation. It's really not a strategy. Your only way to compete with Microsoft in that space, or for that matter, Google as well, with their Google Workspace, is that you're really going to have to compete on price, and I think you're probably going to lose at that. So it's really not a true differentiation. So we want to differentiate. That is strategic innovation. Strategic business goals, therefore, should be based on differentiation. And we can do that. We can accomplish that by continuous and tenacious improvement on the software on which we're working right now. Let's take just a quick glance at software architecture because our software architecture will be a big part of our discussion in this video. Compared to building architecture, a building, as in a physical building like an office building, has structure. It reflects the results of communication between the architect and the owner of the building that specifies the features that they want. The building is actually a system in itself and it contains many subsystems, each with a different purpose and role. For example, the air conditioning, the electrical power, the duct work that carries the heating and air conditioning, the thermostat, the insulation, and all of these have to be within a closed area in order to cool. So the building itself is a sort of subsystem in that it insulates the entire area that's going to be cooled, or for that matter, heated in the winter. So let's think about software architecture now compared to that. So software architecture is a system. A software system has structure. Structure within structure is actually what we have in a software architecture. So we may have, if we think about a single service or an application, something like that, that in itself is a system. And within that, there are subsystems, and within that are structures that represent and hold and maintain those subsystems. And we segregate the various components that are even smaller than the structures, such as, if we thought of the structures as being modules, for example, then the components that live within those modules, those structures within structures, are independent and operate independently. So what about the components themselves? Components also must communicate. How do they communicate? Some communicate only locally, one component to another. So for example, in the same process space. Others can communicate globally, so across process spaces to, say, another service. And either way, we try to design loosely coupled components because those are really the best. But coupling is still necessary. So that's just sort of a quick glance at architecture. But the reason for all of this is that the architecture must support change and it has to support different kinds of change. So for example, quality attributes such as security, privacy, scale, and resilience might have to change over time as well as performance and including latency and throughput. We may have to be able to increase the throughput and, therefore, decrease latency. And that will all result in overall performance improvement. Functional capabilities also have to change over time. There are changes to the way businesses conduct business with their clients. There are business demands that change over time and also people change over time. So maybe the way users use software, interact with software, changes over time. And so the functional capabilities of software, the software architecture, must also be able to change. So overall, the points that I'm trying to make now about strategic innovation and software architecture supporting that can be illustrated, let's say, something like this. Let's think about the innovation that is going to occur over time. So we have a team of individuals and they're communicating with one another. And as they're doing so, this represents dialogue of the individuals. They have their individual thoughts, and as they communicate with one another, they're actually each helping each other, and they're going to experience multiple of these aha moments. And as they do so, whether the software is existing or whether it's changing, these sort of enlightenments represented by the light bulb, that represents an area of expertise, a sphere of knowledge that's being worked on here together, these individuals are going to affect change to this because their knowledge grows. Their knowledge grows, and as it does, the software changes. It could be that the software changes across different services. It could be that this represents a monolith. Maybe there's a need for a new microservice. But notice whatever happens in here because of this new knowledge that's being acquired, the software is changing. As it changes, we have to consider the changing quality attributes. For example, we have a monolith that exists and we have one set of security concerns. But as soon as we introduce a single microservice, we have new security concerns. And within this monolith, performance was not a problem because everything was happening in a single process. But what happens when we add a microservice? Well, now we have a network between them, between the monolith and the microservice. Performance is now going to be challenged by this network separation. There's more latency, less bandwidth on the network than there is in a microprocessor, a CPU, that is, no doubt, multi-core and has and can run many different threads simultaneously. So as we introduce new ideas, we're also introducing software changes. So business changes, the demands from the market also changes. So market demand changes and the people themselves change. So the kinds of users that we initially supported are changing. That's because they're younger people with often different, completely different set of experiences, different mindset on how they want to accomplish work, things that are acceptable to them and unacceptable. They're just simply different. Through all of these kinds of demands that are changing, this architecture needs to continually support the change that's occurring. It cannot be escaped. We can't ignore it in any way. We have to make room for it. This requires our software to be flexible, to be adaptable, open to change. And I think that this does a pretty good job of explaining the overall circumstance that we're dealing with with strategic innovation through software.
Contents
-
-
-
Lesson 1: Business goals and digital transformation learning objectives59s
-
Digital transformation: What is the goal?15m 5s
-
Why software goes wrong10m 11s
-
Your enterprise and Conways law16m 36s
-
(Re)thinking software strategy20m 5s
-
Monoliths bad? Microservices good?4m 11s
-
Dont blame agile4m 8s
-
(Locked)
Getting unstuck8m 28s
-
-
-
-
-
-
-
-
-
-
-
-
-