 Start off with I'm going to be a little bit of a Jeremiah. There's a disaster coming The end of the world is near how near I don't know exactly But I do believe that there are a number of trends that spell some fairly significant changes In the future in our profession and in the way that we do things some of these things come from Forces within the industry right now we spend Over a trillion dollars a year on IT products and at least 40% of that is absolute total waste It just it's not resulting any deliverable product Delivers in products that are late bloated over underutilized and a huge cost I Have no problem Overestimating the ability of corporate America at least to put up with these intolerable costs For for some time in the future, but sooner or later. They're going to say this is economically untenable Particularly as the world's economy Becomes more and more suspect Related to that is that there is somewhere between three and five trillion lines of code out there in the world today That's a lot of code It is approaching the point where nobody has any clue what it is where it is what it's doing why it's doing it how to fix it It's just getting immense so the the code base itself is becoming untenable the pace of change that's faced by Enterprises by people that are in business has been accelerating dramatically over the last 50 years The pace of change in our ability to respond with IT services and products Hasn't even come close to matching that same pace of change When I started in this profession in 1968 the average time for a project To Taking all the corporate projects put together the average time of delivery of project was just under three years The shortest delivery time was measured in in a year longest in five or six years One of the largest companies in the United States in fact the largest privately held company in the United States a year ago initiated a 10-year one billion dollar project for their IT systems the discrepancy in these kinds of things Leads to a great deal of inertia So if you are a young Agile entrepreneurial kind of a business or you want or a big business And you want to be young and entrepreneurial and fast-paced and adaptive to the current circumstances You don't have a prayer Because your IT systems are going to slow you down and force you to do business The way that you were doing business at the time that those IT systems were first conceived and initiated So the Cargill corporation Shouldn't mention their name The American corporation that started this 10-year project They are basically freezing The way that they are doing business for the 10 years that they are in develop doing business for the 10 years That they are in development of this product that you know that no one's going to be allowed to come in with change requirements They get through they're spending a billion dollars on this software project And how long is it going to be before a manager says oh, yeah, we have the budget for a change You know you just spent a billion dollars. How are you going to get any change? So that company is basically locking itself into its current state of operations for 20 years That's that is untenable the other one is the Treatment of human beings not as resources as things that have value the things that contribute value to the Betreating them as simply as commodities the philosophy of computer science the Philosophy of software engineering right from the beginning said we have a huge crisis We have a huge demand and we do not have enough talented people to satisfy that demand We don't know how to create talented people So what we're going to do is we're going to Commoditize people we're going to reduce them to their lowest common denominator and then compensate for that inability with method with process with things of this sort and The increasing effects of these kinds of things Ultimately is supposed to lead to an automatic programming where all of you are replaced by the computer Because you don't add anything. I don't like being treated as a commodity At the same time these forces are creating this huge precipice The world around us or our understanding of the world around us is changing very dramatically. It's no longer the Deterministic systems of 18th and early 19th century physics It's no longer the world of Mach and Einstein where they said if you can tell me every The position of every particle in the universe today I can tell you exactly what the universe is going to look like 20 years in now because it's all subject to rules Regulations the problems are changing. We're dealing with complex problems Complex problems have these kinds of characteristics to them. First of all, they're decentralized If you look at the way that we have been treating problems and problem-solving for the last 50 years All we have been doing is Reinventing the mainframe of 1950 if you look at the iPhone in your pocket. It's a mainframe We have added one embellishment. We've done client server So that the iPhone in your pocket is connected to a server somewhere, but client server is also 1950s architecture And we haven't advanced beyond that We can no longer afford to have these massive centralized server kinds of farms right now They're they're a real ecological threat Google should if it was a really ethical company Situate every single one of its server farms exactly next door to some high-big hydroelectric dam or an atomic-generating plant Because 90% of the electricity used to run that is lost in transmission and they consume a lot of it We need to think about these decentralized kinds of problems It also has to do with the fact that there's no authority. There's no command and control kind of structure You've got to figure out a way of distributing And understanding how this command and control is distributed Continuous evolution and deployment is a big one We are still locked into an episodic way of doing business We talk about agility, but we talk about agile projects So you are still trying to be agile within these big blocks of time these 18 months to three year period of time and you're trying to deal with A large project you need to be in the position to being able to deliver something that alters The business or the way that the business does things on the exact same time scale that they encounter the need We can't do that yet The erosion of the people system boundary this is Has some historical interest Who are the first computers? What was the first computer the first thing that carried that notation If I said you are a computer Yes, I was talking about a bunch of women in England In Benchley Park that we're doing calculations and ballistics. They were the first computers were people We're getting back into that that we can we can no longer imagine that we're going to put all of your Intelligence all of your experience all of your knowledge into a machine somewhere So that it can make decisions We're going to have to figure out how to accommodate that interface that part of the knowledge that's going on in the software is in your head I and then normal failures is a real big one right now today Somewhere in the world around 10% of the internet is dead Totally dysfunctional, but the internet runs just fine. It was on just a minute ago This Situation of normal failures as opposed to the perfection that was the goal of software engineering computer science is a big deal So how do we address all of these kinds of brats? computer science can't do it Computer science is still stuck in physics envy. They're still trying to be a science in the classical physics sense of the term We can't fix it computer computer science also has this kind of hubris that everything is a computer I Have seen people talk about there's a famous piece of freeway in New Mexico where I live and They were talking about being able to power a car with ones and zeros Because information is energy energy is information the universe is a bunch of ones and zeros That's the kind of research direction people are going in and it's not necessarily that The biggest thing is that as soon as you have a science or an engineering discipline you are exclusionary You are locking out huge amounts of the data huge amounts of reality They don't for with your science and so you just point ignore it or say that it doesn't exist Engineering can't do it We had we talked about genetic engineering and biological engineering and in a real crude way We do anytime you use horticulture to breed plants or to breed animals With animal husbandry. You're doing a kind of engineering But we could not sit down today and write the engineering specs to build a cell We certainly couldn't do it for an ecology or an ecosystem It's just beyond the capabilities of engineering Craft and agility are not enough either Craft and agility gets us better and better at being this little man balancing up on top of the cliff We can do cleverer tricks We can dance closer to the edge we can Do all kinds of interesting things, but it does nothing at all about what might happen when we fall off that cliff You need to have a different kind of a mindset Mindset begins with admitting failure Most of what we do has been driven by this notion From Herb Simon the sciences of the artificial Instead we want to Change to a different mindset by analogy Computer science software engineering is focused on being better capable of building androids like data Building artificial things that become indistinguishable from the real thing a Company like SAP is determined to build a piece of software which is in a very literal sense The business so that all you have to do is tweak the SAP software and you have a new kind of a business This this focus on the science of the artificial So instead of creating these kinds of mirror worlds trying to replicate reality inside of a machine or a machine equivalent of it Let's just admit or recognize that our real job is to go out and change the world Instead of figuring out how to build androids, which is probably a fool's game Let's figure out a way to come in and replace a heart muscle or Neuron in the brain or something small in the natural system so that the natural system is enhancing Continue on the way that it's going Embrace the alternative I've chosen this name ours magna and that diagram because the founder of computational science The thing that preceded everything That we know of today as computer science Wrote a book called ours magna and this is a diagram from this book Which was the very first computing device not calculating device, but the very first computing device Anybody know who it was Leibniz is famous for being the inventor of computational science, but he was basing his work on this man's work His name was Ramon Law and he was a Catholic mystic that lived on the island of Mallorca off Spain So we rethink our profession a little bit We say that we are no longer in the business of building artifacts big clever pieces of software big clever pieces of computational capability No longer in the business of building androids instead. We are constructing reality We are literally changing the world around us. Well, let's do it directly and let's take it seriously Peter Denning who has written extensively in software engineering is a contributing editor to the Association computing machinery very well known in the profession said that we should not think of ourselves or we should not Approach this as a profession, but as a calling with the same exit deliberate analogy to the calling that a priest has to become a Servant in a religion or in a spiritual kind of a tradition. This is a lifelong commitment. This is carries with it huge obligations in terms of morality and in terms of Responsibility for what it is that you are doing So we already know that we're changing the world We already know that most of the people who have to live in that world that we have created for them don't like it very much People are very unhappy with what it is that we are delivering to them. So instead of Doing this the way that we have been let's do it by design So let's think about what it is that we are going to design We're designing the world. Well, the world is a system Luckily a system is relatively simple to describe and to define a system is just a set of components Relationships among them An element of course may be a system because there is only one system and that's the universe everything else is a subsystem Which has been arbitrarily carved out and defined So any given element inside of a system at this level might be a system at a nested level But still this set of components and the relationships among them is Consistent across that line So world design then just becomes nothing more nothing less then deliberately and from an informed perspective changing an element or changing a relationship in the system at The change might be an addition or a deletion or it might be a modification But that's the only thing that we are Deliberating about that's the only thing that we're making decisions about So then the question becomes how do we deliberate and how do how are we how do we become informed? About what that is going on The other corollary this and this is could have been one of the major contributions of agility. I Agility gave up on Supposedly big projects our work is supposed to be focused around a story at a time one thing that is going to make Something better Well, we'll have a story about an element or a component of the system and one story is going to be our unit of work Not an 18 month project To be informed we need to know a lot about systems Which means we need to go back and revisit something that was introduced into computer science In the 60s at least by Jerry Weinberg. We need to understand the What general systems theorists understand about systems about how you define a relationship how you What kinds of relationship patterns exist inside of the system the fact that changes in one part of a system Percolate throughout the system because everything is connected to everything else ultimately directly or indirectly We need to understand what is the function in the nature of an element that we are changing So if we're looking at an enterprise for instance, we really need to understand what an account is in the context of that enterprise We talk about this with behavior-driven design the idea is that you go out and you look at the behavior in the real world And then you try to use that as the metaphor that drives what you do in the software Just need to elaborate and expand on that kind of notion As we understand and start to figure out The natural system around us we can on occasion or will on occasion figure out that This particular element or this particular relationship would be enhanced or The operation of the system would be enhanced if that particular thing was automated and Therefore that requires a computer program to do that Once you have made that determination then a lot of what you know about computer science software engineering agility Testing all of these kinds of things come into play, but it's all going to be focused on this very small little component So we have a new discipline Which is reality construction? We have a new title for all of you. You're now going to be reality architects. You're going to go out and change the world Deliberately you're already changing it You might have some new specializations like a composite systems analyst This would be a combination of a cultural anthropologist a business analyst a systems analyst in the way that was originally defined But somebody that actually knows how to go out there and look at this complex reality and say aha I know how this works or at least I know how to start figuring out how it works the systems designer of These things are going to overlap a lot obviously But if you have a really solid understanding of the system Then you're in a position to say well gee if I replace this it will have these kinds of effects or probably have these kinds of effects The system that we're dealing with is not deterministic. So we can't be sure what kinds of effects we can't Determine that the introduction of this software artifact in fact is going to change all of the relationships in the culture In which it was introduced and destroyed the culture. It's a potential risk Systems tinkerer We're no longer going to have maintenance programmers We're going to have people that are sitting here just tinkering with the system to see what you know what the effects might be or to be able to fix it This was a term that came up in a number of earlier conferences Early agile conferences talking about how the software today is so complex that we can't really Play with it or tinker with it or modify it and they made the analogy to automobiles That an automobile comes off the assembly line in Detroit And you used to be able to go in and you know replace the carburetor with some other kind of thing to enhance performance Of the automobile or you used to be able to hang fuzzy dice from the windshield to make it look cool You were able to do all kinds of things to modify them and you could be a layperson You did not have to be an automotive engineer to do those kinds of things Today even automobiles you can't do that You can't go in and update the software that drives your fuel injection system or your automatic braking system nobody Has the capability in their garage to do those kinds of things. We've never had very much with software So this is going to be a person that can do these kinds of things To support all of this we need a new way of thinking about what knowledge base we need to have Which means some kind of a new Educational system new discipline and this is where the bad news. This is where I'm going to make you unhappy if I haven't already The only kind of person that's going to be qualified to take any of these kinds of jobs Is going to be the equivalent of a modern polymath? We are architects of reality This is what the truvius Who is considered to be the father of architecture building architecture? Said that an architect needed to know before they would be allowed to practice that profession So before you can go out and mess with everybody else's world You're going to need an equivalent of this kind of breadth of knowledge When the truvius wrote this it was a pretty good definition of being a polymath knowing everything that there is to now Today you're not going to be literally a polymath There's too much to know But this kind of breadth is going to be a prerequisite So this morning Vencott asked you how many of you he didn't ask you He was going to ask you where he wanted to ask you how many of you have read a book this week or You know recently I Won't be shy. How many of you have read a book this week one? Yeah Okay, how many of those were nonfiction? How many of you read a really good fiction book this week and a nonfiction book? The only way you're going to get this kind of breath of course is by expanding the amount of reading that you're doing And I mentioned fiction books because Alan Kay As I've quoted before said if you can't read for pleasure, you can't read for purpose So if you have not had a number of fiction books in your repertoire over the last year You probably misread that manual that technical book that you read how would such a Education be delivered or how would it come into existence? Where would we go to become these kinds of modern polymaths? We would follow the example of One of the later polymaths after Vitruvius Leonardo da Vinci. Where did he get his education? He got it in a Bottega a studio in Florence, Italy where he was an apprentice Where he went in knowing nothing Probably swept floors for the first couple of months that he was there But he was in an environment that was very rich With all kinds of things going on all kinds of activities There were multiple disciplines going on in that same room They were doing things for paying customers This is a critical part of apprenticeship if you're not delivering for the real world if you're not delivering a Sustainable product. You're not really learning very much about what it is that you are doing So it's a storefront. It's a workshop that is engaged in craft, but it's also engaged in Reinventing and expanding our understanding of that crap You can't Understand what it is that you're doing you don't really understand what it is you're doing until you can build a tool to enhance your understanding and to Deliver your understanding of what it is that you are doing a lot of projects very noisy The another important thing is that it's filled with exemplars of what you were doing so then caught one of the other things that he said this morning was how many of you have been reading code lately visit it is considered to be such a hive of intellectual activity and Emergence of new ideas that if you were visiting that area you could not conceive of not dropping in for a day or two As a way of enhancing your ability to do things So I just quit After way too long being a professor at a university in the United States One of the reasons was is that although they promise these kinds of Intellectual communities and so on they never deliver on them The education that you get in a typical university. He is so sparse so poor That it is it has a tendency be what somewhat ineffective So the apprenticeship boot camp things that Dave Hoover was talking about earlier today if you had a chance to Visit that that's much more of an approximation to this kind of an ideal as Then any university questions comments brick bats No rotten tomatoes, please Yes Yes, so Mary Poppendick was talking a little bit about this kind of thing earlier when she said, you know Don't give up on any company that was found before 1990 You are seeing these kinds of trends people are starting to recognize this fact They are starting to recognize The need for diversity and diverse ideas coming in But they are still not where they should be there is There are probably a dozen roles that are never represented in any software shop even at Google Google does not have as far as I know a cultural anthropologist that works with the software development teams neither does Apple They might oh, yes. Yeah, so I was in London before I came here And I was talking with a number of people who have internal Apprenticeship programs there are people here that have apprenticeship programs in the companies that they work for and We looked at the curricula of those kinds of programs and what they were doing and how they were doing and it was really cool But they education has two functions One is to replicate Your parents You know to create people who were capable of coming out of school and fitting into and working in the society the other part of Education supposed to be is to give you the ability to think and expand human knowledge The apprenticeship programs even these in-house ones. They are step in the right direction, but they're still focused on replication of their existing workforce Rather than anything that's disruptive And the economics are such that you don't really want that kind of a thing Even when you're faced with an example, so one of these companies in London They were telling me about how they had hired a physicist knew nothing about writing code, but he knew he was a PhD in physics and he solved some really difficult problem for them and He was one they were proud of him because he was one of the graduates of their internal apprenticeship program So see how much he learned and he came in and he did this so my question to them was but ah, but did he then teach a class and Physics to everybody else so that they could have similar kinds of insights or in the future and the answer, of course, was now And that's what's missing from our first steps We're early yet. I Know in this process of restructuring and rethinking what we are So you have to give some latitude and leeway, but yes other questions. That's difficult to answer without being self-serving So in the next month or six weeks or so, there'll be a website out there for transcendence corporation And its mission is to do exactly this to create the kind of immersive embedded Expansionist notion to create people who are these kinds of modern polymaths the Business model is always tricky of course in these kinds of things I People the people that could most value from this are already working, you know 40 hours a week So when you sit down and do something like David Hoover does with his Beginners and say well come and live with me for 40 80 hours a week For this period short period of time It is a short period of time and then you can go out and take your day job Most people don't have that luxury so but the but you can also do it by just Thinking what it is that you might need to know in the source of inspiration you can even look within Things that the community has already done. So there's a huge amount of work and security for instances based upon biology metaphors That that would be the single biggest thing is you know look at all the metaphors that are out there Look at which one seemed to be working and helping us and then look more into those disciplines because there's probably more there We'll be talking about patterns a guru plop at the end of this conference That is a metaphor derived from an architect Patterns are yes, so the first person to think about and develop patterns was an architect not a software person We're talking about software pattern. Well, not totally about software patterns But the whole idea notion of a pattern came from an architect an architect with a vision of discovering What was the fundamental essence of beauty and liveness in the world so Expand your horizons read lots of fiction and then when you see something cool in the fiction go and look at the science behind it and Then figure out how it relates to what it is that you're doing in your day job Is it narrow in the context of the world in which that code is going to be used or is it narrow in the sense of? the machine simulation So so you know in what sense is it narrow so an example of This in the United States Medical information everything that is known about you your health issues everything else is stored in the database and belongs to a drug company somewhere You know because they're the ones that paid for it and paid for the system and things of this sort so if you designed you know even a very Concise well-defined application that's going to make it easier in theory for you to get better medical care the fact that you're giving it to them is Makes it not beneficial to everybody it ends up making it beneficial to the people who have Control who therefore can derive the money from it here in Bangalore. There's a company called patient snow bests Which is also a medical information system, but the information belongs to you and You have control over the information and you decide who you're going to share it with or not share it with so That would be a solution that is designed that has much more potential to benefit everybody than the former So you can look at things of that sort and you can question the ethics of them. Oh, yeah so let me generalize that question and put it back on you that Three to five trillion lines of code out there how much of it is necessary How much of it is overhead that was imposed because you were using frameworks and middleware and libraries and Whatever Yeah, there are some other things yet So Alan Kay at VPR research has a project called the Omeda product and all that meta is the language But Omeda is the language that they are using their goal is to reduce by 90 percent the lines of code in the world So they are able to take things like the TCP IP stack, which is several tens of thousands of lines of code and Replicate it in a thousand lines of Omeda so they got rid of huge amounts of code if you go all the way back to the 80s and To the small talk programming language Small talk ran on everybody's computer, which meant it used everybody's operating system But it didn't need one You could run small talk directly on bare hardware and in fact they there was one one exemplar Somebody put small talk on a wristwatch So you had a full multimedia development and delivery platform on a wristwatch and it worked So the idea that we can do these you know this kind of simplification Is there too Alan Kay also the original idea of an object is that every object would have its own IP address So you'd only create an object once It could be mobile It's IP address where it was created would be its its object ID So you have a universal namespace But then its current location would be tracked by a set of white pages I eat the the the internet with your web page and the DNS system to help you find the web page Only now it's down at the level of software Design is the key the way that you approach and think about things is the key If you do not explore Laterally into new areas and find new metaphors and new ways of thinking about what it is that you're going to do You have very little choice, but to just continue replicating All these massive amounts of code and complexity Yeah, and then reinventing them from time to time So you need the new you need different fields of exposure different different kinds of ideas You need to be that kind of modern polymath last question Um Given where we are and so on I would start with Christopher Alexander's not a pattern language but the timeless way of building Nature of order is pretty dense But if you want to pursue those ideas Jane quillian over here has a book called delights muse Which she describes as the cliff notes of nature of order, which is a four-volume set I would go and read john brunner's shockwave writer published in the 1970s. I would Probably read Alfred Krozybski's the science of Science and sanity I'd read the design book that rebecca and I are writing I'd read the arse magna book that I'm publishing later this year And I'm sure that many people here have suggestions I saw one or two nodding heads at the ones that I suggested so I suspect all of you collectively have a good idea Von Bertel Wonfe's general systems theory Okay. Thank you very much