Wednesday, December 21, 2016
I had the privilege last month to give a keynote lecture on “Big Data, Behavioral Change and IOT Architecture” at the Euro-CASE Annal conference on “Big Bata – Smarter Products, Better Society”. You may download the slides here. My lecture was divided into three parts: the first was about our NTAF report on big data, the second focused on behavioral change and the last part presented some of my views about IOT architecture. I have already covered the first part and the last part in previous blogposts, so today I will talk about behavioral change.
There is an obvious link between Big Data, Internet of Things and Behavioral Change. Many of the “smarter products” leverage IoT technologies and big data to help us change our behavior. This is true for wearables that are intended to help us take better care of our health and well-being, but is this also true for many products for your car or your home. The IoT technology is used to capture data through sensors and provide feedbacks through screens, speakers, motors, actuators, etc. Big Data methods are applied to extract value from the captured data so that the overall feedback experience is “smart” – hence the “smart product” subtitle for this conference. However, it turns out that changing behavior is hard, and this is not a matter of technology, it is a matter of psychology. There is a fair amount of science that may be leveraged, but there is no silver bullet: designing digital objects or experiences that help you change your behavior is a difficult project. I am not a behavioral scientist nor a psychology expert, thus this post is a short introduction to the topic. I am just trying to make a few cautionary points and to open a few doors.
This post will follow the same outline that I used during the conference. The next section (Section 2) sets the landscape of behavioral change with respect to “smarter products” and IoT. The goal is to move the focus in IoT from data to user-centric design - which was my conclusion at the end of the lecture. Behavioral change requires times, stories and emotional design. Section 3 is a short summary of a NATF working group that worked for a year on understanding how people react to the exponential rate of change for ICT (information and communication technologies). The key takeaway is that there is no fear of ICT, but there exists adaptive stress. That stress may be relieved if we design digital experiences as learning experiments – quoting from Mary Helen Immordino-Yang, “the goals and the motivations of the digital environment should be readily apparent”. Section 4 draws on a few well-renown scientists and sources to see how fun and learning may be embedded into digital experiences. The last section applies this to smart objects whose ambition is to coach you to change your behaviors towards a better or healthier lifestyle. The need to weave emotions, fun, self-learning and reflective-story-telling yields to systemic serious games. Behavioral change requires a systemic posture, because of the importance of feedback loops, adaptive planning, and chronology. It also requires to design “smarter products” as games with a focus on user emotions, story-telling and pleasure.
When experiencing with a connected wearable or device, most users do not want a dashboard, they want a story. I have already covered this in a previous post, to go further I suggest that you read “Inside Wearables - How the Science of Human Behavior Change Offers the Secret to Long-Term Engagement”. Owners of connected devices become bored quickly of their data dashboards, once the excitement of the first days has faded away. The story of wearables that are offered for Christmas and forgotten a few months later is a perfect illustration. Self-tracking is a good and healthy habit – recommended by psychologists in many situations – but self-tracking without sense does not work because everyone is not a data scientist. This is wider than the field of health improvement and connected wearables: similar observations have been made about smart home connected devices. Remote control and monitoring through your smartphone is not enough value for the connected gadgets that we bring home – often as gifts.
As expressed in the previous post, connected devices must come with a story and a coach. If we look at the numerous behavioral change models, you need a good story to start you moving, and you need a coach to keep going. There are many references about the fact that we are moved, and hence remember better, by stories and not data sets, but I am partial to Nassim Taleb’s wonderful books. I strongly encourage you to read “Fooled by Randomness”. The importance of stories is deeply connected with the importance of emotions in learning which I will evoke later. Stories trigger emotions that acts as anchors in our learning process. One of the dominant behavior change mode is the TransTheoretical Model (TTM). Where stories are critical in the precontemplation/contemplation phases, the role of the coach is critical in the action/maintenance phases. The coach cannot be reduced to a feedback loop – otherwise dashboards would work. The coach must bring sense to the results that are collected by the connected device. Behavior change is hard; hence the coach role is difficult. The coach need to provide the proper information at the right time, together with the right emotion, to keep the “why” (motivation) alive while taking care of the “how” (engagement). We will return to how the science of “nudging” (i.e., designing the choice architecture) may help to nurture the user engagement.
Behavior change must be approached as a user-centric design challenge. The role of biorhythms and chronology is very important. For instance, attention span has a complex structure with specific rhythms. Transient attention is very short (less than 10s) – this is how magicians and conjurers operate – while focused attention is on the order of less than 10 minutes. The “coaching content” needs to be delivered at the right moment, for the right duration and in the right “state of mind” from an emotional standpoint. A lot is known about demotivation and habit-formation cycles, but this is not a hard science, there is not much data available and many controversies. Still, it looks like we need two months on average (66 days) to create a new habit, with a “danger zone” of three weeks after the start (21 day) when motivation is at its lowest. This is consistent with a rule of thumb of elementary teachers that says that a new concept must be explained once, then repeated one day later and three weeks later.
Faced with the behavior change challenges, we need as much help as possible from social sciences, psychology, and neuro-sciences. Neuro-sciences have become very relevant in the last decade because we have learned a lot about the way the brain works and learns. Since the best-seller from Antonio Damasio, “Descartes’ Error”, we know that emotions play a critical role in our thinking and learning. I am quoting once again from the great book “Emotions, Learning and the Brain” by Mary Helen Immodino-Yang: “It is literally neurobiologically impossible to build memories, engage complex thoughts, or make meaningful decisions without emotion”. She explains very clearly that “Emotional Learning Shapes Future Behavior”: “ The learner’s emotional reaction to the outcome of his efforts consciously or nonconsciously shapes his future behavior, inciting him either to behave in the same way the next time or to be wary of situations that are similar”. The last chapter of the book is entitled “Perspective from Social and Affective Neuroscience on the Design of Digital Learning Experience”. It is very relevant and a great reading for anyone trying to help user change their behavior through connected devices and digital experiences. Here is a last quote from this chapter: “Here we turn the tables and suggest that many people may interact with their digital tools as if they were social partners, even when no other humans are involved. Thinking of digital learning as happening through dynamic, supported social interactions between learners and computers changes the way we design and use digital technologies for learning—and could help shed light on why we become so attached to our devices”
In 2015 the NAFT ICT commission has undergone a series of interviews related to the effects of ICT usage. We interviewed leading sociologists or psychologists, such as Francis Jauréguiberry, Dominique Cardon or Serge Tisseron, to better understand how digital experiences were accepted and appreciated by the average person. We wanted to better understand the tension, one could even say the paradox, between an ever-growing usage of smartphone, internet, and new digital services, while at the same times there exist clear and growing “distrust signals”. We started our discussions about “fears”: fear that digital communication was cutting people from “real communication”, fear that Google was making us stupid, etc. The conclusion from the majority of the interviews is that ICT adoption is indeed fast and widespread, and actually well received by the vast majority of users. Digital usage adds to, but does not replace real life, and most people value “real life contacts” over digital ones. This is a complex topic that would deserve a separate post. Here I will just point out some of the conclusions or recommendations because they are clearly related to learning and behavior change.
The main common idea from our experts is that the worries that are being expressed about ITC usage are the symptoms of “adaption stress”. The rate of technology change is faster than the usage rate of change, which is itself much faster than the rate at which we understand these technology changes. We live in, and we welcome for most of us, a “world of accelerated permanent change”, where our products and services are constantly “upgraded” (we hate these “updates” because we do not understand them, they usually come when we do not expect them and they are forced on us). The main worry that is a consequence of this adaptation stress is the fear of not being in charge, the lack of mastery, especially from a time management perspective. Users who are interviewed by sociologists complain that are no longer in charge of their own time any more. They see ICT usage as taking too much of their free time, with a great difficulty to reclaim control (e.g, the fear of missing out). The “digital detox” approach is a classical counter-reaction to this feeling.
The main recommendation from this workgroup is, quite logically, to spend more effort in training and explanations related to the new digital products and services. The best way to reduce the stress of “losing control” is to give back the sense of “being in charge” with practical training. For instance, “digital life hygiene”, that is the practice of digital usage control, with both temporal and spatial zones of “digital detox” deserves to be taught. Digital training works best when it is both practical (in the “learn by doing” philosophy) and rooted in the real world, using devices, real life environment and situations to embed the conceptual learning into a kinetics experience (in the tradition of Maria Montessori). This idea of “inviting the real world back into the virtual one” came in many forms. A great piece of advice for teenagers and adult alike is to read aloud a message that is about to be sent electronically (SMS, chat, email, …) if complaining is involved. Neuroscience shows that reading aloud forces the facial muscle to express emotion, which are then carried to our “mirror neurons” so that we instantly feel what the effect on the other person may be (and then possibly adjust our message). Another set of recommendations about how to build better accepted digital experience were related to emotions: how to adapt the experience to user emotions (emotional design) but also how to leverage emotions as a training tool.
We all know that users don’t read “user manual” or documentation anymore. The challenge to alleviate the “adaptation stress” is to deliver digital experiences where learning and training is part of the customer journey. This is especially true for connected devices and quantified self digital experiences, as presented in Section 2. “Digital” means that data analytics is a given: we can analyze user journeys at each step of user experiences and measure both discovery and appropriation. From this, an appropriation maturity model may be build, which can be used as a guideline for “embedded connected tutorial”. The use of IOT and connected devices gives the additional advantage of the continuous feedback loop. Still, if training is conceived as an additional “online tutorial experience”, it most often fails to deliver the engagement that is needed for behavior change. The real challenge is to design the complete digital experience as a learning journey.
Pleasure plays a key role in learning. The diagram shown to the right is borrowed from a biology conference about learning in a complex systems conference that I attended a few years ago. All living being, from very simple organisms to humans, build their behavior from this simple cycle (among other things). This is well recognized in design. I borrow this great quote from “The A-B-C of Behaviour” : “Fun is the mean by which we retrain our brain to learn new patterns of behavior”. Fun and pleasure are introduced into a digital experience through many means, from rewards to surprise. Rewards systems are heavily used in coaching or behavior change products. Surprise is a powerful emotion to trigger fun and to facilitate learning. I refer you to Michio Kaku’s explanation about the evolutionary role of emotions in his book “The Future of Mind”, which I have already mentioned in a previous post. He sees human as hard-wired to like surprises because they help to constantly tune our planning system, which is an evolutionary advantage. Intelligent beings plan and predict about their environment; a surprise occurs when what happens (a joke, a conjurer’s trick) is not what you were expecting. Because evolution has developed this pleasure from surprises, we are wired to explore and to learn. Helen Immodino-Yang express a similar idea: “In this sense, emotions are skills—organized patterns of thoughts and behaviors that we actively construct in the moment and across our life spans to adaptively accommodate to various kinds of circumstances, including academic demands”.
Learning is also a social activity, which means we should leverage the power of communities when designing behavior change experiences. This is also well-known in the design and digital world. Seth Godin has taught us to build viral experiences, where sharing is not an after-thought that is added to increase the spread of the product, but something that is at the core of the experience: “Virality is the product”. Experimental psychology and neurosciences show that we learn by imitation. The best way to build a tutorial is to show a video of someone else doing the very thing that needs to be learned (a great insight from the workgroup mentioned in the previous section). Dan Ariely, in his best-seller “Predictably Irrational – The Hidden Forces that Shape Our Decisions”, explains the importance of social norms. In many instances, social norms are much more powerful than money to motivate people. More generally, what behavioral sociology tells us about cognitive biases is very relevant to design engaging learning experiments towards behavior change. For instance, Dan Ariely talks about the planning fallacy, the fact that we consistently underestimate the time it will take us to complete a task. Here a digital feedback loop may prove a useful help. Another fascinating example is the “high price of ownership”: “Ownership pervades our lives and, in a strange way, shapes many of the things we do”. Once we think that we own a thing, an idea, a goal … we overvalue what it represents. This is why the “emotion of ownership” is proposed as a goal by Don Norman, which is very relevant for digital experience and why customization is such an important feature (make it your own). On the opposite side, each choice is painful because of the effort that we make for any decision. Procrastination should never come as a surprise, and choice architectures should factor in the “consequences of non-decision”.
The best way to develop a learning experience that is woven into the overall experience is to “nudge” users towards behavior change. I am referring here to the “choice architecture” concepts popularized by R. Thaler and C. Sunstein’s best-seller : “Nudge – Improving Decisions About Health, Weath, and Happiness”. This books shows very interesting of designing choices frameworks that take our cognitives biases ( anchoring, over-valuing the present versus the future, availability biais : over-valuing what we have in front of us or at the top of our mind) into account. For instance, helping people to save more is a great behavioral change challenge. The “Save More Tomorrow” program showed how to use behavioral economics to increase employee savings. The section about “social nudges” is a source of inspiration for introducing priming into digital experiences. Experimental psychology as a lot to tell us about how to nudge and motivate. For instance, to return to the reward topic, science shows that it is better to break down into many small rewards than giving a larger one less frequently. This is why the practice of small rewards such as “badges” is so common in the digital world (combining two insights about social and frequency). The concept of “nudge” and choice architecture is also very relevant to designing “progressive onboarding”, that is precisely the embedded incremental learning experience built into a digital product. To deliver the proper nudge, the experience designer must build a “usage and learning maturity model”, which is used to transform digital analytics (cf. Section 3) into an estimate about how much was learned already. From this the user may be “nudged” with the proper “tool tips” (a tool tip is a tiny piece of information that is presented at the right time, according to the usage context).
There exists a wealth of insights that behavioral change can borrow from experimental psychology. In addition to Ariely and Thaler, it is logical to mention Daniel Kahneman and his wonderful book “Thinking, Fast and Slow” (which I have commented in a previous blog post). This book contains wonderful examples related to “the marvels of priming”. For instance, hearing about other people changes your own ability : “This remarkable priming phenomenon – the influencing of an action by the idea – is known as the ideomotor effect. … The ideomotor link also works in reverse…. Reciprocal priming tend to produce a coherent reaction: if you were primed to think of old age, you would tend to act old, and acting old would reinforce the thought of old age”. Kahneman also illustrate our aversion to loss, which is closely related to the emotion of ownership : “We should not be surprised: losses evoke stronger negative feelings than costs. Choices are nor reality-bound because System 1 is not reality-bound”. He explains a number of “fallacies” (in the sense of the “narrative fallacy” of Taleb), such as the availability biais (WYSIATI : What you see is all there is). The insights of “the law of small numbers” is very relevant to dashboard and tracking: humans are not good at analyzing small data sets, we tend to see stories and correlations everywhere. This is even true for professional statisticians: “ It was evident that the experts paid insufficient attention to sample size”. The list of biases from System 1 (our fast thinking process, cf. “Blink” from Malcom Gladwell) is summarized on page 105; this list is quite useful to improve the design of behavior change experiences. The combination of framing (using the power of words and emotion to build the choice architecture) and understanding decision weights (we overvalue low probability events – the table page 315 is an eye-opener) can be leveraged to “nudge” more efficiently.
If we assemble everything together - the need for incremental learning, the necessity of pleasure, the pleasure of learning – the best digital experience that we may propose for behavior change is to propose a “game to learn about yourself”. Technology is definitely available to help : IoT sensors may monitor the user and her environment, digital tools and user interfaces may be used to tell a story and data science may be used to generate insights that feed self-discovery, learning and surprise (i.e., learning something new). Data Science is very relevant to develop such “serious games”. Machine learning algorithms are known to provide predictive, prescriptive and cognitive knowledge from data. Predictive analysis is very useful for the playful nature of the game. It is what makes a behavior change digital experience dynamic and interactive. Even if the prediction is not always accurate, it creates a surprise element and contribute to making the experience fun. Prescriptive analytics is about providing insights. This is a heavily debated topic because as we all know, correlation is not causation. Still, experience shows that powerful insights may be drawn from data collected with multiple sources of IoT sensors. Last cognitive analytics is about helping the user learn about herself. To build such a self-learning experience and to understand the related challenges of behavior change motivation, the book from Samantha Kleinberg, “Why – A Guide to finding and using causes”, is a great source of insights. The book is full of warnings, which are closely related to the biases evoked in the previous section, such as the following: “many cognitive biases lead to us seeing correlations where none exist because we often seek information that confirms our beliefs”; ”It’s important to remember that, in addition to mathematical reasons why we may find a false correlation, humans also find false patterns when observing data” and “Most critically for this book, the approach of interviewing only the winners to learn their secrets tells us nothing about all the people who did the exact same things and didn’t succeed”. This last quote is interesting because it emphasizes the limit of statistics and samples, in contrast with the power of personalized medicine and coaching. Samantha Kleinberg’s book is also very positive because it shows that understanding the “why” is critical for self-motivation in behavior change: “Will drinking coffee help you live longer ? Who gave you the flu ? What makes a stock’s price increase? Whether your’re making dietary decisions, blaming someone for ruining your weekend, or choosing investments, you constantly need to understand why things happen”. It is also a comprehensive source about the art of explanations, which is closely related to learning.
The game paradigm implies that you learn by doing. This also applies to learning about yourself as a system. The game becomes a search to discover new insights, as with a treasure hunt. The object of the game is not the “static you” but the “dynamic version, a system that evolves constantly”. Applied to weight loss, it means that insights are not what your weight should be ( a form of medical advice – no fun in that) but rather behaviors that make you gain unnecessary weight (learning about yourself from your experience). This type of approach is natural for regular “quantified self” practitioners, but as we noticed, they are but a fraction of the overall population. This is a missed opportunity, in a sense, since self-tracking is good for you if you have the discipline for it. There are multiple references in all kinds of disciplines, from mental health and psychology to dieting or quitting smoking, including sports coaching. Quoting from another best-seller from Gretchen Rubin: “Current research underscores the wisdom of Benjamin Franklin chart-keeping approach. People are more likely to make progress on goals that are broken into concrete, measurable actions, with some kind of structured accountability and positive reinforcement.” The challenge that a behavior change game must solve is how to leverage behavioral science to bring the benefits of self-tracking (insights and systemic self-discovery) to people who do not have the mind nor the inclination for it. The system paradigm means that the user is “in the loop” and that the game must yield actions (and reactions) from which learning may be derived. For instance, experience shows that it is easier to nudge people to fix approximated data than to enter it in the first place.
Let us conclude with the observation that systemic games for behavior change fit squarely in the field of P4 (Predictive, Preventive, Personalized, and Participatory) medicine. Prevention is the goal of behavioral change experiences; the predictive capabilities from data science are necessary to develop engaging experiences; behavioral change games are personalized by construction, operating under the assumption that we are all different when it comes to behavior change, from motivation to effects. Last, behavior change games are participatory by construction on an individual level (learning comes from acting) and may leverage the power of social and community nudges, modulo the respect of customer privacy. Personalized medicine is, actually, more concerned with small data than big data.
Saturday, September 17, 2016
I was invited two weeks ago to a great event hosted by EPITA entitled “The Elegance of Algorithms”. The host of the debate was Cedric Villani and I really enjoyed this evening of thought-provoking speeches. I was delighted to be invited to join and participate, since the “elegance of programming & algorithms” has been a pet topic of mine for the last 30 years.
I got this invitation thanks to Akim Demaille who remembered that the title of the original web page of the CLAIRE programming language is “The Art of Elegant Programming”. I designed CLAIRE as an open source project in the 90s, together with François Laburthe and a support group including Akim and Stephane Hadinger, as a language that would be ideally suited to write operations research agorithms. CLAIRE is itself the result of 10 years of experience writing compilers for more complex languages such as SPOKE and LAURE. I decided that too much effort had been spent on sophisticated features that programmers did not use much, and that we should rather focus on what made the language versatile and elegant. Our new goal for CLAIRE was to write “executable pseudo-code”, with a language that could be used to teach algorithms, which I did with CLAIRE for a number of years at ENS and Jussieu. Our measure of elegance for CLAIRE was, for instance, the number of lines necessary to express – in an elegant form – the Hungarian matching algorithm. The challenge was to be as compact/efficient as possible – using a high level of abstraction, in the spirit of APL – while staying close to natural language (not the spirit of APL).
There were a number of reasons to focus on elegance 20 years ago. I was already aware that software systems are alive and that a good programming language should facilitate the constant grooming of the code. I had also learned the hard way that only what is simple and elegant survives when generations of programmers work onto a software system. However, what was only a vague intuition then is now blatantly obvious today in the digital age. Which is why I decided to jot down some of the key ideas that I developed in my speech at this EPITA event. Simply said, this post is about the monetary value of software elegance, from architecture to code.
The Business Value of Elegance
1. Software in the digital age is about flows, not assets
The key marker of software in the digital age is the continuous change of software systems; the consequence is that we need to love our code. This is very different from the “system engineering” culture of a few decades ago when we promoted a “black box” approach. If software maintenance required to edit and modify your code constantly, it should be nice to look at ! “Source code is back” and the aesthetics of programming becomes important. Elegance is what helps software systems to evolve into the hands of successive teams of programmers, when “ugly code” is encapsulated and “worked around”, producing hidden complexity and not-so-hidden cost explosion.
This world of constant adaptation is the world of agile software methods, based on iteration. However, iteration produces junk, accumulation of things that quickly becomes useless. It is a law of nature that is not specific to software. Iteration must come hand in hand with refactoring. As a metaphor, we need to tend the garden: clean up, sort and reorganize. Elegance becomes a philosophy and an architecture principle. Gardening means to grow simplicity and to let the “system’s potential” emerge. Digital gardening is similar to Zen gardening : to discover what is permanent in a changing flow.
This vision of systems as flows will intensify in the digital feature when systems are built through the collaboration of AI and human intelligence. Today already, more and more digital algorithms are grown from data through machine learning. This is why Henri Verdier told us that “data is the new code” – I refer the reader to the report on Big Data published by the National Academy of Technologies. What is developed with digital systems are no longer algorithms in the classical sense but processes that grow the necessary algorithms. However, these processes are meta-programmed with code that needs to be elegant for the very same reasons.
2. Digital software is the fruit of collaboration
The act of sharing is critical to building high quality software in a flow environment. This is why code reviews play such an important role and why pair-programming is at the heart of extreme programming. Digital software is the result of team efforts. Code reviews must be enjoyable to be sustained; elegance becomes a Darwinian virtue of code that survives these reviews. During this dinner, I went as far as saying that “elegance is the fuel of code reviews”, as an emotional, aesthetic and collaborative experience.
Digital systems leverage the “power of the crowd” through open source software. We now live in the world of software ecosystems that are built by communities. Software platforms are grown by weaving fragments that get reused through sharing. The elegance of the software fragments is the cement of the open source platforms. The more elegant the code, more eyeballs are reading and proofing it. A law of the digital age is that quality comes from the multiplication of reuse.
Elegance is a dynamic property revealed in a communication process, not a static or aesthetic judgment. This is not new, a few centuries ago, Boileau told us that “Whatever we conceive well we express clearly, and words flow with ease”. Elegance matters to make communication, hence collaboration, easier. An interesting parallel may be made with Cedric Villani’s book, “Birth of a Theorem: A Mathematical Adventure”: scientific creativity is the result of a network whose paths are the laborious efforts – mathematicians in front of their white pages or programmers in from of their screens – to progress along a task, while the nodes are the communication moments when collaboration occurs. Cedric’s book is a brilliant illustration of the importance of the collaboration network. It is, therefore, not a surprise if elegance has been considered a virtue in Mathematics for ages.
3. Today’s main challenge for software is the increasing word complexity
A key ambition of elegance is to reach simplicity. It means not only to search for simplicity of the first attempt or the first creative result, but also the constant quest for continuous simplification, in the scientific tradition of Occam’s razor. Gaston Bachelard told us that “simplicity is the result of a long process of simplification”. Simplicity received a lot of attention during our evening discussion, from a mathematical, musical or software point of view.
Simplicity is a north star of digital system because of its antifragile nature. This great concept from Nassim Taleb means to be reinforced (versus broken) by the constant flow of unexpected and adversarial events. For instance, biological live systems are antifragile whereas most mechanical systems are fragile. Simple code is antifragile – compared to sophisticated one – because it is much more prone to evolve at the same rate as the environment’s change. Digital systems require this behavior; successful platform are built through a constant flow of adaptation. There is much deeper systemic truth here, that you may start to grasp when reading “Simple Rules for a Complex World” by Donald SullKathleen and M. Eisenhardt.
A cardinal virtue of simplicity in the digital age is the reduction of inertia. This is a core lean principle from Taiichi Ohno. There is much more here than the simple application of Newton dynamics (the lower the mass, the higher the acceleration). Since I was talking to mathematicians, I was able to refer to Pollaczek-Khinchine ‘s formula which I have quoted often in my blog. Without going into the complexity of Jackson networks, this formula expresses the virtue of simplicity (reduction of variation) to ensure a faster response time. This is one of the many case where the intuition of lean and the mathematical models coincide. This translates into a key principle for digital: to continuously clean up the technical debt, since the overall velocity is inversely proportional to the bulk of digital assets.
Throughout this post, I have used the word “elegance” to combine two qualities: simplicity – from a systemic perspective – and aesthetic value, measured though communication and collaboration. The three previous sections could be summarized as:
- Elegance is necessary to break the “time barrier” – allow long-lasting software improvements
- Elegance is necessary to break the “distance barrier” – enabling the collaboration of remote viewpoints to produce better software
- Elegance is necessary to break the “complexity barrier” – in order to design antifragile systems.
This is, on purpose, a conceptual and slightly pedantic way to express why elegance matters. I concluded with a much more forceful anecdote taken from a previous visit to Googleplex in Mountainview, where I have enjoyed reading a few good pages of tips about test-driven development, while standing in the restrooms. This is a vivid example of what a “code loving culture” can be. The silent drama, which is happening right now, is that the gap between those companies that have understood that “software is eating the world” and those who do not is growing. This is where we have come full circle to the main topics of this blog. I will refer the reader to Octo’s great book : “The Web Giants” where almost everything that I mentioned in this post resonate with the best practices of the most advanced software companies.
Code elegance is a fascinating topic and there is much more to say. For instance, it is interesting to try to characterize what makes a code elegant. Cedric Villani started his introduction by saying that elegance in mathematics was the combination of simplicity (concision), efficiency (something that really works) and surprise. The aesthetic value of surprise is a direct consequence of our emotional species-meta-learning strategy to value what is different from we expect (cf. Michio Kaku). I will end this post with a few ideas borrowed from Francois Laburthe, with an interesting reference to SOLID:
- Elegant design borrows heavily on abstraction and genericity. However, units (from functions or classes to module) have a clear and well defined purpose.
- Elegant design is mindful of waste, in the lean tradition. Everything is used, and constant refactoring tracks useless replication of features.
- Elegant design is geared toward self-dissemination because it “welcomes you” through a self-explanatory structure. This is greatly helped by reification / introspection when design elements are self-aware.
- Elegant design is open by nature – it embraces the philosophy of “fragment weaving” mentioned early on through facilitating (hence the importance of API) and selflessness (the design principle that the code will always be used by something more important than itself).
Monday, May 30, 2016
I had the chance, two weeks ago, to listen to a dual talk by Norm Judah, the Service CTO from Microsoft, and Bernard Ourghanlian, Microsoft France CTO , when they visited the ICT commission at the NATF . The ICT commission will produce a full report about our investigation into « AI renewal and the explosion of machine learning » next year (similar to our Big Data report last year), but let me share a few random notes. The topic of these two lectures was Machine Learning, and they both started by stating the obvious: Machine Learning is already everywhere in our digital lives. We are using it implicitly all the time in most digital products and services that we use every day. What makes ML the « hot topic of the year … or decade » is both the constant progress and the increase in the progress that we have seen in the past few years. The following illustration shows the reduction of word error rate in speech recognition from Nuance (the Microsoft version of this curve that Bernard Ourghanlian showed is even more impressive).
Similar curves exist for many other ML domains such as image recognition and they show a similar pattern. Microsoft is investing massively in ML, notably through its Cortana platform (and I mean massively – Microsoft CEO, Satya Nadella, has made Machine Learning the #1 priority for the next decade). I will not cover all that I learned about Cortana today, such as « the more you use it, the better it works », but I was struck by two things.
First, we are still in the days of supervised ML, mostly, which means that data (samples for learning) collection, selection and curation are the fundamental skill of the next 10 years. I had heard this idea expressed earlier by Pierre Haren, former CEO of ILOG : IP (intellectual property) of most next-generation technology will be about data sets and learning protocols. The formalization and optimization of these protocols is going to be a wonderful discipline, from an abstract computer science point of view, but that will be the topic of another post. This is very much related to the “data is the new code” claim.
Second, the next wave is indeed the coming of really smart interactive assistants, mostly chatbots. There is so much hype about chatbots that this does not sound like much, but Norm Judah’s talk convinced me that the wave that is coming is bigger than what I thought. One of his most striking argument is that conversational assistants will give access to digital services to new categories of people such as:
- People who do not have a smartphone yet (in emerging countries), using SMS instead,
- People who have a smartphone but are not comfortable with apps (people over 80 for instance),
- People with smartphones and simple mobile application practice, but who lack the level of abstraction and education to feel at ease, or empowered, with many navigation systems proposed by corporations in their commercial apps.
According to Norm Judah, Bots are the revolution of the next 10 years. This revolution is coming faster than the next one: the revolution of business capabilities though general-purpose AI (the special purpose version is already there, as shown in fraud detection). He thinks that most digital applications will have conversational interfaces (such as chatbots) in the next 4 years. Bots will become a prevalent interface for many digital services (but not for everything, sometimes it is still faster to point and click than to tell). A good summary (in French) about the current state of chatbot may be found here, but the key message is that this is only the beginning and that text recognition and understanding is about to make spectacular progress in the years to come. Obviously, this is no way restricted to Microsoft / Cortana, this trend is everywhere : Facebook, Apple or Google for instance.
The upcoming revolution of Machine Learning and Artificial Intelligence is one of the key theme of the bestseller “Exponential Organizations”, a summary of which may be found here. I decided to call this blog post “Exponential Information Systems” because I believe that the general pitch from the book, that the exponential wave of technological progress that is coming demands a new organizational architecture, works for information systems as well. To be more specific, here are three key ideas from that book:
- The exponential rate of change of technologies, such as machine learning or IOT, demands a new kind of organization for enterprises, with more distributed control towards a network of autonomous cells, so that companies adapts continuously to their changing environment and the associated opportunities
- Such organizations – so called “exponential organizations” – exhibit a few SCALE-able traits: to use of on-demand resources, to leverage the power of communities, to master their own field of algorithms – I will underline this aspect in the conclusion - and to engage their customers and partners.
- The set of founding principles for such organizations is summarized with the IDEAS acronym: Interfaces (to attract external contributions), Dashboards (to support decisions from facts), Experimentation, Autonomy (which is the heart of agility and speed) and Social.
I strongly urge you to read this book, it really helps to understand the “exponential” changes of the decade to come, and how to adapt. Today’s post is focused on how this applies – logically - to information systems as well. Section 2 is a transposition of the first idea: information systems also needs to continuously adapt to their digital environment (both from the outside – the boundaries – and the inside – the underlying technologies) which requires a rate of internal change that was unheard of two decades ago. Section 3 develops the importance of boundaries, interfaces and the enrolment of communities to create ecosystems. There is no surprise here, the networked aspect of the digital economy is rooted in API and cloud services ecosystems. Section 4 focuses on two key characteristics of the digital economy that we just mentioned earlier: the need to base decisions on facts – and re-evaluate them regularly as everything changes – and the need for “tinkering”, the name given by Nassim Taleb and Salim Ismail to experimentation. It should be obvious to anyone that these two characteristics are inherited from the information systems capabilities. The last section summarizes the principle of “capability architecture”, whose goal is to build a scalable playground for tomorrow’s algorithms. The new name of the enterprise architecture game is symbiosis, as is wonderfully explained in Erik Campanini and Kyle Hutchins new book “Darwinism in a consumer-driven world”.
To summarize, one could say that Exponential Information Systems are those whose architecture, software culture and lifecycle make ready to leverage the exponential wave of new digital technology. Let me end this introduction with a great quote from Pierre-Jean Benghozi in his article “Digital Economy: A Disruptive Economy? : “ … Eventually, it is the constant transformation of their models that grants companies a kind of stability and resilience … not simply the better use of their strategic resources or the answer to changes of their environment through innovation”.
2. Digital World Refresh Rate is a Game Changer
I have spent a decade experimenting – when I was the CIO of Bouygues Telecom – and theorizing the need for constant change and refresh of information system elements. This is a key focus of my lecture at the Ecole Polytechnique, of my second book and some of these posts. Information Systems must be seen as living organisms, which was one of the reasons to start this blog in the first place. I have developed techniques and formulas to build sustainable and cost-efficient information systems based on the proper refresh rate that ensures that the technical debt stays moderate and that the benefits of new technology (e.g. Moore’s Law) may be leveraged.
However, my 10-years-old thinking is now totally obsolete, as we need to increase the refresh rate by one order of magnitude. This is the key message from Exponential Organizations: get ready for waves after waves of technologies for building better web sites, better mobile apps, better big data systems, better machine learning algorithms, better artificial intelligence frameworks, smarter connected object, etc. I could reuse the modeling approach that I developed earlier but I will spare you the unnecessary formalization: the first consequence is that Information Systems must indeed increase their refresh rate to incorporate these technology waves without too much delay. The reason is not only that the exponential wave of new technologies open a wave of new opportunities – which they do – but also that new technologies allow to do things much cheaper and much faster, as is illustrated with Big Data technology, creating huge opportunities and risk of disruption. The second consequence is that, to maintain a high refresh rate while keeping the IT budget moderate, one needs to reduce the footprint. Modern information systems are required to move fast, constantly, and must, therefore, reduce their inertia. This is closely related to Klaus Schwab’s famous quote : “In the new world, it is not the big fish which eats the small fish, it’s the fast fish which eats the slow fish.“
Somehow these ideas were already true 20 years ago, it is just that the stakes have been raised and these principles have become mandatory. When I give a lecture about information systems in the digital age the pivotal moment is the need to write systems that will change constantly, this is why continuous build & delivery is so important, this is why we need new ways of writing code. The mandate to keep IS small and as much free of technical debt as possible is a tough one. It is not a universal or homogeneous requirement throughout the information system: As in any living organism each part has its own renewal rate. For reasons that would be too long to explain here, refresh rate is expected to follow a power law; some hubs need to evolve constantly while some leaves may enjoy a peaceful life. Indeed, a good architecture is one that let each component evolve at its own rate – a key lesson from my tenure at Bouygues Telecom that was the topic of my first book and which I will address in section 4. This brings us to the quest for modularity, an architecture mandate which is more relevant than ever in the digital world.
An ideal information system, like an ideal organization as defined in BetaCodex is one that is built like a living cell (hence the illustration). The membrane and everything close to it evolves faster than the core of the cell. Thinking about changes from an edge/frontier perspective is a key insight from books such as “Exponential Organizations” – cf. “scaling the edge” in this Deloitte summary - or system thinkers such as Idriss Abderkane since adaptation in living systems usually starts from the edge, not the center. Here is another quote from “Complex Systems” by Par Terry R. J. Bossomaier and David G. Green : “Because systems near the edge have the richest, most complex behavior, such systems can adapt better and therefore have a selective advantage over other systems”. We will see this principle put to action in the capability map of Section 5. Sustainability and Systemic thinking is critical when designing information systems; otherwise massive amounts of refresh spending may be applied without changing much because the burden / mass of legacy is too large. I have seen too many times, in my days as CIO, people reasoning about change from the effort that was made to add new things without reflecting about the inertia of the technical debt.
3. Do Less, Hence Leverage Others' Work
This section will be short since I have already developed this idea in other posts : the only way to churn out more software, with better quality without raising the cost is to massively reuse more from outside. The associated illustration is a living tissue as a metaphor of the cells working together in an ecosystem. In the same way that change happens both from the outside in and from within, software reuse also happens through the frontiers and from within. Without any attempt to be exhaustive, there are four major “engines” to churn software faster and I will focus today on the last since it is related to the previous section:
- The first pillar is the use of open source software . This is not the only way to reuse, but this is mandatory in the digital world because the open-source community is where a lot of the software innovation occurs. There is a Darwinian advantage for open-source software: the way it is build – incrementally, around communities, continuous testing and debugging with thousands of eyeballs, constant change, etc. - produces the traits that are necessary to fit the digital environment. It is not a simple mandate since it requires strong changes in software architecture and culture for many companies.
- Reuse “at the frontier” is to develop APIs to propose and use web services. The importance of API does not need to be emphasized since the “Jeff Bezos memo”. There is also a culture dimension since API are attached to ecosystems, and since the best way to learn the API game is to participate to software communities.
- Delivering software faster requires full automation, hence the rise of DevOps and continuous build & delivery. There is more to DevOps than continuous delivery but the key point here is that modern software factories come with automation tools that may not be ignored. This is the first lesson of my four years building set-top boxes at Bouygues Telecom.
- Heterogeneous change-architecture with a focus on “agile borders” or “adaptive edge”. The most common pattern for this idea the the bi-modal architecture. Bi-modal is a very old idea in IS architecture. For instance, Octo and Pierre Pezziardi developed the empire/barbarian metaphor 15 years ago (the empire evolve more slowly than the barbarian outpost). Bi-modal is an obvious simplification since the core-to-edge differential design may be decomposed in many ways (cf. our Section 5).
Bi-modal is both a great and dangerous idea. Bi-modal defines two parts of the Information System realm, one where the legacy stands and one where the new digital frontier is being implemented. In his article, Bernard Golden develops similar reasons about the why and the importance of DevOps. It also leverages a key idea of the digital world: the best way to learn how to develop like the best digital companies is to use the same tools. Bi-modal is a great idea because it defines a new domain where the “new rules of the digital world” may be introduced. It makes “experimentation” much easier and support the introduction and development of a new software culture. Jay Fry blog post develop the same ideas, with a focus on the necessary disruption, which is precisely the same as the requirement for a new rate of change.
However, warnings started to be heard not late after Gartner re-introduced this idea in 2014. If taken literally, it may be seen as an excuse not to change the legacy, which would be wrong according to the previous section and according to Jason Bloomberg. In his article “Bimodal IT: Gartner recipe for disaster”, he proposed a caricatured version (slow versus fast IT) which he rightly criticizes. He makes a thoroughly correct argument that the digital revolution need to embrace the whole information system. In a more recent post entitled “Saying goodbye to bimodal IT”, Mark Campbell makes a harsh criticism about keeping the legacy untouched and mostly against a silo culture that will prevent global change. Change and new capabilities are indeed required everywhere; I will return to this point in the next two sections.
This being said, I still believe that “bi-modal” is necessary because of speed requirement (back to the “rate of change” topic of the previous section). Everything mentioned in this section requires speedy transformation: the speed to adapt to a new open-source culture, the speed to adopt new software factory tools, the speed to learn how to play the API game. All these changes are mandates for the whole information systems, but if there is one common rate of change, it is mechanically too slow, because of the weight of legacy.
4. Fractal Capability Design
I started using the concept of capabilities in 2004 after reading the wonderful book of François Jullien “A Treatise on Efficacy”. Capabilities are the practical tool that one may use as a CIO or VP of engineering to develop a company’s situation potential. Very crudely summarized, François Jullien’s suggestion is to borrow from Chinese philosophy to develop strategies that are better suited to the complex and impossible to forecast world of our 21st century. François Jullien opposes the Greek philosophy which is governed by goals and actions plans, where the player is applying his or her will to the world to change outcomes in a top-down manner, to the Chinese philosophy which is governed by situation potential and opportunities, where the player is using the environment as it comes and builds her or his potential in a bottom-up manner. In terms of IT strategy, it means that we stop building strategic plans where we forecast how the information systems will be used 5 years from now, but that we think about what opportunities could exist, what would be needed to best leverage these opportunities – the capabilities - and how to best use the next 5 years to grow the capabilities. If the difference is not clear, please read the book, it is simply the most relevant business book I have ever read.
There are many capabilities that are required in the digital world, but I would like to focus on three key capabilities:
- Mashup, that is, the ability to combine swiftly and deftly different services into new ones. The new term is composite applications, but I like this reference to the “old web days”. Being able “to mashup” is the first digital capability, derived from constant practice and open choices. The mashup capability is derived from many paradigms: source code integration, (micro) service-oriented architecture, tinkering culture, open source community adoption, etc.
- Complex event processing, which is the ability to collect, process and react to complex collection of events. CEP is also sitting on a large array of technologies, from event-driven architecture to rule-based automation. Complex event processing is the critical capability for conversations, and we know that in the digital world, “markets are conversation”. Obviously the arrival of massive amounts of artificial intelligence will make contextual and ambient intelligence a must for future digital services.
- Machine learning, as said in the introduction, plays a critical role everywhere. It is used to generate insights, to forecast and simplify usage, to personalize without becoming cumbersome, to detect threats and fraud. Machine learning is the critical capability for relevance, and no customer has time for irrelevant experiences in this new century.
The concepts behind these capabilities are not new, but the level of excellence that one may reach is constantly changing, hence the situation potential is changing. These capabilities intersect each other and reinforce each other. The consequence of the digital challenges is that information systems must develop these three capabilities in each of their components. I remember an old debate in 2007 when we discussed the ideal service architecture for Telcos. I came up with this motto “mashup everywhere” which meant that we had to build this “on-the-fly-composite-service” capability in the network, on our service delivery platform (SDP) and on the devices themselves – at the “edge” of the network. This is truer than ever, the “exponential” wave of technologies means that these capabilities will have major impacts in all components of the information system. This leads to the concept of “fractal capabilities” which I have illustrated with the snowflake metaphor. “Fractal capability” means that the capability is implemented in a recursive manner, at different scales. To take another example from the previous three, I would propose today that "analytics capabilities must be everywhere" : the ability to take decisions based on facts is a given of the digital age, from core to edge.
The consequence, and the best illustration of this concept, is that EIP (Enterprise Integration Platform) is a concept more than a physical platform. As a system, it is a fractal architecture made of multiple integration patterns, at different scale. This is definitely not new, this was the topic of my first book more than 10 years ago and the lesson learned from many years of experience. Even in those years there were many reasons for the “fractal” design:
- There are too many constraints (different integration challenges for each different for each frontier) and its is hard to find a technology that matches all of them,
- Different components have different lifecycle; thus a fractal / recursive implementation (federated collection of platforms) is more flexible and adapts more easily to different “takt times”,
- Integration is about ecosystems: open integration is even more challenging, since each frontier comes with its own culture, not simply technical constraints,
- Resilience : fractal design supports the independence of sub-regions and reduces the possibility of a SPOF.
“Exponential times" amplify this set of constraints: seeing the EIP as a single platform becomes a juggling act. The successive waves and forms of integration technologies, patterns and ecosystems is much better suited to a fractal approach with the flexibility of organic thinking.
When I speak about system capabilities, it relates to people (teams) as much as technology. Capabilities are born from skills, and skills in an exponential world are developed through practice, through experimentation. Experimentation is a key pillar from the « Exponential Organizations » book : « »; « » In a world of constant exponential change, tinkering often beats expertise. A truly interesting example is given about a natural language contest where the most innovative team was a cross-functional team with diverse backgrounds and no true experts: « ». As I have expressed many times in this blog, "tinkering capabilities" are crucial to be able to import innovative technologies from the outside (you cannot buy a digital innovative platform that you do not understand, and understanding is achieved through practice).
5. Thinking Outside The Box: Four-Tiers Playground Landscape
I will end this post with a simple chart (below) which is a summary of the different ideas expressed so far, expressed as a “capability landscape”. It is a follow-up of a previous post entitled “software ecosystems and application sustainability”. There is a tension expressed here: on the one hand, many capabilities are “fractal” and must be developed everywhere; but on the other hand, it is always better to reuse what exists and organic design shows a way to deploy change faster. This landscape (not to be confused with a system architecture chart) is made of four domains, which are interwoven through the “fractal enterprise integration platform” that was just discussed:
- Business / core capabilities: the traditional domain of IT as a function for business support. A key challenge is to make business capabilities easy to reuse and to share, hence the focus micro-service architecture and internal APIs. As expressed in the previous section, mashup, tinkering (CORE requires its own sandbox) or CEP must be grown capabilities in this domain.
- Engagement capabilities: a first frontier towards customers and partners, which is characterized by strong tinkering & integration capabilities. Since the first role of the engagement frontier is to “start conversations”, capabilities such as contextual intelligence or personalization are critical. This domain, called "matrix" on the schema, is the frontier with the outside world; it is the place where outside innovation gets mashed up with the enterprise own capabilities.
- External engagement capabilities: where the state-of-the-art of advanced capabilities live. The topic of this whole post is to get ready to ingest massive amounts of innovation to come, and this is done by mashing up the “agile frontier” of the information systems with services delivered by advanced partners.
- Last, I have represented the “Digital customer world”, with its own capabilities. There is a larger world outside, where our customer live, and it is also getting richer of advanced capacities (such as smart assistants or machine learning) at exponential rate. Companies need to develop a symbiosis with this ever-richer digital environment and try not to compete with it.
To understand the value behind the decomposition of the “capability landscape” into four domains, it is interesting to look at the three following pairs. First, the matrix/edge distinction is important because the edge is bigger than the frontier, so companies must learn to become “parasites” of the software ecosystems that live on the edge. Leveraging the smartphone and the application stores is the most obvious example. Second, I have kept a bimodal core/matrix distinction because of the reasons exposed in Section 3, bit remember that the core domain needs to evolve and that it is also under disruptive attack from “Barbarians”. Last, I have emphasized a matrix/cloud difference because exponential technologies will grow – very fast – outside the enterprise and our challenge is to learn to use the capabilities before we master them (the mastery comes as a consequence of the practice, not as a prerequisite).
To conclude, I will rephrase the importance of algorithms, which is a cornerstone of the “Exponential Organizations” book, by borrowing three quotes. The first one tells about Allstate, shown as an example of a company that has learned to use algorithm competitions – similar to the ROADEF annual challenges – to improve their own state of the art: « It turned out that the Allstate algorithm, which has been carefully optimized for over six decades, was bested within three days by 107 competing teams. Three months later, when the contest ended, Allstate’s original algorithm had been improved 271 percent. And while the prize set the company back $10,000, the resulting cost savings due to better algorithms was estimated to be in the tens of millions annually”. The second quote tells about the UPS example of improving their telematics algorithm and shows that algorithms – which have always been important – are becoming mission-critical for many business as they become digital: « Given that the 55,000 trucks in UPS’s American fleet make sixteen million deliveries daily, the potential for inefficient routing is enormous. But by applying telematics and algorithms, the company saves its drivers eighty-five million miles a year, resulting in a cost savings of $2.55 billion. Similar applications in healthcare, energy and financial services mean that we’re entering a world of Algorithms R Us ». The last quote is a nice way to round the circle with my introduction on the importance and exponential progresses of Machine Learning: “ Machine Learning is the ability to accurately perform new, unseen tasks, built on known properties learned from training or historic data, and based on prediction”.