December 22, 2017 — VANTIQ CEO Marty Sprinzen delivers his views on “Event-Driven Systems as a Vehicle for IoT and Digital Transformation” at the Wisconsin University IoT Research Center.
Click the image below to play the video:
Marty: Okay let me start off with one comment: the presentation was originally titled “Event Driven Systems as a Vehicle for IoT and Digital Transformation”. What I decided to do while putting this together is raise the level. We’re going to talk a little bit. And I renamed it “People, Places, and Things”. And I want to talk in a pretty generic sense about what we’re seeing as the changes that are occurring in the industry. At the end, I’ll do my best to leave time for questions. I will. And then we can talk about some of the trends and some of the challenges.
I think we’ve all heard that quote, that old Chinese quote: “May you live in interesting times”. Well, we live in dramatically interesting times. Look at the amount of change that’s occurred since the internet started only twenty years ago. And by the way, a quick anecdote there, I founded Forte just about when the internet was starting and we’re going out for funding and getting VC money, and we went to one well-established VC firm in Baltimore. You can probably guess who if you’re familiar with the industry. I presented some of my ideas, and their response was, “Eh, you know, this internet thing is going to be a flash in a pan. It’s going to be like CB radio. It’s not really going to catch on. My grandmother will never use the internet.” And as much as we, even at that time, thought “Yes it’s going to really catch on. It’s going to be more than email.”, it wasn’t clear. It wasn’t 100% clear. I remember the first time I saw an ad in a magazine and on the bottom it said “www”, maybe 1995, and I went, “Yes! This thing is really happening.”
Now, look at the amount of change that the internet has brought on, Internet of Things, of course, being a lot of the change. And we’re going to talk about that. How quickly do you think, if the internet was created today with the rate of change, we’d get to this point? Maybe 10 years. In other words, accelerating change. Maybe less. I mean, the whole world is interconnected now. Things are happening so quick. And one of the challenges that I think all of us succumb to is: Well we do things today. Let’s design things for a year or two years. But the reality is, we’ve got to be thinking multiple years out because the amount of change that’s going to occur in the next five years is going to be incredible. These guys, these devices that we all have. How long have they been around in this form? [holds up smartphone] Since 2007. 10 years. That’s nothing, and look how they’ve proliferated. What we’re going to see in the next 10 years is going to make this look somewhat trivial.
So, one of the things that I’m going to be talking about is: in order to address this level of complexity, we can no longer do things the same way. Let me repeat that because it’s, I’m talking, dramatically different. And the way we’re training engineering students, it’s good today, but how they are going to operate in a very different world in just a few years is going to be different. So, how do we create abstractions? How many people here are engineers way back when? Okay, 2/3rds of the room. So, the way that things are going to have to be done over the next few years to meet the changing requirements are going to change dramatically.
So, as I said, I changed it to people, places and things. Alright, we all know this. You’ve all heard it. You hear it on CNBC or in the newspapers that companies are having to adapt very quickly or they’re going to be out of business. I saw John Chambers on CNBC just a few days ago. He made a comment that fortune 5000 companies, 40% of them are going to be gone in just a few years. That’s pretty dramatic. Yeah, change has occurred quickly, but never at this pace. So how do these companies either stay in business or at least attempt to stay in business? And the challenges are dramatic and a lot of them are around technology. Not all. There’s social, other impacts of course, but what we’re going to talk about is some of the things that are happening in the industry.
I put this together to be a little bit humorous because of all these revolutions. So, I have quotes here from the economist, for example. The first one. Cloud revolution, so one revolution. Smartphone revolution, another. IoT. We’re here because of IoT, IoT revolution. AI revolution, microservices revolution, DevOps resolution. So we have all these revolutions going on simultaneously. Sounds a bit challenging to me. In addition to that, everything is occurring quicker. So, this is a Gartner quote, which they claim, “By 2020: half of new user-facing applications will be event-driven applications.” That’s really half of applications, basically. So they’re saying, half of the applications are going to be a new style this event-driven style. That’s another major change.
If we look a little bit at the history of software, up until very recently, what was done in software is basically automating existing business functions. That’s why SAP, General Ledger, Human Resources, and you can even say CRM is the same thing. They’re an architecture which is a client server type architecture. So, you have a server, database, and maybe many front end users even on a smartphone. Amazon’s app is the same way. Uber, even a little bit, although they use functions that are distributed. This architecture, up until today, has been the common architecture that exists in companies. However, digital businesses are going to be different.
IT is going to still maintain what they do for the corporations, and the existing legacy systems, etc. But OT, operations technology, is going to be where all the innovation occurs. How many people here are from OT? How many from IT? Okay, more IT. IT needs to innovate. IT needs to dramatically innovate to meet the challenges of today because where are the challenges? They’re moving out from the core business functions. They’re moving into the operational environment, whether it be the supply chain, monitoring people, I’m going to talk about some of the new technologies that are coming into being.
This is kind of a digital nervous system if you will. Software is going to run everywhere and do everything, and there ain’t no stopping it. We all kind of know that, but the challenge is this creates a huge problem. And the problem is: how do you deal with all of these events coming in, all these asynchronous events? Today, you may have 1,000, 5,000 IoT devices. In ten years you may have 100,000, a million IoT devices. And you may need to process data all over the place. The type of data coming in, too: you can’t store it and analyze it all later. You have to do everything now in real time. An average jet engine has 5,000 processors on it. If that’s generating an event a second, you very quickly go up to huge amounts of storage. And if you want to analyze that in real time, (the same is true with a compressor, and sophisticated piece of manufacturing equipment) you’ve got to analyze it as it’s being generated. And that may be AI, machine learning, trend analysis. And we’ll talk about where that analysis is going to occur in a few minutes.
Information deteriorates very quickly in real time. So, we’re moving to a requirement that we’ve never dealt with before: huge amounts of data and operating and analyzing them in real time. And a key point to mention is: that’s today. Let’s go out five years, and as that data exponentially grows, which it will, where is that analysis going to be performed? Clouds will actually fail. Even with 5G networks which are hopefully at least ten times the speed and less latency. As they come into being in the next five or so years, yes that will be a lot better. But the data is going to grow way beyond that. Therefore, we’re going to have, as we’ll talk in a few minutes, a need for true, distributed processing. Software is going to need to run everywhere. Are we planning for that today? I don’t think so. I think we’re still assuming the old model of everything goes to one server. Whether it be on premise or in the cloud, we assume that model is the model of the future. It ain’t the model of the future. It can’t be the model of the future. It’ll bring the internet to its knees.
Last one, [directs attention towards slide] including people. This is something that has been, I believe, dramatically ignored, and as was mentioned, I took kind of a break after I sold Forte, and I was doing a lot of analysis of the industry. But I was in an operational position for years. And finally, it struck me about three years ago that all this talk about IoT – when IoT was really just starting to be talked about – and what was then called “automation”. If you remember, only three years ago we’re talking about automating the world. Everything’s going to be automated. And I actually said to myself, “Hogwash”. I didn’t actually use that word, but I thought, “This ain’t gonna happen.” We’re taking people out of the loop? That’s nuts. AI is powerful. I learned AI. I was an AI programmer way back in the 80s. And, it’s more powerful today, processing power, of course, the amounts of data we get make it a whole different world. But still, AI can be very effective in augmenting what people use or what people do. It’ll tell retailers, for example, “This client has bought there before. He is standing in this place of the store. Go pay attention to him.” or “This machine has a 80% chance of failing within the next week. That type of functionality computers can do so much better than the human mind. But humans have an ability for intuition and experience and dealing with unknown situations that computers are a long way from, if ever.
I disagree with Ray Kurzweil’s opinion that there’s going to be this singularity. My son is going for a Ph.D. in Neuroscience, and we’ve had a little bit of an argument about AI not too long ago. He said to me, “You computer scientists are nuts if you think you’re going to model the human brain. It is so much more complex than you have any idea. It took nature 4 billion years to evolve us to this point.” He said (I think there are 100 billion neurons) he said, “Multiply that by an order of magnitude because it’s the connections that count.” And then he said there are feedback mechanisms in it that we’re just now beginning to understand. Anyway, the short of it was, maybe way down there we’ll be doing sentient beings, but I think that is way off. However, the usefulness of AI, there’s no question about it, can make us so much more productive. It’s another tool, an exceedingly powerful tool, a tool that adds to our ability in many areas. In many ways, it can do things that there’s no way we can do fast (such as machine learning), but it is a tool.
So, when it doesn’t fit the situation, then what do you have to do? You have to involve people and user experience, their intuition. You know, we all actually kind of – if we’re manufacturing especially – we kind of agree to this because I’ve heard this comment many times from manufacturers: “When the old guys are retired we’re kind of screwed because nobody knows how to treat these machines like they do or these systems like they do. So, we’re going to put that knowledge into software. Hopefully, that works.” But that shows you, again, the dependence we have on humans and their knowledge. The means of developing applications today to meet these types of requirements are far short of what is needed. Of everything I am going to talk about this morning, that’s my biggest premise and argument. We need a different way of developing software.
So, we take these complex environments that include: machine learning, matching systems, collaboration, tracking, location, blah, blah, blah, and we want to build event-driven business applications. Well, this is exceedingly hard and it’s going to get harder. Location is now becoming a key factor in software applications. Where are your assets, where are your people, and how do you track that? Facial recognition, we’re really close to real productivity uses of it or real production uses of it, and that’s going to be a major change. Think about it in security. If you could recognize, if that person walking through the door, was an employee or not. And TSA is going to apparently move over to facial recognition. You’ll be able to really walk right through and they’ll recognize you, and that’s just the beginning. Once manufacturing companies realize that they could manage their assets and reduce theft tremendously by knowing who is what, where, when, for how long, they are absolutely going to use it. So those are some of the requirements.
In order to meet these needs, we have to raise the level of abstraction of how software is being developed. So, we’ve always done this. In our industry, for years, of course we started off with 3rd generation languages, 4th generation languages, object oriented programming. We introduced that at Forte. It was very powerful. [It] enabled you to structure software basically in a much better way and a more maintainable way. Well, those abstractions have to be extended to the new requirements and a whole new level of abstractions. In a way, one of the examples I use is like: some of the screen paint, the GUI screen painters. Those are abstractions, of course. You could paint things and then the code would be automatically generated. But if we’re looking at the new requirements, and the new requirements are around dealing with events, and as I said earlier, the amount of events you’re going to deal with today are trivial compared to the future because sensors are going to be everywhere monitoring everything and analyzing those events in real time. It means you need higher levels, higher ways of doing it. Not just averages, but trending and comparing different sets of streaming data in real time, and making decisions on that in real time. And as the data increases, the requirements for that are going to increase dramatically.
Distribution. Software is going to run everywhere. Almost everything will have an internet. Anything that can be monitored will have an internet address and be able to run pieces of software, maybe even complex pieces of software. So, distributed software, we’re just at the beginning phase of that.
Collaboration. I mentioned people working with people. That’s another place. I’ll give you an example in a little while. Where abstraction can be created to make it far easier. And all of this has to be done relatively fast. So, low code.
If we talk about the events, as I mentioned, events have to be dealt with as they occur. There are new programming paradigms for that. How many people here are familiar with reactive programming? Okay not many. It’s a relatively new, 4 or 5 years old, way of doing programming that is a none-blocking way of dealing with events. That sounds – that’s pretty technical – okay. But the reason is: if you need to deal with events in real time, you can’t cue, you can’t block. And how do you do that? There are system architectures designed today (our system was built using one) that use this reactive programming model. And the benefit of it is it is highly scalable. It could horizontally scale in a cluster, for example. And through using distributed capabilities, putting logic in different places, you can enable it to scale, in theory, infinitely. Nothing’s infinite, but, you know, as much as needed. And this type of programming model which just came into existence, is something that will be absolutely needed as we deal with these event processing systems which are really high end, complex CEP [complex event processing] engines, really. The other things that need to be done: systems need to be resilient. Something crashed, something else picks it up anywhere else in the network.
Let’s talk a little about where the logic is going to run. None of us would say that you’re going to operate an elevator bank from the cloud. That’s pretty intuitively wrong. You have latency times, latency problems, and of course, you’ve got major problems. Those problems are exacerbated for a following reason: that some of the latest designers of elevator systems have actually reduced the number of elevators that will exist in these large office buildings. And they do it by optimizing the flow of traffic into the elevators themselves. And they claim they can reduce by 20% the number of elevators. So, instead of needing let’s say 10 elevators for a large building, you can use 8 elevators. So, that reduces energy and a lot of other things, but you have to have local processing to do that, and you have to depend on the local processing. And you can’t have backup if a local processing is down, the cloud’s going to handle it because you have fewer elevators to deal with.
In terms of places, types of locations are going to be everywhere. All of these intelligent devices, much more than mobile and sensors. Movable devices, movable robots, etc. The bottom point is the major one I want to make. With time, there’s going to be almost unlimited complexity and logic because logic is going to be everywhere. Or as Marc Andreessen says, “Software is eating the world.” And it’s going to be in every device and do much more functions than ever before.
So, how do you get the software there? One of the mechanisms, we have multiple computers and so I’ll talk about this at high-level for a minute. If you develop a system, and that system has parts of it that can logically run on the cloud (parts of it on premise, parts of it on edge computers), wouldn’t it be nice if you could design the whole system so it’s cohesive and architected? You put all the user requirements in one physical location. Let’s hypothetically say the cloud. Then afterwards, do something we refer to as partitioning. Partition it and put the appropriate logic on the right system. Much of it may go to the cloud, some of it regional offices, some of it to edge computers. If the system can automate this, that is an abstraction, if you will. It’s an abstraction where you create the software in one place, and then the system is intelligent enough to move the software. In fact, why not have the system be so intelligent that after it moves the software, it may change what runs where, possibly for performance. It notices too much streaming data up to the cloud, and observes itself, and then decides it will change the filtering rules at the edge or even beyond that. Maybe change the algorithms that are run. So why not have intelligent software that could also modify itself – another trend that we believe will happen.
If we talk about cities, I know there was some demonstrations of technologies for smart cities last night in the lab. There is going to be a major need for intelligence in smart cities. For one reason I haven’t heard mentioned recently, which is the growth of smart cities. If you go to New York, the amount of new buildings going up is astronomical. Where I live, in the San Francisco area, San Francisco is nuts with all these new buildings going up. How is the infrastructure going to work? Well, it’s really not. I guarantee you that if we don’t make changes, the infrastructure is going to fall apart. I spoke to a city planner for the city of Los Angeles. She was working with a SI firm. Her comment was, they absolutely have to make traffic move more efficiently. It’s also nonlinear. So if they can get traffic to speed up by 10%, she said, that the actual throughput goes up by 30-40%. So, a real advantage there. And then, there are other things they are looking at. Well, this is all software. This is all complex systems that have to be evolved and built to address these kind of needs.
In terms of analytics, for time I’m not going to spend [too much]. Just quickly say that analytics can occur in the cloud, of course, but also could and should often be at the edge, right near the machinery that it is monitoring, make real-time decisions. And there’s a feedback loop because most of the data scientists and the big data is, of course, in the cloud.
Now I want to talk about people. The next generation digital business applications require effective human-machine collaboration. Now, this came out of Gartner Group, I’ll give them credit for it, but I will tell you when I spoke to them about this two and a half years ago, I got a lot of blank stares. Now, they’re on board with it. And now we’re hearing more and more people – maybe it was that one analyst in Gartner. Gartner is a good organization [laughter] I don’t want to have them on my bad side – In the keynote speech that they gave in Florida just a few weeks ago, they spoke about how human-machine collaboration is one of the next major frontiers. And we believe that. Of all of the reasons why I left my “semi-retirement” and formed VANTIQ was to enable this. And we think this is an area that we are really short-sighted in. And again, talking about abstractions, the way to do it is by creating abstractions way above the system so that the software can be automatically created. And I’ll talk about this in a minute.
“The secret to digital is analog. And – by analog – we mean people.” So Gartner strongly supports this direction at this point in time.
Now, I’m a pilot, and I’ve flown quite a bit. And it made me observe, it kind of led me into where the human interaction is needed. I kind of observed the machinery and myself. You know, planes basically fly themselves 99% of the time. You better be pretty aware when that other 1% happens because you’ve got to react. It depends on the human. You’ve got to react pretty quickly. Now, this may be automated. This is a narrow field. And unlike self-driving vehicles, this whole thing flying could possibly be automated. I agree with that. However, today it is not. And today, the humans need to be involved. And the humans need to be involved at the right time with the right information to make the right decisions, or we would have crashes. And that’s pretty serious.
In most complex business systems, the intuition and experience of humans is required to achieve valuable outcomes. Field service: assigning the best reps, monitoring them, communicating with them, but having the system do a lot of that. In retail, monitoring who is where. So, an existing customer comes in, they’re standing by a rack, they’re about to buy something, they’ve bought the same thing before, notify the sales rep. The sales rep can go up and take advantage of that situation, which obviously you could turn into a sale. Airline operations: I have a diagram a few slides from now that will show how much humans have to be involved in the overall operations of airlines. So, in order to create this collaboration between humans and machines, what we’ve created are a number of abstractions. So, we have an assignment abstraction, for example. Now, I’m talking about our software, but I am doing it as an example. And I do believe other companies are going to do the same types of functions. So if you need a technician to fix a particular device, does he have the experience? Is he nearby?, etc. And then there are many other abstractions that can be built. And hopefully, these abstractions can be specified very easily, visually perhaps, and then the system will automatically generate the code, sometimes thousands of lines of code.
So let’s go through one, quick example. A machine fails, number one. Number two, assign a tech specialist to repair it. [The] tech specialist is automatically assigned, he accepts it, the system makes sure the other specialists aren’t available to do it, and he acknowledges the assignment. He’s tracked, physically, GPS wise until he gets to the particular location. When he arrives at the failed machine, prioritized recommendations are sent using augmented reality. Why not? He’s at the machine. This way, you have less experienced personnel, potentially. Or even, as said in number six, using VR. Say, put on your VR glasses, and simulate fixing this particular component before you even touch the machine.
Now, who’s driving all of this? The system is driving it with the human responding. And the other important thing is, things can change. So, if the system is an IoT system and it’s monitoring the device, the device comes back online for some other reason. Maybe it was a low voltage situation that got fixed. Then the technician is told, “Aha! Stop. Machine just came back online.” or he fixes it. So we have a real-time communication between the human and the system. And as the state changes of either, really, because human state can change too – I just remembered something – then the other system is notified of that change. So it’s a true interaction. I’m saying that because people often think of this as a workflow. It is potentially partially a workflow, but it’s not really a workflow. It’s a true intelligent interaction between people and systems.
Now, I told you I’d share the airline operating example. I won’t go through the details here. I just want to make a couple of points. So, there’s a lot of rules that the system is operated on, actions to be taken. On the left, the event streams are coming in. The major point I want to make is, with all of these systems working together, humans have to be involved [at] multiple different points and multiple different times. This is a very complex system. And as these systems evolve, it has to be thought through: where does a human take control and where does a machine take control?
I want to talk about one other thing about collaboration before I move on. Collaboration can also be very useful when there are security problems. We’re all afraid of security problems. That’s a given today. But if you’re logging information, why not, when certain things happen, tell the people involved at the right time? There are other simple things that can be done with security: two factor authentication at various times walking through a door, a conference room where there’s a high priority meeting going on as an example. When there is anomalous behavior – anomalous behavior is one of the ways that threats are often detected, or can be detected. And when that occurs, maybe it’ll do something really intelligent: break up the network, isolate it. Because now, your manufacturing systems and your plants are tied into those IT systems and everything is working together. When something goes wrong, what are you going to do? Shut everything down? We all know the cost of shutting assembly lines down. Wouldn’t it be better if you can isolate it? May work, may not work. All of these types of interactions for security should involve people. Let people make the decisions. Say, “Here’s the extent of the anomalous behavior.” Maybe, eventually it could be AI driven. But today, at least inform the right people of what’s going on. We’re logging all of these events that we’ve never seen before. Slow down the system or break the system apart.
Another very important factor in this new age of development is what is now typically referred to as low code. I don’t like the words low code, but okay. That’s what’s common. Low code and no downtime are absolute requirements. Once these systems are up and running, they have to run forever. They got to be developed easily. New services need to be included. The modern systems are being developed include loads of microservices. If you’re curious about it, go to the programmable website and it lists, I think about 18,000 microservices. You can get information on almost everything. Yeah, we think about the data and Google Maps and so on. But there’s so much other information from the CDC and all these government sites and other sites that you can include in these next generation applications, and they will be.
In summary – I went through a lot of these slides quick. I want to leave some time for questions – but in summary, complexity is rapidly increasing, simplicity of developing applications is an absolute must. Abstractions, we firmly believe, are the only way to go, so you need to be developing software where the software itself is created automatically. So, as an example, in our system, you could develop an Uber app. I’m sure we all used the Uber app. Now, that, not talking about the databases or the charging systems, but you could develop the whole interactive part just by painting boxes on a screen, and it’s only like 20 different boxes. There’s an assignment box: assign a driver. There’s a ‘track the driver’ box. There’s an exception box if the driver doesn’t get there in time, and so on and so forth. Then, the system takes these visual diagrams and creates tens of thousands of lines of code. Now, that’s an abstraction. An abstraction that offers tremendous productivity benefits and gets us away from some of the challenges that are being faced today as these new systems are being developed. Because we don’t have the expertise.
Many of you are from IT, and I know and I empathize with the problems you have of hiring more people and keeping the people with expertise. So, wouldn’t it be better if you could spend more time in the requirements definition; more time on building the architecture of the system – this is, to some degree, what CASE tools promised 20 years ago but never worked – and then have the system automatically generate the code with you modifying the code on an as-needed basis, because of course things need to be personalized to your systems.
Places. Where is the software going to run? It’s going to run everywhere. We got intelligent systems, and intelligence is going to be everywhere. And let’s face it: that’s a one-way street. We have a little bit of intelligence today, a few rules in that particular device, and it’s going to grow dramatically over the next five or ten years in what its capabilities are. And how do you get the software there and manage it, and how do you treat the whole system as if it’s one system? That concept, I mentioned before, of partitioning, of building the system as if it’s going to run in one place and then distribute it. And of course, things with events. Continuous development systems today, agile development, is the way to go.
And for the last slide, a few things to think about. A little bit of fun here, but a lot of seriousness too. One of the things that we’re finding is instead of augmenting existing systems, reinventing the business processes is often a requirement if these companies are going to stay in business. Fintech is attacking the financial community. Now, you get loans online. You can do wealth management online. But these banks have a huge asset, and the asset is you. They have all your accounts. They have your money today. If they could innovate quickly and change the way that they’re doing business, they’ll have the benefit of staying in business. If not, a lot of them are going to go out of business. A lot of our businesses will go out of business. Safety, fewer people, remote control, oil rigs, mines, constructions – major differences.
But here too: if there is a fire, wouldn’t it be nice if there is a collaboration between the chief firemen and all the devices that are out there and all the people? And by devices, there could be drones for observation, for heat detection, etc., helicopters flying in and you want to make sure these devices don’t get in each other’s way. But you need to have humans in charge to allocate where the resources are going to go overall, and what’s the best way to put out that fire? AI ain’t there yet. And it’s going to be a long time, if ever, AI can replace the directions that a chief fireman can do at the location of a fire. By the way, I hear my home area is burning up which is a little scary. Everyone’s’ got some huge amount of fire of fire going on now. So hopefully we will develop software that will enable them to be a little more efficient.
Health is another one. Think about what types of devices are going to be placed in and around humans. I actually tried this experiment with a group of women once. I said, “If you had the option of embedding a system, a sensor, or a set of sensors inside your baby that could tell you if the baby was having a SIDS attack or if the baby was taken away from where it should be, would you put that kind of device in? Or obviously, tell you if the baby was having other problems. All of them said yes. Now, if that’s the case, what’s going to happen in the future? We are going to have those sensors inside of us, monitoring us, because we’re going to want it. And as adults, if you have certain diseases, you’re going to want it. It’s going to happen. Think of how many devices we’re talking about there. Also, think about the security issues that are going to come into place.
Location, as I mentioned before, it’s a dimension that’s going to become more and more important in all the software being developed.
Time is another major dimension that is going to be added to the software. Dwell time, as an example, when in a retail outlet, people stand by a certain location, the salespeople should be informed about that.
Cybersecurity new thinking: I gave a quick example of that, of networks breaking themselves up automatically or under human control. Systems need to move rapidly because whatever we do today, the rate of change is accelerating. So, we need to do that.
The last two points are interesting. One, discontinuities will occur, and we can’t prepare for them. I would argue smartphones is a discontinuity of how we run our lives. Fracking was a discontinuity, and look what it did to the price of oil and the US economy. E-commerce. So what are the next discontinuities? We can’t predict them. Certainly, I can’t. And so therefore, we need to have systems that can adapt very quickly. Systems that are agile enough that you don’t have to go to that 20,000 lines of Java code and make all kinds of changes. Systems that you work at the high level of abstraction so you could just go in and redefine the system, augmented with new functions, change what you’re doing, especially given the last possibility.
I know we all saw Jurassic Park. And in Jurassic Park release 1, there were some major challenges that occurred, and it was humans who actually came to the rescue there. When there is emergent behavior, unknown behavior, we need to have people involved. Now, I know I ran over a little bit, but I have time for at least a few questions. So, this slide was just food for thought. The challenges are already immense, and they’re going to be much more immense. Okay, questions, anyone.
Questioner: I was wondering what your thoughts were on how the interactions with people will affect the trends of outsourcing and global economy and how this IoT plus people perspective, what your views are on that.
Marty: The question was views on outsourcing and the global economy. I think it’s going to be major. I think that if people can work together in new ways, then you can outsource a lot more. I mean, the outsourcing trend is clear. We outsource lots of functions right now. But if you could have more virtual organizations, that’s going to naturally require people in both organizations to work together a lot closer. And new forms of collaboration beyond email or Slack even, are going to be required. When these particular events occur, notify these people in this organization, as an example. I think globalization is the same type of thing. A lot of the outsourcing will be all around the world. One of the things we’re seeing is, the productivity of the whole world has gone up incredibly and will continue to. Because now we use resources everywhere around the world. We know that. They could be in the Ukraine, in India, and we incorporate them into our “virtual companies” a lot easier. And also, that’s resulting in another thing too. The level of expertise around the world is increasing dramatically. I tried developing in India 20 years ago. It didn’t work so well. [I] did it again for a specific function, works a lot better today. Okay, next question.
Questioner: Hi. You mentioned about auto-generating code based on logic or business functions that you could just put together like visual programming. Is that a concern for efficiency of the code based on the platform you run it on? Is there a loss that you’re looking at? Because you may not take into consideration the hardware platform that runs on or innovations in Silicon that you take with the code you’re being generated.
Marty: The question was, I think, about efficiency of code when you do code generation because you can’t optimize as well. You wouldn’t do that for a PLC. There are environments where generating code at that level doesn’t make sense, although there are technologies to do that. But there are some benefits of generating code that that are very important. One of them is the code is going to be much more reliable because if you’re generating the same thing many, many times, you know what to do. And therefore, the programmers instead of writing [a lot], they write 10% the amount of code. And there’s a bigger risk there than the system which generates code over and over again. In terms of the performance capabilities, one of the things I believe is first generate the whole system, but then find out where your bottlenecks are, measure them (maybe the system could do it itself), and where the bottlenecks are you can spend time and optimize that. A system that only allows for generating code is not an adequate solution and I think that may be part of your point. There are times where you’ve got to go in and modify what it does totally, or do it yourself anyway. So, a combination there I think is the way to go.
Questioner: Do you have any recommendations as far as partitioning functionality to humans or to artificial intelligence, and what really makes sense there?
Marty: Okay, recommendations to partitioning stuff to AI, to humans. My belief is: where AI works, absolutely use it. AI, where it’s effective, it’s much more effective than people for analyzing big data. I mean, we can’t even slowly keep up with it. We can’t keep up with it anyway. And so, when AI makes sense, use AI. When it doesn’t make sense or you don’t have the data analytics, or the data scientists can’t figure out what to do. It’s a very complex situation. Then by default, it is going to be given to the humans. The whole problem has to be thought through. I don’t know if there’s one, simple answer to that. I think that at a first cut, designing a system, if there is an AI solution to it, analyze it. If it’s effective, use that solution. That’s a clear trend and a key benefit. Where there are unknowns, then get humans involved. Where unexpected things happen in real time systems, that’s when you need to have humans involved.