tag:blogger.com,1999:blog-4389421123645240442024-03-18T20:16:00.571-07:00Biology of Distributed Information SystemsThis blog is about biomimetics and information systems: how does one exploit the properties of emergence and adaptability of "live" systems to "grow" a new breed of information systems that are autonomous, resilient and adaptive to their environments.Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.comBlogger68125tag:blogger.com,1999:blog-438942112364524044.post-20672194014673805632024-03-10T00:12:00.000-08:002024-03-10T00:12:36.234-08:00Artificial and Natural Intelligence<span id="docs-internal-guid-e806a5d9-7fff-f58a-18b7-645aa91876ab"><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-left: 21pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-indent: -18pt;"><span style="font-family: verdana;"><br /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-left: 21pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span></p><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-left: 3pt; margin-top: 0pt; text-align: left;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">1. Introduction</span></span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-left: 3pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-left: 3pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The past 16 months have been really exciting. The progress on generative AI have been so impressive that newspapers and media tend to confuse genAI and AI, which is a shame because there is so much</span><a href="https://informationsystemsbiology.blogspot.com/2023/05/adding-language-fluency-and-knowledge.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">more about AI than genAI</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> and mostly because many problems have beautiful AI solutions but are not meant for genAI (planning and scheduling for instance). Still, we have seen a constant stream of breakthroughs and innovations:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-left: 3pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana; text-indent: -18pt; white-space-collapse: preserve;"><br /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-left: 3pt; margin-top: 0pt;"></p><ul style="text-align: left;"><li style="text-align: justify;"><span style="text-indent: -18pt; white-space-collapse: preserve;"><span style="font-family: verdana;">Large-language models are evolving very fast. Size has been growing very fast in the past 3 years and this is not over. Architecture is also progressing quickly with “society of minds” or “mixture of expert” approaches (Mistral.ai or Gemini 1.5 for instance). The race between the big giants and the open-source approach is also fascinating to watch.</span></span></li><li style="text-align: justify;"><span style="font-family: verdana;">We have seen LLM-based tools explode with creativity, starting with ChatGPT and RLHF, and many forms of context extensions, such as RAG (Retrieval Augmented Generation) using a wide variety of embedding to hybrid LLMs with other knowledge engineering tools (ontologies, semantic graphs, etc.).</span></li><li style="text-align: justify;"><span style="font-family: verdana;">As a consequence, hybridizations of LLMs with other AI techniques are everywhere. When you play with the more advanced tools such as GPT4 or Gemini 1.5, chain of thought (CoT: link) is used comprehensively to mix different kind of reasoning tools with the raw power of LLMs. The availability of API (both ways, to use LLM as a slave of a higher-level knowledge assistant or to use a specialize solver as a slave for your LLM) has boosted the creativity and the scope of what a knowledge assistant means today.</span></li></ul><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">If you feel dizzy, with you mind spinning with so much news, so many new techniques and so much to read to keep afloat, you are not alone. This is a good moment to step back and work a little bit on “your foundations”, that is your mental model to sort out all these innovations and techniques.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The good news is that I have just the right book for this. This blogpost is centered around “</span><a href="https://www.abriefhistoryofintelligence.com/" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">A Brief History of Intelligence</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">” by</span><a href="https://www.abriefhistoryofintelligence.com/about-author" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Max Bennett</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. This is the perfect book to refresh and improve your understanding of natural intelligence and see the multiple links with artificial intelligence, both the big picture over the past decades and the more recent tumultuous developments of generative AI. For my regular blog readers, let me say that this is my “book of the decade”. It goes in my pantheon of exceptional books, together with “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">A Treatise of Efficacy</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">” by</span><a href="https://en.wikipedia.org/wiki/Fran%C3%A7ois_Jullien" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">François Jullien</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> or “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Fooled by Randomness</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">” by</span><a href="https://en.wikipedia.org/wiki/Nassim_Nicholas_Taleb" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Nassim Taleb</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">This is an exceptional book because it mixes two perspectives. On the one hand it is a biology vulgarization book about natural intelligence, about how our brain works. Max Bennett is not a neuroscientist or a biologist, but he has compiled a vast body of knowledge and managed to enroll the best experts to help him write a narrative that is both fascinating and easy to read. As he puts it, “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">A Brief History of Intelligence is a synthesis of the work of many others. At its heart, it is merely an attempt to put together the pieces that were already there</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. On the other hand, Max Bennet is a computer scientist by training and this book provides a systemic vision of natural intelligence (a crude abstraction, by construction) with all the related links to the progress of artificial intelligence in the past decade. This means that you get from this reading a great mental model to sort out all the key concepts of neural networks, deep learning and many related AI techniques such as reinforcement learning, generative adversarial networks or generative AI.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"></p><div style="text-align: justify;"><span style="font-family: verdana; white-space-collapse: preserve;">This blog post is organized as follows. Section 2 presents a short summary of the book. This is not an easy task because this book is meant to be read, not summarized. I will follow the structure of the book and present the “five breakthroughs” of natural intelligence as it occurred during the course of life evolution from the simplest life forms to mammals, apes and humans. As we progress through the course of history, we will encounter different heuristics and principles produced by evolution that have found their places in the field of artificial intelligence, one step at a time. Section 3 will propose a simple illustration of how we can sort out some the innovations and breakthroughs mentioned earlier in this introduction.</span></div><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><br /></span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><br /></span></span><h2 style="text-align: left;"><span style="font-family: verdana; font-weight: 700; text-indent: -18pt; white-space-collapse: preserve;">2. A Brief History of Intelligence</span></h2><h2 style="text-align: left;"><br /></h2><div style="text-align: left;"><span style="font-family: verdana;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh0yweTivDnh55Up6INDqKpmV0T4etQBUXGbL2iIB3qaydp4KL6RLOUwCkLjjQ64DLSmdCEmBltL8YO_TVuMfT3Y2CfOXXnKkxbuOKAoQJFA_WlT5ZbTZnCgqpmd3aUVdkDY1OkITkTp88Pa0nhls-wo60aGOyZCbX03JhMkrROxUPCz7hM1uCupvwN9A/s1000/ABriefHistoryOfIntelligence.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1000" data-original-width="854" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh0yweTivDnh55Up6INDqKpmV0T4etQBUXGbL2iIB3qaydp4KL6RLOUwCkLjjQ64DLSmdCEmBltL8YO_TVuMfT3Y2CfOXXnKkxbuOKAoQJFA_WlT5ZbTZnCgqpmd3aUVdkDY1OkITkTp88Pa0nhls-wo60aGOyZCbX03JhMkrROxUPCz7hM1uCupvwN9A/s320/ABriefHistoryOfIntelligence.jpg" width="273" /></a></div><div style="text-align: justify;">The full title of Max Bennet book is “<a href="https://www.harvard.com/book/a_brief_history_of_intelligence/" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">A Brief History of Intelligence: Evolution, AI, and the Five Breakthroughs That Made Our Brain</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">”. The first keyword, “evolution”, is the foundation of the book. Natural intelligence is explained through the lens of evolution, how our brain evolved from the early animals to our human brains: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">Indeed, as the biologist Theodosius Dobzhansky famously said, “Nothing in biology makes sense except in the light of evolution</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">”. This book contains a wonderful narrative and explanation about the evolution of species and how mammals, primate and human emerged, with fascinating insights about the different paths and branches. As Max Bennet points out, “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">Evolution independently converges on common solutions all the time. The innovation of wings independently evolved in insects, bats, and birds; the common ancestor of these creatures did not have wings</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">”. This book includes a very useful refresher (at least for me) course on the evolution of species in the past billion years, since as the author points out: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">Evolutionary constraints cast a long shadow on modern humanity</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">”. Trying to cover the evolution of the brain in one book is a challenge by nature, so Max Bennet decided to focus on a systemic approach and to identify five “breakthroughs” in the development of natural intelligence, which is an editorial choice but makes for an easy reading and improves tremendously the capacity to absorb the high quantity of information that you will find in this book. It also serves as the framework to bridge between natural and artificial intelligence, that is to show how much AI has borrowed to these 5 key concepts: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">And crucially, we will ground these breakthroughs in what is currently known in the field of AI, for many of these breakthroughs in biological intelligence have parallels to what we have learned in artificial intelligence</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">”. What I propose in this blog post is a crude summary of the ideas that excited me the most, but I urge the reader to get her own copy and enjoy the full experience of reading this wonderful book.</span></div></span></div><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><br /><br /></span></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">2.1 Steering</span></span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The first breakthrough, that of primitive animals, has been the ability to steer in complex environment to find what they needed, food, water, etc., through simple heuristics that processes the stimuli produced by the animal senses. Max Bennet explains, through the precise examples of paths from these simple animals (as simple as a nematode C. elegans in a petri dish) navigating towards food, which simple set of rules are implemented in these primitive brains. It can be summarized as: if the positive stimuli increase, keep going, otherwise make a turn. “</span><span style="font-family: verdana; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">This was the breakthrough of steering. It turns out that to successfully navigate in the complicated world of the ocean floor, you don’t actually need an understanding of that two-dimensional world. You don’t need an understanding of where you are, where food is, what paths you might have to take, how long it might take, or really anything meaningful about the world</span><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. This strategy is similar to how the Roomba, the vacuum-cleaner robot co-created by</span><a href="https://en.wikipedia.org/wiki/Rodney_Brooks" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Rodney Brooks</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> two decades ago, operates : “</span><span style="font-family: verdana; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> Whenever the Roomba hit a wall, it would perform a random turn and try to move forward again. When it was low on battery, the Roomba searched for a signal from its charging station, and when it detected the signal, it simply turned in the direction where the signal was strongest, eventually making it back to its charging station”. </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The first step of this steering breakthrough, at first based on simple stimuli and greedy optimization, evolved with</span><a href="https://en.wikipedia.org/wiki/Bilateria" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">bilaterians</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> animals (with a symmetry axis) with the associative learning thanks to neurons and neuromodulators. “</span><span style="font-family: verdana; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The ubiquitous presence of associative learning within Bilateria and the notable absence of it outside Bilateria suggests that associative learning first emerged in the brains of early bilaterians. It seems that at the same time valence—the categorizing of things in the world into good and bad—emerged, so too did the ability to use experience to change what is considered good and bad in the first place”</span><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. To make associative learning possible, the first step is to grow goals and rewards, which are achieved through emotions. For rudimentary animals, these emotions can be characterized through</span><a href="https://www.linkedin.com/pulse/dimensional-affect-explainer-valence-arousal-vad-michel-valstar-i10ye/" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">valence and arousal</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> : “ </span><span style="font-family: verdana; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Neuroscientists and psychologists use the word affect to refer to these two attributes of emotions; at any given point, humans are in an affective state represented by a location across these two dimensions of valence and arousal </span><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. Max Bennet explains how bilaterians have developed the two most famous neuromodulators,</span><a href="https://www.medicalnewstoday.com/articles/326090" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">dopamine and serotonin</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, to grow an adaptive behavior for the steering that create associative memories of the signals that are positive indicators of goal completion (for instance, when searching food in a maze, an example that is used throughout the book to show the progressives stages of natural intelligence development). In one such famous experience conducted by Berridge on rats, it was found that dopamine was not an indicator of actual satisfaction but expected satisfaction to come, a building block for the plan-do-reward-learn cycle : “</span><span style="font-family: verdana; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Dopamine is not a signal for pleasure itself; it is a signal for the anticipation of future pleasure</span><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. I will not try to reproduce here the careful reconstruction of associative learning through the rudimentary brain, you should read the book because this first section about the evolution of associative learning and how to optimize a goal with a series of possible conflicting stimuli is fascinating. A key challenge, in real life as well with machine learning, is the “</span><a href="https://www.baeldung.com/cs/credit-assignment-problem" style="font-family: verdana; text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">credit assignment problem</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”, that is, if you have a history of weak signals that may indicate parts of the good decisions that led you (the animal) to an ultimate reward, how do you decide which factors were significant and which were minor, through learning algorithms ? As Max Bennet states, “</span><span style="font-family: verdana; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The ancient bilaterian brain, which was capable of only the simplest forms of learning, employed four tricks to solve the credit assignment problem. These tricks were both crude and clever, and they became foundational mechanisms for how neurons make associations in all their bilaterian descendants</span><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. Here is simplified list of these four “tricks”:</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"></p><ol style="text-align: left;"><li><span style="text-indent: -18pt; white-space-collapse: preserve;"><span style="font-family: verdana;">The first trick used what are called eligibility traces. Associations between events are only kept if they occur within a given time period.</span></span></li><li><span style="font-family: verdana;">The second trick is overshadowing: the brain picks the clues that are the strongest and ignore the weakest.</span></li><li><span style="font-family: verdana;">The third is latent inhibition: frequent stimuli are flagged as irrelevant.</span></li><li><span style="font-family: verdana;">The fourth is blocking: once a predictive association has been established, other possible causes are blocked away, to avoid rule conflicts.</span></li></ol><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-left: 38pt; margin-top: 0pt;"><br /></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">2.3 Reinforcement</span></span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Whereas the behavior that we have seen in the previous section may be qualified as adaptative algorithm with associative learning, the second breakthrough came from reinforcing, that is “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">learning to repeat behaviors that historically have led to positive valence and inhibit behaviors that have led to negative valence</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. The second breakthrough is a learning breakthrough, which is extracting more knowledge from trial-and-error. This behavior is exhibited by many animals, including obviously mice but also fishes, who have been exposed by research scientists for a very long time to quite complex puzzles and mazes: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">What was most surprising was how much intelligent behavior emerged from something as simple as trial-and-error learning. After enough trials, these animals could effortlessly perform incredibly complex sequences of actions</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> … </span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Fish can learn to find and push a specific button to get food; fish can learn to swim through a small escape hatch to avoid getting caught in a net; and fish can even learn to jump through hoops to get food. Fish can remember how to do these tasks for months or even years after being trained</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. These smart behaviors emerge from reinforcement learning, a foundation concept both for artificial intelligence (Max Bennet quotes the first reinforcement learning algorithm from</span><a href="https://en.wikipedia.org/wiki/Marvin_Minsky" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Marvin Minsky</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> in 1951) and natural intelligence: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Responses that produce a satisfying effect in a particular situation become more likely to occur again in that situation, and responses that produce a discomforting effect become less likely to occur again in that situation”. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The progress compared to the simpler steering strategies of the previous sections comes from the more sophisticated strategy to solve <b>the credit assignment problem</b>. </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">This issue was actually noted in the artificial intelligence world: “ </span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Minsky realized that reinforcement learning would not work without a reasonable strategy for assigning credit across time; this is called the temporal credit assignment problem”. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Max Bennet explains how</span><a href="https://en.wikipedia.org/wiki/Richard_S._Sutton" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Richard Sutton</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> found a solution in the algorithm world, while at the same time neuroscientist found that similar approaches were at play in the brain of the fish or mouse trying to solve their puzzle. The key idea, that we will see in many places, is the training of a predictive model, in an adversarial manner : the brain or the algorithm constructs a model of the future rewards that are expected, and the learning algorithm modifies this model through observation, with a focus on time difference between possible cause and signals: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The signal on which the actor learns is not rewards, per se, but the temporal difference in the predicted reward from one moment in time to the next. Hence Sutton’s name for his method: temporal difference learning”. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> From a machine learning perspective, this adversarial pattern is everywhere (for instance, Generative Adversarial Networks): “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">In his simulations, however, Sutton found that by training an actor and a critic simultaneously, a magical bootstrapping occurs between them</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. The focus on time differences between causes and effects (a first step into the search for causality, which is how a “world model” is built) lead to the term of “</span><a href="https://en.wikipedia.org/wiki/Temporal_difference_learning" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">temporal difference learning</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. The dopamine neuromodulator plays a critical role in the brain for this time difference learning: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">As Sutton found, reinforcement and reward must be decoupled for reinforcement learning to work. To solve the temporal credit assignment problem, brains must reinforce behaviors based on changes in predicted future rewards, not actual rewards</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. The link between natural and artificial intelligence science is beautifully illustrated with this topic: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">In 1997 Dayan and Montague published a landmark paper, coauthored with Schultz, titled “A Neural Substrate of Prediction and Reward.” To this day, this discovery represents one of the most famous and beautiful partnerships between AI and neuroscience</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Emotions emerge – through evolution - from temporal difference learning. For instance, “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Both disappointment and relief are emergent properties of a brain designed to learn by predicting future rewards”</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. Curiosity (and its associated behavior which we call “sense of humor”) is also critical to improve the performance of learning. Max Bennet gives different examples of machine learning algorithms and how they grew to solve more and more sophisticated problems (like the animals in the mazes): “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">It wasn’t until 2018 when an algorithm was developed that finally completed level one of Montezuma’s Revenge. This new algorithm, developed by Google’s DeepMind, accomplished this feat by adding something familiar that was missing from Sutton’s original TD learning algorithm: curiosity</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. Curiosity is an emotion that adds both valence and arousal to discovery and to surprise. Its us in artificial intelligence is growing – especially with games, as we shall see in the next section: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The approach is to make AI systems explicitly curious, to reward them for exploring new places and doing new things, to make surprise itself reinforcing. The greater the novelty, the larger the compulsion to explore it. When AI systems playing Montezuma’s Revenge were given this intrinsic motivation to explore new things, they behaved very differently—indeed, more like a human player.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">One explanation for this is that vertebrates get an extra boost of reinforcement when something is surprising</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. This reminds me strongly of the observations made by Michio Kaku in his great book,</span><a href="https://en.wikipedia.org/wiki/The_Future_of_the_Mind" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">The Future of the Mind</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> : our curiosity and our love for surprise (two sides of the same kind) is an evolutionary trait that rewards the constant updating and improving of our mental model of the world (to follow the thinking of Yann Le Cun, to which I return in the next section). I quote here from an</span><a href="https://informationsystemsbiology.blogspot.com/2015/06/strong-artificial-intelligence-is.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">earlier blog post</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> : “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">A great illustration of this idea proposed by Mikio Kaku is the sense of humor, which may be described as our ability to appreciate the difference between what we expect (the outcome of our own world model simulation) and what happens. This is how magic tricks and jokes work. Because we value this difference, we are playful creatures: we love to explore, to be surprised, to play game. Kaku makes a convincing argument that the sense of humor is a key evolution trait”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">As noticed by Max Bennet, the brains of simple animals such as fishes are still full of mysteries. AI made significant progress in computer vision through</span><a href="https://en.wikipedia.org/wiki/Convolutional_neural_network" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">convolutional neural networks</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> (CNN), but the simpler visual brain of a fish is able to do wonders without CNN: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">CNNs were inspired by the mammal visual cortex, which is much more complex than the simpler visual cortex of fish; and yet the fish brain—lacking any obvious hierarchy or the other bells and whistles of the mammalian cortex—is still eminently capable of solving the invariance problem. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">… </span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">How the fish brain does this is not understood. While auto-association captures some principles of how pattern recognition works in the cortex, clearly even the cortex of fish is doing something far more sophisticated”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">2.3 Simulating</span></span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The third breakthrough in the evolution of natural intelligence occurred around one hundred million years ago when our “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">four-inch-long mammal ancestors</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">” became able to make mental simulations, both of stimuli and actions, developing subregions of the cortex that would become the modern neocortex. “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">If the reinforcement-learning early vertebrates got the power of learning by doing, then early mammals got the even more impressive power of learning before doing—of learning by imagining”. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> This is another fascinating part of the book, because brain simulation is essential to who we are and how we interact with the world. As told by Max Bennet: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">You can imagine the dinner you ate last night or imagine what you will be doing later today. What are you doing when you are imagining something? This is just your neocortex in generation mode. You are invoking a simulated reality in your neocortex”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">First, it is very large in scope, the brain is able to exercise its simulation abilities on a very broad set of capabilities: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Further, if Mountcastle’s theory is correct, it suggests that the neocortical column implements some algorithm that is so general and universal that it can be applied to extremely diverse functions such as movement, language, and perception across every sensory modality</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. Second, simulation is based on the capacity to flow information both ways, from reality to model and from model to reality: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">But unlike other neural networks, it also had backward connections that flowed the opposite way—from the end to the beginning</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. This applies also to perception: we do not “simply see or hear” the real world, we match a “computer model of the world” with a flow of stimuli : “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Helmholtz suggested that much of human perception is a process of inference—a process of using a generative model to match an inner simulation of the world to the sensory evidence presented”. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> You may pause on this, it means that generative AI is not a new idea, your brain does it all the time. It is more efficient, more powerful, but also the source of biases, illusions and hallucinations: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> Indeed, the neocortex as a generative model explains more than just visual illusions—it also explains why humans succumb to hallucinations, why we dream and sleep, and even the inner workings of imagination itself</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">To follow up of the pattern presented in the previous section, of constant updating of our “world model”, “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The neocortex is continuously comparing the actual sensory data with the data predicted by its simulation. This is how you can immediately identify anything surprising that occurs in your surroundings</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. Interestingly, I also learned reading this book that you cannot flow in both directions: if you start to imagine, it blocks the capacity to process outside stimuli … so if you are in deep thinking and creative mode, you cannot listen to other people (or to your wife, in my case) at the same time. Something that I have noticed (and that my family has reproached me for decades) … but now I know why </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">😊</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> This constant interplay between what we model/predict and what we see explains the power of narratives: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">This is also why generative models are said to try to explain their input—your neocortex attempts to render a state of the world that could produce the picture that you are seeing (e.g., if a frog was there, it would “explain” why those shadows look the way they do)”. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">What I find fascinating here is that neurosciences give a powerful explanation about what Nassim Taleb calls the “</span><a href="https://www.listeningpartnership.com/insight/about-narrative-fallacy-and-how-to-stop-it-running-your-life/#:~:text=As%20Taleb%20himself%20said%3A,Explanations%20bind%20facts%20together." style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">narrative fallacy</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">” (trying to build a model from meaningless input).</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The beauty of this book is that Max Bennet tells us how neuroscientists have been able to confirm this happening in mammals’ brains: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">How groundbreaking this was cannot be overstated—neuroscientists were peering directly into the brain of a rat, and directly observing the rat considering alternative futures”. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> This third breakthrough is what separates us mammals from other animals such as fish: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">This was the gift the neocortex gave to early mammals. It was imagination—the ability to render future possibilities and relive past events—that was the third breakthrough in the evolution of human intelligence</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. For lack of space, I will not reproduce the detailed explanation about the aPFC (</span><a href="https://pubmed.ncbi.nlm.nih.gov/34363014/" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">agranular prefontal cortex</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">) and how it helps the rat to make better choices by simulating the possible consequences of his choices (e.g., when navigating a maze). In the metaphor of the adversarial training explained earlier, the aPFC trains the basal ganglia which is the place where reinforcement learning occurs: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The emergent effect of all this is that the aPFC vicariously trained the basal ganglia that left was the better option … This is consistent with the idea that the neocortex enables even simple mammals such as rats to vicariously simulate future choices and change their behaviors based on the imagined consequences</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. Frontal neocortex main four functions are attention, working memory, executive control and planning. These functions are controlled by the aPFC because they are different manifestations of our brain performing a simulation to optimize a decision: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> Without a neocortex to pause and vicariously consider options, the only way lizards learn this task is through endless real trial and error. In contrast, rats learn to inhibit their hardwired responses much more rapidly, an advantage that disappears if you damage a rat’s aPFC”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Imagination and simulation support</span><a href="https://en.wikipedia.org/wiki/Counterfactual_thinking" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">counterfactual reasoning</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, which is critical to understanding causality. This means that simulation offers a new set of tools to build a causality model of the world that is richer and deeper that what could be learned with the only application of reinforcement learning: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">What fish are missing is the ability to learn from counterfactuals. A counterfactual is what the world would be now if you had made a different choice in the past”</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. This brings us to the seminal book of</span><a href="https://en.wikipedia.org/wiki/Judea_Pearl" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Judea Pearl</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, “</span><a href="https://en.wikipedia.org/wiki/The_Book_of_Why" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">The Book of Why</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”, which is have briefly commented in an old blog post about “</span><a href="https://informationsystemsbiology.blogspot.com/2019/04/hunting-for-causality-in-short-time.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">hunting for causality</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”, as said by Max Bennet, without counterfactuals , there is no way to distinguish between causation and correlation … “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Causation is constructed by our brains to enable us to learn vicariously from alternative past choices”. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> This also leads to the distinction between</span><a href="https://www.baeldung.com/cs/ai-model-free-vs-model-based" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">model-free and model-based learning</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. Reinforcement learning does not require a causal world model to operate, they grow through experience a reward model of stimuli to actions: “ </span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Most of the reinforcement learning models employed in modern technology are model-free. The famous algorithms that mastered various Atari games and many self-driving-car algorithms are model-free”. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Another way to say it is that the machine learning code that made Demis Hassabis famous because it became able to play arcade games at a super-human level achieved this without “understanding the rules of the game that it was playing”, that is without a causal model of the game (the ball, the bricks, the rebounds, etc.). The</span><a href="https://www.nature.com/articles/s41598-022-05567-3" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">duality between model-based and model-free decision-making methods</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> shows up in different forms across different fields. In animal psychology, this same duality is described as goal-driven behavior and habitual behavior. And in behavioral economics, as in</span><a href="https://en.wikipedia.org/wiki/Daniel_Kahneman" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Daniel Kahneman</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">’s famous book</span><a href="https://en.wikipedia.org/wiki/Thinking,_Fast_and_Slow" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Thinking, Fast and Slow</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, this same duality is described as “system 2” (thinking slow) versus “system 1” (thinking fast).</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">2.4 Mentalizing</span></span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The fourth breakthrough that is identified by Max Bennett is called “Mentalizing”, which is the ability to model one’s mind, and consequently the mind of one’s neighbors. He sees this capacity as emerging sometime around ten to thirty million years ago, when new regions of neocortex evolved in early primates that build a reflective model of older brain capabilities. This idea that the primate neocortex is associated the socializing capabilities of primates is famously linked to</span><a href="https://en.wikipedia.org/wiki/Robin_Dunbar" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Robin Dunbar</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. He was the first to notice a correlation between the size of primate brains and the size of their social networks: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">This correlation has been confirmed across many primates: the bigger the neocortex of a primate, the bigger its social group”</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. The famous “</span><a href="https://en.wikipedia.org/wiki/Dunbar%27s_number" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Dunban number</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">” – commonly estimated at 150 meaningful and rich social connections for a human – is quoted everywhere, including in my own</span><a href="https://organisationarchitecture.blogspot.com/2008/11/dix-ides-sur-la-structure-des-rseaux.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">blog posts</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. After the breakthrough of simulation, this is both a breakthrough of reflection (building a model of oneself) and a the breakthrough of “</span><a href="https://en.wikipedia.org/wiki/Theory_of_mind" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">theory of mind</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">” : “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">This act of inferring someone’s intent and knowledge is called “theory of mind”—so named because it requires us to have a theory about the minds of others. It is a cognitive feat that evidence suggests emerged in early primates. And as we will see, theory of mind might explain why primates have such big brains and why their brain size correlates with group size</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. This “cognitive feast” is allowed by the extension of the prefrontal cortex of primates: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">prefrontal cortex becomes uniquely active during tasks that require self-reference, such as evaluating your own personality traits, general self-related mind wandering, considering your own feelings, thinking about your own intentions, and thinking about yourself in general</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. This prefrontal cortex extension is explained by the capacity to trigger neurons that are associated with an action when we see others doing this action: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> the neurons in the premotor and motor areas of a monkey’s neocortex—those that control a monkey’s own movements—not only activated when they performed those specific fine motor skills, but also when they merely watched others perform them. Rizzolatti called these “mirror neurons.”</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. I will let you deep dive into the fascinating topic of mirror neurons by reading the book, there is still much that is unexplained and there are many competing theories about the actual functioning.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">To help you visualize the content of this blog post, I have borrowed one of the great illustrations by Rebeca Gelenter from the book. These illustrations are a huge contribution to Max Bennet’s book and one more reason why you should get your own copy. As noted by the author, these illustrations and explanations are a crude abstraction of the reality – “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">We are in abstract land here—this is hardly a detailed algorithmic blueprint for how to build an AI system with theory of mind. But the idea of bootstrapping theory of mind by first modeling one’s own inner simulation, of modeling yourself to model others, provides an interesting waypoint</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">” – but they are definitely useful.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ9nOc4Ai3nEBwh2ZCjfI0DgoCRZOKnFP9eWRVkys5xVrC_eZdDreYtmKaPlQJDQpa5mhAYez3xiVzeofeETf1bzvOrOC5f-uKi32lsGb1wNZRzgZUUi_No5U2e7j01egevZIc_tPAHcvXZO9zKqPYFiRy14pG56Lerv343-sYvCQ5l0lxqeWhS-OYmFY/s907/Gelenter.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="791" data-original-width="907" height="558" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ9nOc4Ai3nEBwh2ZCjfI0DgoCRZOKnFP9eWRVkys5xVrC_eZdDreYtmKaPlQJDQpa5mhAYez3xiVzeofeETf1bzvOrOC5f-uKi32lsGb1wNZRzgZUUi_No5U2e7j01egevZIc_tPAHcvXZO9zKqPYFiRy14pG56Lerv343-sYvCQ5l0lxqeWhS-OYmFY/w640-h558/Gelenter.jpg" width="640" /></a></span></div><span style="font-family: verdana;"><br /></span></span><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">This capability of reflective modeling of our own, and others, goals and thoughts is critical for the AI systems of the future, as pointed out by Max Bennett : “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">If we want AI systems and robots that can live alongside us, understand the type of people we are, deduce what we don’t know that we want to know, infer what we intend by what we say, anticipate what we need or want before we tell them, navigate social relationships with groups of humans, with all of their hidden rules and etiquettes—in other words, if we want true humanlike AI systems, theory of mind will undeniably be an essential component of that system</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. Max Bennett then tells the story of Dean Pomerleau and Chuck Thorpe developing</span><a href="https://www.theverge.com/2016/11/27/13752344/alvinn-self-driving-car-1989-cmu-navlab" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">ALVINN</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, an AI system for autonomous driving. After trying to let the system learn by itself, the scientist moved to active teaching, where a human driver would let the machine drive but correct the steering wheel if a mistake was noticed. “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">This strategy of active teaching worked fantastically. When only directly copying driving (like ALVINN was trained), Ross’s AI system was still crashing cars after a million frames of expert data. In contrast, with this new strategy of active teaching, his AI system was driving almost perfectly after only a handful of laps”. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The development of prefrontal context, social skills and neuron mirrors have helped primate to develop another trait of mentalizing, which is to learn very quickly through imitation. In the conclusion of the book, Max Bennet summarized the three traits of the “mentalizing” breakthrough as follows:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"></p><ul><li><span style="font-family: verdana; text-align: left; text-indent: -18pt; white-space-collapse: preserve;">Theory of mind: inferring intent and knowledge of others.</span></li><li><span style="font-family: verdana; text-align: left; text-indent: -24px; white-space-collapse: preserve;">Im</span><span style="font-family: verdana; text-align: left; text-indent: -24px;">itation learning: acquiring novel skills through observation.</span></li><li><span style="font-family: verdana; text-align: left; text-indent: -24px;">Anticipating future needs: taking an action now to satisfy a want in the future, even though I do not want it now.</span></li></ul><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">This third capability is something that differentiate primates versus other mammals: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Fascinatingly, squirrel monkeys learn to select the low treat option, while rats continue to select the high treat option. Squirrel monkeys are capable of resisting the temptation to have treats now, in anticipation of something—water—that they don’t even want yet</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. This third capability is also illustrated with another AI example, that of Pieter Abbeel, Adam Coates, and Andrew Ng who developed an AI system to autonomously fly a remote-controlled helicopter. They found that the most effective strategy was to separate the learning of the lower level of behavior, that of flying the helicopter, with the learning of the higher level concepts, such as properly flying the helicopter : “T</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">his technique is called “inverse reinforcement learning” because these systems first try to learn the reward function they believe the skilled expert is optimizing for (i.e., their “intent”), and then these systems learn by trial and error, rewarding and punishing themselves using this inferred reward function”</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. Inverse reinforcement learning is an extension of the adversarial pattern of two layers of learning that we mentioned earlier, and a key component of RLHF (</span><a href="https://www.theaidream.com/post/reinforcement-learning-from-human-feedback" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">reinforcement learning with human feedback</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">), the technique that helped OpenAI grow ChatGPT from GPT.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"></p><h3 style="text-align: left;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">2.5 Language</span></span></h3><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><br /><div style="text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;"> </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">The last breakthrough, the one that separates Homo Sapiens from our fellow primates, is that of articulated language, the capacities of naming and grammar, of </span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">“tethering our inner simulations together to enable the accumulation of thoughts across generations</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">”. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">As noticed by many other authors, language is what allows our thoughts to travel in space and time and to develop collective intelligence to a different level from what organized group of other animals may do. In the words of Max Bennet: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">The real reason why humans are unique is that we accumulate our shared simulations (ideas, knowledge, concepts, thoughts) across generations. We are the hive-brain apes. We synchronize our inner simulations, turning human cultures into a kind of meta-lifeform whose consciousness is instantiated within the persistent ideas and thoughts flowing through millions of human brains over generations. The bedrock of this hive brain is our language”</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">. It is not easy to understand what, in our brain, gives humans this unique capability. The author recalls the neuroscience history of trying to locate and to understand the functioning of the brain while processing language. This mystery has not been resolved yet: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">What is unique in the human brain is not in the neocortex; what is unique is hidden and subtle, tucked deep in older structures like the amygdala and brain stem. It is an adjustment to hardwired instincts that makes us take turns, makes children and parents stare back and forth, and that makes us ask questions</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">”. There is a long discussion in the book about the relationship between language, simulation and imagination and the importance of narratives and gossip: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">What is the most natural activity we use language for? Well, we gossip. We often can’t help ourselves; we have to share moral violations of others, discuss relationship changes, keep track of dramas. Dunbar measured this—he eavesdropped on public conversations and found that as much as 70 percent of human conversation is gossip</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">”.</span></div></span></span><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The last section of this fifth part deals with LLM (<a href="https://en.wikipedia.org/wiki/Large_language_model">large language models</a>). Although LLMs have been around for a while – Max Bennet quotes the example of Jeffrey Ellman : “ </span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">In the 1990s, a linguist and professor of cognitive sciences at UC San Diego, Jeffrey Elman, was one of the first to use neural networks to try to predict the next word in a sentence given the previous words</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">” – it is clear, as we noticed in the introduction and as is underlined in this book, that we are seeing a phenomenal acceleration of their capabilities :” </span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Language models have been around for a long time, but LLMs like GPT-3 are unique in their almost inconceivable scale”. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The book was written when GPT4 was just being released, and the author notices that GPT4 has fixed many of the shortcomings of its predecessor – “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Amazingly, each question that I designed in this chapter to demonstrate a lack of common sense and physical intuition in GPT-3 was answered flawlessly by GPT-4</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”, but there is more to LLM growth, there are also many other mechanisms at play, such as Chain of Thoughts, as we shall see briefly in the next section “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">By training GPT-4 to not just predict the answer, but to predict the next step in reasoning about the answer, the model begins to exhibit emergent properties of thinking, without, in fact, thinking—at least not in the way that a human thinks by rendering a simulation of the world</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. Max Bennett gives some interesting examples of systems that are trained by playing against themselves: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">TD-Gammon was trained by playing against itself. TD-Gammon always had an evenly matched player. This is the standard strategy for training reinforcement learning systems. Google’s AlphaZero was also trained by playing itself. The curriculum used to train a model is as crucial as the model itself”.</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> He concludes the book with the fact that LLMs are an incredible step forward, and a building block for the future AI systems to come: “ </span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">I think most would agree that the humanlike artificial intelligences we will one day create will not be LLMs; language models will be merely a window to something richer that lies beneath”</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"></p><h2 style="text-align: left;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">3. Hybrid AI of Tomorrow</span></span></h2><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">This second section proposes a few thoughts about the future of AI based on some ideas that were exposed in this book. It will be much shorter, since this blog post is long enough already, and is more offered as “food for thoughts” than a self-contained essay. The general theme here is the combination of different AI techniques (heuristics, algorithms, or meta-heuristics) and the important role that LLM can play in such hybrid combinations, which should not come as a surprise after reading Max Bennett: “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">In the human brain, language is the window to our inner simulation. Language is the interface to our mental world. And language is built on the foundation of our ability to model and reason about the minds of others—to infer what they mean and figure out exactly which words will produce</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><br /></span></span></p><h3 style="text-align: left;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"> 3.1 LLMs as Software components</span></span></h3><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">As was explained in section 2.5, LLMs should not be seen as “the future of AI”, but definitely as a key component. This component view helps to emphasize that we see constant progress on three dimensions (as mentioned in the introduction</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"></p><ul style="text-align: left;"><li><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">LLM are getting more powerful : they are getting bigger (although the billions of parameters of the larger models, such as</span><a href="https://the-decoder.com/gpt-4-architecture-datasets-costs-and-more-leaked/" style="font-family: verdana; text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">GPT4</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">,</span><a href="https://www.linkedin.com/pulse/gemini-ultra-googles-new-ai-language-model-gpt-4-tests-saravanan-ccqoc/" style="font-family: verdana; text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Gemini Ultra</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;"> or</span><a href="https://nikolaroza.com/anthropic-claude-statistics-facts-trends/" style="font-family: verdana; text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Claude3</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;"> are not always shared or exact), they support large</span><a href="https://blog.google/technology/ai/google-gemini-next-generation-model-february-2024/#performance" style="font-family: verdana; text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">contexts</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;"> and their structure become more complex (a federation of smaller LLMs). It started with GPT4 and evolved into MoE (</span><a href="https://en.wikipedia.org/wiki/Mixture_of_experts" style="font-family: verdana; text-decoration-line: none; text-indent: -18pt;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Mixture of Experts</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">) a pattern used both by</span><a href="https://www.unite.ai/mistral-ais-latest-mixture-of-experts-moe-8x7b-model/" style="font-family: verdana; text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Mistral</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;"> and Gemini. This competition (</span><a href="https://the-decoder.com/anthropics-claude-3-llm-challenges-gpt-4-with-improved-intelligence-and-visual-capabilities/" style="font-family: verdana; text-decoration-line: none; text-indent: -18pt;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">see the recent performance of Claude 3 Opus</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">) is pushing openAI to accelerate the release of the long-awaited (because testing results have transpired)</span><a href="https://medium.com/@yash9439/gpt5-everything-we-know-about-it-0eb889f66a06" style="font-family: verdana; text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">GPT5</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">.</span></li><li> <span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">The techniques to get more value from a given LLM, through prompting, fine-tuning or mixed-embedding prompting (see below about RAG) are improving constantly. It is an “orthogonal progress” axis since it means that with the same LLM, we can get answers which are more and more relevant to a specific domain.</span></li><li> <span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">LLMs may be used as Lego bricks and combined with other techniques, including other forms of AI. The CoT (</span><a href="https://learnprompting.org/docs/intermediate/chain_of_thought" style="font-family: verdana; text-decoration-line: none; text-indent: -18pt;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Chain Of Thought</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">) pattern, where another AI algorithm breaks down a larger task into smaller tasks is a good illustration. When playing with advanced gen AI (GPT4 or Gemini,</span><a href="https://sites.google.com/view/claire4/getting-started/cool-samples" style="font-family: verdana; text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">as I do in this column</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">) logical or numerical puzzles, one can see the power of CoT at work.</span></li></ul><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">Here, for lack of time, I am focusing on LLMs but there are many other foundation models that work on images, videos or other form of time-dependent materials such as time series.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Sometimes, these different approaches seem to overlap. For instance to add a body of domain specific knowledge to an existing LLM, should one fine-tune, use a large context (leveraging the fact that, as mentioned earlier, new LLMs accept very large contexts) or use RAG (</span><a href="https://blogs.nvidia.com/blog/what-is-retrieval-augmented-generation/" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">retrieval Augmented generation</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">) ? As</span><a href="https://www.pinecone.io/learn/retrieval-augmented-generation/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">explained in this blog post</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, RAG is an architecture that provides the most relevant and contextually-important proprietary, private or dynamic data to your LLM when it is performing tasks to enhance its accuracy and performance, using an</span><a href="https://deepchecks.com/glossary/llm-embeddings/#:~:text=The%20What%20and%20Why%20of%20LLM%20Embeddings&text=Essentially%2C%20they're%20mathematical%20representations,knowledge%20in%20a%20single%20vector." style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">embedding</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> model to translate your private data into vectors that the LLM can use in a customized prompt. What is fascinating with RAG is that every month a new extended technique is proposed that we could see as “</span><a href="https://cobusgreyling.medium.com/t-rag-rag-fine-tuning-entity-detection-9a5aaa01e437" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">enhanced RAG</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”, with ontologies,</span><a href="https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">knowledge graphs</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> or other forms of semantic networks. Here again, we see that not only are LLM powerful tools, but they can easily be combined (through the sharing of embeddings) with other knowledge management techniques. For instance,</span><a href="https://www.sciencedirect.com/science/article/pii/S2405959518300985#:~:text=Ontology%20based%20knowledge%20representation%20describes,%2C%20reuse%2C%20capturing%20and%20communication." style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">ontologies</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> have been developed for many decades as semantic hierarchies that represent the synonyms and inclusion relationships between terms. For plain English, the corpus used to train the LLMs is large enough to capture these relations, but this is not necessarily the case for a domain-specific language.</span><a href="https://enterprise-knowledge.com/the-role-of-ontologies-with-llms/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Combining LLM with ontologies</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> is a way to improve the RAG search capabilities, as shown with</span><a href="https://dl.acm.org/doi/fullHtml/10.1145/3587259.3627571" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">the OLaLa system</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">with only a handful of examples and a well-designed prompt, it is possible to achieve results that are on par with supervised matching systems which use a much larger portion of the ground truth</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. Ontologies are one kind of tree-structured</span><a href="https://en.wikipedia.org/wiki/Knowledge_graph" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">knowledge graphs</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, there are many way to build and use the “semantic net” (to use a term form the 80s) structure of conceptual knowledge. In the same manner,</span><a href="https://neo4j.com/blog/unifying-llm-knowledge-graph/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">knowledge graphs may be combined with LLMs</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> and with RAG. This</span><a href="https://www.wisecube.ai/blog/combining-large-language-models-and-knowledge-graphs/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">article</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> shows how knowledge graphs may be used in the domain of medical data.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"></p><div style="text-align: justify;"><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The metaphor of LLM as a software component with API works both ways. The LLM can be called “as slave” from other systems, which is what happens with “</span><a href="https://michelingroup-my.sharepoint.com/personal/yves_caseau_michelin_com/Documents/Documents/Talks/-%09https:/www.promptingguide.ai/techniques/cot" style="font-family: verdana; text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">chain of thoughts</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">” (I refer you to this great post about</span><a href="https://www.mercity.ai/blog-post/guide-to-chain-of-thought-prompting" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">how to use chain-ot-thoughts prompting</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">). In a reciprocal way, the LLM can call other systems to get extra help. The most famous example is the</span><a href="https://michelingroup-my.sharepoint.com/personal/yves_caseau_michelin_com/Documents/Documents/Talks/-%09https:/writings.stephenwolfram.com/2023/05/the-new-world-of-llm-functions-integrating-llm-technology-into-the-wolfram-language/" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">LLM-to-Wolfram-Alpha coupling</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, which I have mentioned earlier in this blog. Another example which is more and more common is when you ask a combinatorial question to GPT4 or Gemini and the LLM produce the python code to find the answer and then run the code (see</span><a href="https://sites.google.com/view/claire4/getting-started/cool-samples" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">the previously mentioned column</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> and the</span><a href="https://en.wikipedia.org/wiki/Knapsack_problem" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">knapsack</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> example). The fact that LLMs can work in a federation is precisely what the popularization of the</span><a href="https://arxiv.org/abs/1701.06538" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Mixture of Expert</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> approach means.</span></div><span style="font-family: verdana;"><div style="text-align: justify;"><span style="white-space-collapse: preserve;"><br /></span></div><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><div style="text-align: justify;"><br /></div></span></span><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">3.2 Augmented Simulation, Digital Twin and Hybrid Agents</span></span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The second key idea from Max Bennett’s book is that intelligence requires simulation, causality and counter-factual reasoning, which has been a key claim of Yann Le Cun for many years. The use of simulation and</span><a href="https://informationsystemsbiology.blogspot.com/2020/03/re-inventing-product-from-industry-40.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">digital twins</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> correspond precisely to the construction and use of a causal model of the world. There is a continuum of techniques in the world of artificial intelligence to model causality, from Bayesian inference to</span><a href="https://causalitylink.com/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Causality links</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. The necessity of causal models to perform advanced and innovative tasks does not take away the fact than inductive models (data-driven) can do wonders in many cases. The following figure is a slide taken from a presentation written at the time when DeepMind announced</span><a href="https://deepmind.google/discover/blog/graphcast-ai-model-for-faster-and-more-accurate-global-weather-forecasting/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">the great forecasting results of its weather model based on deep learning, GraphCast</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. When a problem is stable enough, experience shows that deep learning is able to make predictions both accurately and with better speed than “traditional” model-based approaches (such as finite-element simulations). However, these inductive models are good at reproducing “truths from the past”, not at exploring completely new situations. This is where causal models are required, that separates causal links that keep being accurate in “the new world” from correlations that are no longer relevant. What this slide says is that the two approaches should be opposed but combined. This is what we do at Michelin when we use deep learning to accelerate the performance of finite element simulations.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXr93936cQpXOg6mlwJBerVCA4Ag_Yp3kuXqiPoL_GiPJDvqSnaMO8tdhKhl-Z7rFHUE5itP-3CW9xNbYlxdIsR1iqMk08Zb4yFY1BS0wAi-8HIepsuihOEgOicjcB67yU1KufdXCo_OlgT9KuEUObpDBubJmeZJfWve4URGoZJZPOYPac66P-3rodmCY/s1386/DTvsML.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="779" data-original-width="1386" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXr93936cQpXOg6mlwJBerVCA4Ag_Yp3kuXqiPoL_GiPJDvqSnaMO8tdhKhl-Z7rFHUE5itP-3CW9xNbYlxdIsR1iqMk08Zb4yFY1BS0wAi-8HIepsuihOEgOicjcB67yU1KufdXCo_OlgT9KuEUObpDBubJmeZJfWve4URGoZJZPOYPac66P-3rodmCY/w640-h360/DTvsML.png" width="640" /></a></span></div><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"><br /></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">I have quoted many times Yann Le Cun when he says that forecasting is the true measure of intelligence (from a practical perspective, which is very much what Max Bennett says). I definitely agree about the importance of common sense, causal models and simulation of an “inner world model” as a foundation for the next generation of artificial intelligence. Does it mean, as is</span><a href="https://www.cio-online.com/actualites/lire-pour-yann-lecun-l-ia-generative-est-une-impasse-15465.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">reported about Yann Le Cun in this article</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, that generative AI as we know it is a dead end ? The book from Max Bennett helps to understand the criticism made by Yann Le Cun to generative AI, and there seems to be a consensus (recall the quote made at the end of Section 2) that we need more than LLMs to build the” AI of the future”. This being said, there are three reasons to be less affirmative about the fate of LLMs:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"></p><ul style="text-align: left;"><li><span style="text-indent: -18pt; white-space-collapse: preserve;"><span style="font-family: verdana;">LLMs are pieces of the puzzle and can be assembled into powerful hybrid combinations. As represented by breakthrough #5, there is a good reason to believe that language will continue to play a key role into this hybrid combination (cf. the link between language and imagination).</span></span></li><li><span style="font-family: verdana;">LLMs have emerging properties when used in a puzzle, as shown by some of the progresses with MoE, CoT or extended RAG. This is one of the most interesting claims<a href="https://medium.com/@yash9439/gpt5-everything-we-know-about-it-0eb889f66a06" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">about the future GPT5</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">: “</span><span style="background-color: white; color: #242424; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">An apparent focus for GPT-5 is the incorporation of extended thinking capabilities. OpenAI aims to enable the model to lay out reasoning steps before solving a challenge, with internal or external checks on each step’s accuracy. This represents a significant shift towards enhancing the model’s reliability and reasoning prowess</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">”.</span></span></li><li><span style="font-family: verdana;">The effect of scale is unknown (and not understood properly yet). True, LLMs had been around for a while, but nobody expected the emerging change of capabilities when the scale grew over 10B parameters. As the search for super-massive LLMs continues, it would be difficult to form an educated guess of what these new foundation models will be able to do.</span></li></ul><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Hybridization of AI is not a new idea. It was the backbone of the</span><a href="https://informationsystemsbiology.blogspot.com/2018/04/artificial-intelligence-applications.html" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">NATF report on AI</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, and a common theme of my blog posts (drawing my inspiration from DeepMind and the</span><a href="https://deepmind.google/discover/the-podcast/" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">great podcast from Hannah Fry</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> ). However, it is clearly an idea that is getting more traction. I strongly recommend reading this article, “</span><a href="https://bair.berkeley.edu/blog/" style="font-family: verdana; text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">The Shift from Models to Compound AI Systems</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”, to get an updated view of what forms hybrid AI can take. A classical form of hybridization in AI is to</span><a href="https://botpress.com/blog/what-is-an-ai-agent" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">use communities of agents</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, allowing to decline different forms and parametrization of an AI technique as a federation of agents who collaborate on a common goal. which</span><a href="https://promptengineering.org/what-are-large-language-model-llm-agents/" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">applies perfectly to LLM as well</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. LLM agent has become a buzzword, that can designated the addition of LLM capability to an existing AI agent (electronic games is a field where AI agents have been used for a long time) of the embedding of an LLM and its context, parameters and techniques such as extended RAG to specialize on a specific time. In that second case, LLM agents are a way</span><a href="https://developer.nvidia.com/blog/introduction-to-llm-agents/" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">to specialize LLMs for specific tasks</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, for better efficiency and with the further possibility to use them as a federation to achieve higher-level tasks. In the first case, agents are used to combine LLMs with other capabilities such as planning or action, especially through the medium of code generation (recall the example of LLMs using python programming as a problem-solving technique). You should take a look that this great article</span><a href="https://www.wiz.ai/how-llm-agents-are-unlocking-new-possibilities/" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">“</span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">How LLM Agents are Unlocking New Possibilities”</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> to see that “</span><span style="font-family: verdana; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">LLM agents can proactively call external APIs or vector stores for additional information, based on dynamic decision-making. By calling different tools and using semantic search and vector databases, LLMs agents can provide precise answers according to search results. This also avoids common LLM issues such as inaccuracy and hallucinations</span><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”.</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">As mentioned in the introduction, the speed at which the technology is evolving, and the richness of this evolution – as shown with the three axis that we described in Section 3.1 – may be overwhelming. It is true that one of our challenges as technology professionals is to keep fluent with the</span><a href="https://informationsystemsbiology.blogspot.com/2023/05/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">AI toolbox</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, but this is better done in a “test and learn” approach rather than trying to read everything that is published. It is also important to note that not all progresses are relevant to every use case. When I manage “genAI” as a CIO, I tend to separate between four groups of use cases:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-indent: 0px;"></p><ol style="text-align: left;"><li><span style="text-indent: -18pt; white-space-collapse: preserve;"><span style="font-family: verdana;">"<b>Whatever Copilot</b>”: how to get the best from the constant flow of genAI assistants. In the make vs buy vs rent, this is clearly a rent (SaaS) choice, where the main focus is adoption, training and proper sourcing at the right cost.</span></span></li><li><span style="font-family: verdana;">“<b>Augmented software development</b>” : How to leverage<a href="https://www.xda-developers.com/5-things-gemini-15-do-10-couldnt/#it-can-analyze-significant-amounts-of-data" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">genAI for software engineering</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">, from writing code to improving the software quality (testing, security, technical debts etc.). The impact of generative AI on SW engineering is hard to overestimate since we are entering the</span><a href="https://www.forbes.com/sites/forbestechcouncil/2023/04/20/what-the-potential-of-software-20-means-for-tech-leaders/?sh=2dd8b2ca5131" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Software 2.0</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;"> world where programmers will train AI to grow source code.</span></span></li><li><span style="font-family: verdana;">“G<b>enerative AI Customer dialog</b>”: how to develop the next generation of “chat bots” (and other forms of personalized content) using the language fluency provided by LLMs. Here, the sensitivity (see the<a href="https://www.forbes.com/sites/marisagarcia/2024/02/19/what-air-canada-lost-in-remarkable-lying-ai-chatbot-case/?sh=4cdb6878696f" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Air Canada story</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">) and risk management requires hybrid (multiple-tier) architectures (to separate intent / answer / checking) and a mixture of make/buy or rent.</span></span></li><li><span style="font-family: verdana;">“<b>Proprietary Knowledge Engineering</b>”, where a company wants to apply the power of LLMs and RAG to its own proprietary information without risking its IP. In that last case, the “make” part is more important, and hosting and cybersecurity are primary concerns. The goal is not to reproduce the state-of-the-art<a href="https://paperswithcode.com/sota/multi-task-language-understanding-on-mmlu" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">MMLU results</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;"> of the best, but to ensure the full protection of the company’s know-how while leveraging the knowledge management wonders of Section 3.1.</span></span></li></ol><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt;"></p><div style="text-align: justify;"><span style="font-family: verdana; white-space-collapse: preserve;">Without getting into details for lack of space, the sensitivity to new LLM techniques is quite different for each of those four boxes. In the first case, the topic to follow is prompt engineering and how to get the most value from the outside LLM services. In the second case, large contexts, because they support ingesting large source codes as an input, are an interesting development to follow. The third case is the perfect domain for applying “extended RAG” with LLMs that are used as a service from APIs. Because the key players such as OpenAI or Google are opening their toolbox with an ever-increasing set of APIs to perform user dialog, the skill of LLM-based API mashing is critical. The fourth set of use case is where the improved set of tools for tuning an open-source LLMs to your company’s data makes a lot of sense (fine-tuning, enriched RAG, CoT and larger contexts as they become available).</span></div><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><br /></span></span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">4. Conclusion</span></span></h2><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">It is time to conclude this long blog post, once I have restated that “A brief history of intelligence” is one of my favorite books and that you should really get your own copy. The first obvious conclusion from this post is that we will see LLMs as ubiquitous components of AI systems in the future, because of the importance of breakthrough #5 in the words of Max Bennett. LLMs will not only be part of systems specialized in knowledge and dialog, but they will also bring both interaction capabilities and knowledge embedding to many other digital and information systems.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">The second conclusion that I draw from this book, based on breakthroughs #3 and #4, is that the future will be invented with digital twins that combine advanced simulation with reflective world modeling capabilities. Simulation is the natural approach to develop and to use causal models, which we need to advance the frontiers of artificially intelligent systems. Breakthrough #4 lightens the path towards many forms of AI that look at capturing role playing, game theoretical decision making and intelligent agent communities (a natural way to develop a “society of mind” approaches).</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span></p><br />Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com0tag:blogger.com,1999:blog-438942112364524044.post-56741115602313912462023-11-25T23:40:00.000-08:002023-11-25T23:40:52.239-08:00To Keep One’s Promises in a VUCA Word<h2 style="text-align: left;"><span style="font-family: verdana;"> </span></h2><h2 style="text-align: left;"><span style="font-family: verdana;"><span style="font-weight: 700; white-space-collapse: preserve;">1. Introduction</span></span></h2><span id="docs-internal-guid-aff3ac2a-7fff-02ae-1e5f-a841dae913af"><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">This blog post is a return to what I used to do when I started my blogs, that is sharing a few thoughts (“musing”) on a specific topic, as opposed to writing longer texts that are either full essays or book reviews. The topic of the day is </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">the difficulty of keeping promises</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> – such as meeting SLA: </span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Service Level Agreements</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, defined as lead time – </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">in a</span><a href="https://en.wikipedia.org/wiki/VUCA" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">VUCA</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"> world</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, volatile, uncertain, complex and ambiguous. This difficulty stems both from the complexity of the object that is being promised (that is, knowing beforehand how much effort, time and resources will be necessary) and the complexity of the environment (all the concurrent pressures that make securing the necessary efforts and resources uncertain, volatile, and complex).</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"></p><div style="text-align: justify;"><span style="font-family: verdana; white-space-collapse: preserve;">This is a topic that stays in my top of mind, both professionally and personally, since we are constantly exposed to the difficulties that companies experience to keep their promises to their customers. While preparing this blog post, I have a wealth of personal examples in mind. This week, I tried to get a birthday package delivered to my wife with one of the well-known flower delivery companies. Not only the delivery was late, half of it missing, but they simply lied (telling me that the delivery had occurred when it had not!) rather than owning their mistake. Two years ago, I ordered online a large fridge from one of our largest France appliances brands and started an amazing string of failed deliveries with a complete absence of warnings or ability to be reached (trying to solve a problem when the only channel is emails that get answered in 24 hours is excruciating). Even one of the best-known furniture brands in the world failed me miserably when I moved to Clermont a couple of years ago, cancelling the sofa delivery on the very day I had driven from Paris, with zero warning. What I find striking as a customer is not simply that such companies are bad at keeping their promises, but their reaction to the broken promise is appalling: they do not know what is happening, have no clue when their problem will be fixed and usually keep making further promises that are no better respected. The episode of the “refrigerator delivery” is still vivid in my time since the travel costs and lost time after three failed attempts ended costing me more money than the object itself, not to mention the anguish of waiting (all kinds, waiting for a call, for an email, for a truck to show up, ….).</span></div><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Professionally, as a software and IS executive for the past 30 years, </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">I have lived first-hand the difficulty of many information systems projects to be delivered on-time</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. Moving to agile methodologies has helped our profession to</span><a href="https://informationsystemsbiology.blogspot.com/2021/03/what-does-doing-agile-mean.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">recognize the VUCA difficulty</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, and to reduce the number of promises that could not be kept. However, the complex interdependency of projects in a company still requires orchestration roadmaps and project teams to agree and to meet on synchronization milestones. Therefore, a key skill in the digital world is to balance the necessity to manage emergence (some capacities are grown without a precise control on lead time) together with the control of continuous delivery.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">The thesis that I will explore in this blog post is that, when both the environment and the nature of the object/product/service that is being promised becomes more complex (in the full VUCA sense), we need to reduce the number of such promises, make simpler-to-understand promises (which does not mean simpler-to-deliver) and, on the opposite, make promises that are strongly binding on your resources. The most important corollary of this list is that the first thing one needs to learn in a VUCA world is to say no. However, saying no all the time, or refusing to make any promises, is not a practical solution either, so the art of the VUCA promise is also a balancing act, grounded in humility and engagement.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">This blog post is organized as follows. Section 2 looks at waiting queues, and how they are used everywhere as a demand management tools. We know this from the way our calls (or emails) are handled in call center, but this is also true of an agile backlog, which is equally managed as a (sorted) queue. The queue, such as the line queue in front of a popular pastry shop, is the oldest form of self-stabilizing demand management (you decide how long you are ready to wait based on the value you expect to get), but not necessarily the most efficient one. Section 3 looks at alternatives to manage demand in a VUCA contexts, from resource management such as Kanban to adaptative prioritization policies. I will look at different situations, including the famous “Beer Game”, that shows that resilience under a VUCA load is poorly served by complexity. Section 4 makes a deeper dive on the topic of “service classes” and how to handle them using adaptative policies. I will briefly present the approach of DDMRP (demand driven material requirement planning) as one of the leading approaches to “live with a dynamic adaptative supply chain”. There is no silver bullet, and the techniques to strengthen one’s promises should not be opposed but combined.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"></p><h2 style="text-align: left;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">2. Waiting Queues as Demand Management</span></span></h2><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><br /><div style="text-align: justify;"> We have a shortage of ophthalmologists in France (among many other medical professions), consequently it takes up to 6 months to set up an appointment in many cities. It varies a lot from one place to another, depending on the shortage’s acuteness. The ordered queue of available appointments is used to regulate the flow of requests into a regular workstream. This mechanism is self-adjusting: the waiting list acts as a deterrent, depending on the urgency and the availability of other options, each future patient accepts or declines the proposed appointment time slots. This mechanism works well to spread the “load” when irregular bursts occur. On the other hand, it does a poor job in a situation of constant shortage since everyone has to wait a long time to get an appointment (so the patient satisfaction is low) while the workload or the income of the practitioner is not improved by such a practice.</div></span></span><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">I have always been fascinated by the use of queues as demand management devices,</span><a href="https://organisationarchitecture.blogspot.com/2007/11/le-lemm-mode-demploi-lean-e-mail.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">it is the topic on my early 2007 blog post</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. Queues are used everywhere, in front of shops, museums, movie theaters because it is a simple and fair (Movie theaters have moved to pre-reservation using digital apps a decade ago). Fairness is important here, a lot of sociology work exists about how people react to queues,</span><a href="https://www.linkedin.com/pulse/queuing-across-cultures-lessons-leaders-merve-kagitci-hokamp/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">depending on their nationality and culture</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. It comes from the transparency of the process: even if you do not like it, you can see how you are managed in this process. This is the famous FCFS (</span><a href="https://www.techopedia.com/definition/23455/first-come-first-served-fcfs#:~:text=What%20Does%20First%20Come%2C%20First,the%20order%20of%20their%20arrival." style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">first come, first serve</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">) policy that has been a constant topic of attention: it is fair, but it is not efficient nor for the service provider nor for the provide. If you step back, the FCFS policy has two major shortcomings:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"></p><ul style="text-align: left;"><li style="text-align: justify;"><span style="text-indent: -18pt; white-space-collapse: preserve;"><span style="font-family: verdana;">In most cases, including healthcare practitioners, there are different priorities since the value associated with the upcoming schedule appointment varies considerably. In the case of practitioners, priority comes either from the urgency of the situation and the long-standing relationship with a patient.</span></span></li><li style="text-align: justify;"><span style="font-family: verdana;">In many cases, a customer that is refused an appointment within an “acceptable” time window may decide never to return (which is why small businesses on the street,<a href="https://www.linkedin.com/pulse/tout-pour-trouver-une-place-articles-ilf" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">try to never turn down a customer</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">). Whether this is important or not depends on the business context and the scarcity of the competing offer … obviously, this is not a big issue for ophthalmologists today. However, the problem becomes amplified by variability of the demand. If the demand is stable, the long queue is a self-adjusting mechanism to shave the excess demand. But in the case of high variability, “shaving the demand” creates oscillations, a problem that we shall meet again in the next section (due to the complex/non-linear nature of service with a queue).</span></span></li></ul><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">Consequently, healthcare practitioners find ways to escape the FCFS policy:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"></p><ul style="text-align: left;"><li style="text-align: justify;"><span style="text-indent: -18pt; white-space-collapse: preserve;"><span style="font-family: verdana;">Segmenting their agenda into different zones (which is the heart of yield management), that is having time slots that are opened to FCFS through, for instance, Doctolib (which supports a fair exposure of the agenda used as a sorted backlog), and other time slots which are reserved for emergencies (either from a medical emergency perspective or a long-time customer relationship perspective)</span></span></li><li style="text-align: justify;"><span style="font-family: verdana;">Forcing the agenda allocation to escape the FCFS, either by inserting patients “between appointments” or by shifting appointments (with or without notice). In all cases, this is a trade-off when the practitioner implicitly or explicitly misses the original promise, to maximize value.</span></li></ul><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The remainder of this post will discuss about these two options, </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">zoning</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> (reserving resources for class of services) and </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">dynamic ordering</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> policies. Both are a departure from fairness, but they aim to create value.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Unkept promises yield amplified demand, this is a well-know observation from many fields. In the world of call centers, when the waiting queue to get an agent gets too long, people drop the call and come back later. When trying to forecast the volume of calls that need to be handled, the first task of the data scientist is to reconstruct the original demand from the observed number of calls. This is also true for medical practitioners, when the available appointments are too far in the future, people tend to keep looking for other options, and drop their appointment later. This happens for restaurants or hotels as well, which is why you are now often charged a “reservation fee” to make sure that you are not edging your bets with multiple reservations. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">This is a well-known adaptive behavior: if you expect to be under-served, you tend to amplify your demand</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. This is why the title of this blogpost matters, “keeping your promises in a VUCA world”, because if you don’t, not only you degrade your customer satisfaction, but you promote an adaptative behavior that degrades even more your capacity to meet your promises in the future. This is not at all a theoretical concern, companies that let their customer place “future” orders know this firsthand, and it makes supply chain optimization even more complex. The additional complexity comes from the non-linear amplification: the more a customer is under-served, the more requests are “padded” with respect to the original need. If you manage to keep your promise, you avoid entering a phenomenon which is hard to analyze since customers react differently to this “second-guessing game”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu8pJNzX5xaiu7PglXKKsFG9E0dnuluaHgKU-HXFKdGSnimVIrrd8NmIqvPiGcuQNG9TjPUcYo90z_Uf_rgrTzs-1CYzApdyZ9feAL7zl9Pm7hUvPFFP4ThLnPYNPhnwf6jVAKWsL5zlzqd3ik4OFmvbBft51sR0x93Km0tKzjgbNeZXKfxe3PZB9zi6w/s1000/TheSocialAtom.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1000" data-original-width="666" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu8pJNzX5xaiu7PglXKKsFG9E0dnuluaHgKU-HXFKdGSnimVIrrd8NmIqvPiGcuQNG9TjPUcYo90z_Uf_rgrTzs-1CYzApdyZ9feAL7zl9Pm7hUvPFFP4ThLnPYNPhnwf6jVAKWsL5zlzqd3ik4OFmvbBft51sR0x93Km0tKzjgbNeZXKfxe3PZB9zi6w/s320/TheSocialAtom.jpg" width="213" /></a></span></div><span style="font-family: verdana;"><br />Trying to understand how your stakeholders with react to a complex situation and second-guess your behavior is a fascinating topic. In his great book, “The Social Atom”, March Buchanan recalls the social experiment of Richard Thaler,</span></span><span style="font-family: verdana;"><a href="https://medium.com/swlh/how-a-guessing-game-can-make-you-a-better-leader-63e80e09b821" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">who proposed in 1997 a game to the readers of the Financial Times</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, which consists of guessing a number "that must be as close as possible to 2/3 of the average of the other players' entries." It is a wonderful illustration of bounded rationality and second-guessing what the others will do. If players are foolish, they answer 50 (the average between 0 and 100). If they think "one step ahead," they play 33. If they think hard, they answer 0 (the only fixed point of the thought process, or the unique solution to the equation X = 2/3 X). The verdict: the average entry was 18.9, and the winner chose 13. This is extremely interesting information when simulating actors or markets (</span><a href="http://www.m-hikari.com/imf/imf-2018/1-4-2018/p/kreinovichIMF1-4-2018-2.pdf" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">allows calibration of a distribution between "fools" and "geniuses"</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">). Thaler’s game gives insights into a very practical problem: how to leverage the collective intelligence of the salesforces to extract a forecast for the next year’s sales, while at the same time, a part of variable compensation is linked to reaching next year's goal?. This is an age-old problem, but which is made much more acute in a VUCA world. The more uncertain the market is, the more sales agents’ best interest is to protect their future gain by proposing a lower estimate than what they guess. This is precisely why</span><a href="https://en.wikipedia.org/wiki/Evolutionary_game_theory" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">game theory</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> in general, and</span><a href="https://www.researchgate.net/publication/301133986_Game-Theoretical_and_Evolutionary_Simulation_A_Toolbox_for_Complex_Enterprise_Problems" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">GTES in particular</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, is necessary to understand how multiple stakeholders reacts in a VUCA context.</span></span><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span class="Apple-tab-span" style="text-wrap: nowrap;"> </span></span><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">This question of meeting your promises in a VUCA context is critical to modern software development. It is actually a common issue of software development, but the VUCA context of digital/modern software products makes it more </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">acute (I refer you to</span><a href="https://www.amazon.com/Lean-Approach-Digital-Transformation-Customer/dp/1032225017/ref=sr_1_1?crid=3J3WCNWPVPKII&keywords=The+lean+approach+to+digital+transformation&qid=1699079941&sprefix=the+lean+approach+to+digital+transformation%2Caps%2C146&sr=8-1" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">my last book</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> where I discuss why the digital transformation context makes software development more volatile and uncertain, mostly because of the central role of the user, together with the fast rate of change pushed by exponential technologies). Agile methods, with their backlogs of user stories, offer a way to adapt continuously. Before each sprint starts, the prioritization of the backlog is dynamic and is re-evaluated according to the evolution of the context (customer feedback, technology evolution, competitors’ moves, etc.). However, as soon as we look at large scale systems, some milestones have hard deadlines and should not be reshuffled dynamically. Not everything is “agile” : coordination with advertising campaign, other partners, other legacy systems require to agree on large-scale coordination (which is why large-scale agile methodologies such as</span><a href="https://informationsystemsbiology.blogspot.com/2020/05/agility-at-scale-and-lean-software.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">SAFe introduced “PI planning” events</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">). More than 15 years ago at Bouygues Telecom when developing software for set-top boxes, we introduced “clock tags” in some user stories in the backlog. Later, at AXA’s digital agency, we talked about the “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">backmap</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”, the illegitimate daughter of the roadmap and the backlog. To make this coexistence of “hard-kept promises” with a “dynamically sorted backlog” work, two principles are critically important:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"></p><ul><li><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">Do not put a clock stamp until feasibility has been proven. The only uncertainty that is acceptable in a “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">backmap</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">” is the one about resources (how much will be necessary). This means that the design thinking phase that produce the user story card for the backlog must be augmented, when necessary, with a “technical” (there is an infinite number of reasons why feasibility is questionable) “POC”, that is a proof of concept, which can be light or really complex (depending on the issue at stake).
</span></span></li><li><span style="font-family: verdana;">Do not overuse this mechanism: 30% of capacity for timed milestones is a good ratio, 50% at worst. Agility with the rest of the backlog gives you the flexibility to adapt resources to meet milestones, but only up to a point. There is no “silver bullet” here: the ratio depends on (a) the level of uncertainty (b) your actual, versus theoretical, agility.</span></li></ul><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Agile backlog is not a silver bullet for another reason: </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">it takes discipline and craftsmanship to manage and sort out the backlog</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, to balance between short-term goals such as value and customer satisfaction and longer-term goals such as cleaning the technical debt and growing the “situational potential” of the software product (capability to produce long-term future).</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"></p><div style="text-align: justify;"><span style="font-family: verdana; white-space-collapse: preserve;"><br /></span></div><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><br /><br /></span></span><p></p><h2 style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: left;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">3. Demand-Adaptative Priorities versus Kanban</span></span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">More than 15 years ago, I worked on the topic of</span><a href="https://www.sciencedirect.com/science/article/abs/pii/S1474034605000443" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">self-adaptive middleware</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, whose purpose is to implement “service classes” among business processes. In the context of EDA (event-driven architecture), the middleware routes asynchronous messages from one component to another to execute business process. Each business process has a service level agreement, which describes, among other things, the expected lead time, that is the time it takes to complete the business process from end to end. Since there are different kinds of business processes with different priorities, related to different value creation, the goal of an “adaptive middleware” is to prioritize flows to maximize value when the load is volatile and uncertain. This is a topic of interest because </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">queuing theory</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, especially the</span><a href="https://en.wikipedia.org/wiki/Jackson_network" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">theory of Jackson networks</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">, tells us that a pipe or a network of queues are variability amplifiers. A modern distributed information system with microservices can easily be seen as network of service nodes with handling queues. When observing a chain of queues submitted to a highly variable load, this variability can be amplified as it moves from one a station to another, something that is a direct consequence of the</span><a href="https://en.wikipedia.org/wiki/Pollaczek%E2%80%93Khinchine_formula" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Pollaczek- Khinchine formula</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. I got interested with this topic after observing a few crisis, as a CIO, when the message routing infrastructure got massively congested.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">I have written different articles on this work and I refer you to this</span><a href="https://www.lix.polytechnique.fr/~liberti/cal07/presentations/caseau-cal07.pdf" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">2007 presentation</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> to find out more about policies and algorithms. Here I just want to point out three things:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"></p><ul style="text-align: left;"><li style="text-align: justify;"><span style="text-indent: -18pt; white-space-collapse: preserve;"><span style="font-family: verdana;">I tried to adapt scheduling and resource reservation since my background (at that time) was scheduling and resource allocation optimization. It was quite tempting to import some of the smart OR (operations research) algorithms from my previous decade of work into the middleware. The short story is that it works for a volatile situation (stochastic optimization, when the load distribution varies but the distributions are known) but it does not work in an uncertain world, when the distribution laws are unknown.
</span></span></li><li style="text-align: justify;"><span style="font-family: verdana;">The best approach is actually simpler, it based on routing policies<span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">. This is where the self-adaptive adjective comes from: declarative routing policies based on SLA do not make assumptions the incoming distribution and prove to be resilient, whereas future resource allocation works beautifully when the future is known but prove to fail to be resilient. Another interesting finding is that, in a crisis time, LCFS (last-come, first serve) is better than FCFS (which is precisely the issue of the ophthalmologist whose entire set of customers are unhappy because of the delays).
</span></span></li><li style="text-align: justify;"><span style="font-family: verdana;">The main learning is that tight systems are more resilient than loose ones<span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">. While playing with the IS/EDA simulator, I tried to compare two information systems. The first one uses asynchronous coupling and queues as a load absorber and has SLAs that are much larger than end-to-end lead times. It also has less computing resources allocated to the business resources, since the SLA supports a “little bit of waiting” in a processing queue. The second configuration (for the same business processes and the same components) is much tighter: SLAs are much shorter, and more resources are allocated so the end-to-end lead time includes much less waiting time. It turns out that the second system is much more resilient! Its performance (SLA satisfaction) shows “graceful degradation” when the load grows unexpectedly (large zone of linear behavior), while the first system is chaotic and shows exponential degradation. There should be no surprises for practitioners of lean management, since this is precisely a key lesson from lean (avoid buffers, streamline the flows, and work with just-in-time process management)</span></span></li></ul><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><br /></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The topic of understanding how a supply chain reacts when the input signals become volatile and uncertain is both very old and quite famous. It has led to the creation of the “</span><a href="https://en.wikipedia.org/wiki/Beer_distribution_game" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">The Beer Game</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”, a great “</span><a href="https://www2.open.ac.uk/openlearn/supply-chain/index.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">serious game</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">” that let players experiment with a supply chain setting. Quoting GPT, </span><span style="color: #0f0f0f; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">"</span><span style="color: #0f0f0f; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The Beer Game" is an educational simulation that demonstrates supply chain dynamics. Originally developed at MIT in the 1960s, it's played by teams representing different stages of a beer supply chain: production, distribution, wholesale, and retail. The objective is to manage inventory and orders effectively across the supply chain. The game illustrates the challenges of supply chain management, such as delays, fluctuating demand, and the bullwhip effect, where small changes in consumer demand cause larger variations up the supply chain. It's a hands-on tool for understanding systems dynamics and supply chain management principles</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”. A lot has been written about this game, since it has been used to train, students as well as executive, for a long time. The game is very different according to the demand flow settings. It becomes really interesting when the volatility increases, since it almost always leads to shortages as well as overproduction. Here are the three main observations that I draw from this example (I was a happy participant during my MBA training 30+ years ago):</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; padding: 0pt 0pt 0pt 18pt; text-indent: -18pt;"></p><ul style="text-align: left;"><li><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">Humans are poor at managing delays</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. This is a much more general law that applies to many more situation, from how we react to a cold/hot shower (there is a science about the piping length between the shower head and the faucet) to how we react to global warming – I talk about this often when</span><a href="https://informationsystemsbiology.blogspot.com/2013/12/seven-keys-for-complex-systems.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">dealing with complex systems</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. In the context of “The Beer Game”, it means that players react too late and over-react, leading to amplifying oscillations, from starvation to over-production.
</span></span></li><li><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Humans have usually a hard time understanding the behavior of Jackson networks, that is a graph (here a simple chain) of queues. This is the very same point as the previous example. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">Because we do not understand, we react too late, and the oscillating cycle of over-correcting starts</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">. This is what makes the game fun (for the observer) and memorable (for the participant).
</span></span></li><li><span style="font-family: verdana;"> <span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">Seeing the big picture matters</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">: communication is critical to handle variability. One usually plays in two stages: first the teams (who each handle one station of the supply chain) are separated and work in front of a computer (seeing requests and sending orders). The second step is when the teams are allowed to communicate.</span>Communication helps dramatically, and the teams are able to stabilize the production flow according to the input demand variation.</span></li></ul><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">Let me add that when I played the game, although I was quite fluent with Jackson networks and queueing theory at that time, and although I had read beforehand about the game, I was unable to help my team and we failed miserably to avoid oscillations, a lesson which I remember to this day.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYcSLekZKcg5lEiVoz8RH9gFU82XeduKxkO6yeKFt-NeEa3ZZVHcP_ckb7IKtAELlCEeSyDe7m0zzfhkwqnkJukaYdFJztd2f0yMbwN_Y0J2fzO2UCai_Vk3vyvZDHfBY_AIp_rh7LuINz3YPAHrt-3MNoLlkwgkyC2EekDtFSxeoaGyFA3Zugv1M5aVo/s1000/ProcessMiningInAction.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1000" data-original-width="667" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYcSLekZKcg5lEiVoz8RH9gFU82XeduKxkO6yeKFt-NeEa3ZZVHcP_ckb7IKtAELlCEeSyDe7m0zzfhkwqnkJukaYdFJztd2f0yMbwN_Y0J2fzO2UCai_Vk3vyvZDHfBY_AIp_rh7LuINz3YPAHrt-3MNoLlkwgkyC2EekDtFSxeoaGyFA3Zugv1M5aVo/s320/ProcessMiningInAction.jpg" width="213" /></a></div><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: justify; vertical-align: baseline; white-space-collapse: preserve;">I will conclude this section with the digital twin paradox: these systems, a supply chain network or an information system delivering business processes are easy to model and to simulate. Because of the systemic nature of the embedded queue network, simulations are very insightful. However, there are two major difficulties. First, the VUCA nature of the world makes it hard to characterize the incoming (demand) laws. It is not so hard to stress-test such a digital twin, but you must be aware of what you do not know (the “known unknowns”). Second, a model is a model, and</span><a href="https://www.the-possible.com/the-map-is-not-the-territory/#:~:text=%E2%80%9CThe%20map%20is%20not%20the,not%20identical%20to%20those%20things." style="font-family: verdana; text-align: justify; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">the map is not the territory</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: justify; vertical-align: baseline; white-space-collapse: preserve;">. This is reason why techniques such as process mining, which reconstruct the actual processes from observed traces (logs), are so important. I refer you to the book “</span><a href="https://link.springer.com/book/10.1007/978-3-030-40172-6" style="font-family: verdana; text-align: justify; text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Process Mining in Action</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: justify; vertical-align: baseline; white-space-collapse: preserve;">”, edited by Lars Reinkemeyer. Optimizing the policies to better serve a network of processes is of lesser use if the processes of the real word are too different from the ones in the digital twin. This is especially true for large organizations and processes for Manufacturing or Order-to-Cash (see the examples from Siemens and BMW in the book). I am quoting here directly from the introduction: “ </span><span style="font-family: verdana; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: justify; vertical-align: baseline; white-space-collapse: preserve;">Especially in logistics, Process Mining has been acknowledged for supporting a more efficient and sustainable economy. Logistics experts have been able to increase supply chain efficiency by reducing transportation routes, optimization of inventories, and use insights as a perfect decision base for transport modal changes</span><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: justify; vertical-align: baseline; white-space-collapse: preserve;">”.</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span></p><h2 style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: left;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">4. Service Classes and Policies</span></span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">Before working on how to maintain SLA with asynchronous distributed information systems, I have worked, over 20 years ago, on how to keep the target SLAs in a call center serving many types of customers with varying priorities and value creation opportunities. The goal was to implement different “service classes” associated with different SLAs (defined mostly as lead time, the sum of waiting time and handling time). I was collaborating with </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">Contactual</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> (a company sold to</span><a href="https://www.8x8.com/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">8x8</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> in 2011) and my task was to design smart call routing algorithms – called SLR : Service Level Routing) that would optimize service class management in the context of call center routing. Service classes are a key characteristic of yield management or value pricing, that is, the ability to differentiate one’s promise according to the expected value of the interaction. This work led to a patent “</span><a href="https://patents.justia.com/patent/7426267" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Declarative ACD routing with service level optimization</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">”, that you may browse if you are curious, here I will just summarize what is relevant to the topic of this blog post. Service Level Routing (SLR) is a proposed solution for routing calls in a contact center according to Service Level Agreements (SLAs). It dynamically adjusts the group of agents available for a queue based on current SLA satisfaction, ranking agents from less to more flexible. However, while SLR is effective in meeting SLA constraints, it can lead to reduced throughput as it prioritizes SLA compliance over overall efficiency. Declarative control, where the routing algorithm is governed solely by SLAs, is an ideal approach. Reactive Stochastic Planning (RSP) is a method for this, using a planner to create and regularly update a schedule that incorporates both existing and forecasted calls. This schedule guides a best-fit algorithm aimed at fulfilling the forecast. However, RSP tends to plan for a worst-case scenario that seldom happens, leading to potential misallocation of resources. The short summary of the SLR solution development is strikingly similar to the previous example of Section 3:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"></p><ul style="text-align: left;"><li><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">Being (at the time) a</span><a href="https://dblp.org/pid/c/YvesCaseau.html" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">world-class specialist of stochastic scheduling and resource allocation</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">, I spent quite some time designing algorithms that would pre-allocate resources (here group of agents with the required skills) to groups of future incoming calls. It worked beautifully when the incoming calls followed the expected distribution and failed otherwise.
</span></span></li><li><span style="font-family: verdana;">I then looked at simpler “policy” (rule-based) algorithms and found that I could get performance results that were still close to what I got when the call distribution is known beforehand (volatile but not uncertain), without making such hypothesis (the algorithm continuously adapts to the incoming distribution and is, therefore, much more resilient).<br /><br /></span></li><li><span style="font-family: verdana;">The art of the SLR is to balance between learning too much from the past and adapting quickly to a “new world”. I empirically rediscovered<a href="https://organisationarchitecture.blogspot.com/2013/03/antifragile-une-regle-de-vie-face-la.html" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">Taleb’s law</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">: in the presence of true (VUCA) complexity, it is better to stick to simple formulas /methods/ algorithms to avoid the “black swans” of the unintended consequences of complexity.</span></span></li></ul><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><br /></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;"></span></span></p><div class="separator" style="clear: both; text-align: center; white-space-collapse: preserve;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtDsQ-2wpnegB0KBusSIsv81uXuP042Dj_C6BfRBHxIYnDXV24m8ubdeHrltqXQHuSfEU20WkIuB-h6T-6ibA92uk9waZXNtZfc-8wDDfp6V7pK2ay2ViITpRbiPVS7kjRhfP57pWnwIfBAT6TnFc6RexwtOjSnQm3jEo7Q1RfRwSZVztCv3_CcfnWSAo/s1000/DDMRP.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1000" data-original-width="776" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtDsQ-2wpnegB0KBusSIsv81uXuP042Dj_C6BfRBHxIYnDXV24m8ubdeHrltqXQHuSfEU20WkIuB-h6T-6ibA92uk9waZXNtZfc-8wDDfp6V7pK2ay2ViITpRbiPVS7kjRhfP57pWnwIfBAT6TnFc6RexwtOjSnQm3jEo7Q1RfRwSZVztCv3_CcfnWSAo/s320/DDMRP.jpg" width="248" /></a></span></div><div style="text-align: justify;"><span style="font-family: verdana;"><span style="white-space-collapse: preserve;"><br /></span></span></div><span style="font-family: verdana;"><span style="white-space-collapse: preserve;"><div style="text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">Since then, I have experienced the same situation and conclusion in many different environments. I have participated, a long time ago, to the introduction of yield management into the advertising grid of TF1, using stochastic algorithms to open and close tariff classes based on current reservations and expected future requests. Simplicity of the allocation schema is the only way to obtain resilience: as soon as one “overfits”, that is create too many classes which render forecasting brittle, the benefits of yield management become very uncertain. I have also witnessed how over-optimization of supply chain management with pre-reservation (slices of inventories allocated to service classes) also fail to show resilience to the current string of crises which is a signature of our VUCA world. For the exact same reasons as with the previous domains, pre-reservation works beautifully in the lab, when the load distribution follows past (observed) distributions. But in the real world, these reservations create shortages and oscillations, as noticed with the beer game. The state-of-the-art today is to use a mix of kanban (reactive) and stochastic optimization call</span><a href="https://blog.arkieva.com/demand-driven-supply-chain/#:~:text=A%20Demand%2Ddriven%20Supply%20Chain%20(DDSC)%20is%20defined%20as,pull%20(Demand%20pull)%20technique." style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">Demand-Driven Supply Chain</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">. If you want to dive into this topic, I recommend “</span><a href="https://www.amazon.com/Demand-Driven-Material-Requirements-Planning/dp/0831135980" style="text-decoration-line: none;"><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">Demand Driven Material Requirement Planning</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">” from Carol Ptak and Chad Smith. The book starts with the observation that we made about our VUCA world “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">All forecasts start out with some inherent level of inaccuracy. Any prediction about the future carries with it some margin of error. This is especially true in the more complex and volatile New Normal</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">”. It warns us about “overfitting” (too detailed forecast): “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">The more detailed or discrete the forecast is, the less accurate it is. There is definitely a disparity in the accuracy between an aggregate-level forecast (all products or parts), a category-level forecast (a subgroup of products or parts), and a SKU-level forecast (single product or part) … Today many forecasting experts admit that 70 to 75 percent accuracy is the benchmark for the SKU level</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">”. Using these approximate forecasts to manage the supply chain produced a “bimodal distribution” of shortages and overproduction: “This</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;"> bimodal distribution is rampant throughout industry. It can be very simply described as “too much of the wrong and too little of the right” at any point in time and “too much in total” over time. In the same survey noted earlier, taken between 2011 and 2014 by the Demand Driven Institute, 88 percent of companies reported that they experienced this bimodal inventory pattern. The sample set included over 500 organizations around the world</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">”. Batching policies should be avoided since they amplify variability (cf. what we said about the Beer Game and Jackson networks): “ </span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">The distortion to relevant information and material inherent in the bullwhip is amplified due to batching policies. Batching policies are determined outside of MRP and are typically formulated to produce better-unitized cost performance or are due to process restrictions or limitations</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">”.</span><a href="https://www.demanddriveninstitute.com/ddmrp" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">DDMRP</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;"> “ </span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">combines some of the still relevant aspects of Material Requirements Planning (MRP) and Distribution Requirements Planning (DRP) with the pull and visibility emphases found in Lean and the Theory of Constraints and the variability reduction emphasis of Six Sigma</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">”. Here are few thoughts from the book that I want to underline because they match precisely what I have seen in the previously mentioned examples:</span></div><div style="text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;"><br /></span></div><div style="text-align: justify;"><ul><li><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: left; text-indent: -18pt; vertical-align: baseline;">To reduce the variability, one needs to work on the flow (cf. the adaptive middleware example): “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: left; text-indent: -18pt; vertical-align: baseline;">The need for flow is obvious in this framework since improved flow results from less variability</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: left; text-indent: -18pt; vertical-align: baseline;">”.</span></li><li>Frequent reaction yields better adaptation (the heart of agility): “ <span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: left; text-indent: -18pt; vertical-align: baseline;">This may seem counterintuitive for many planners and buyers, but the DDMRP approach forces as frequent ordering as possible for long lead time parts (until the minimum order quantity or an imposed order cycle becomes a constraining factor)</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: left; text-indent: -18pt; vertical-align: baseline;">”.</span></li><li>Beware of global planning methods that bring “nervousness” (“<span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: left; text-indent: -18pt; vertical-align: baseline;">This constant set of corrections brings us to another inherent trait of MRP called nervousness</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: left; text-indent: -18pt; vertical-align: baseline;">” : small changes in the input demand producing large changes in the output plan) – I have told enough of my war stories in this post, but this is exactly the issue that I worked on more than 30 years ago, when scheduling fleet of repair trucks for the US telcos at Bellcore.</span></li><li>DDMRP is a hybrid approach that combines the lean tradition of demand-driven pull management with Kanban and the stochastic sizing of buffers (“<span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: left; text-indent: -18pt; vertical-align: baseline;">The protection at the decoupling point is called a buffer. Buffers are the heart of a DDMRP system</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: left; text-indent: -18pt; vertical-align: baseline;">”): “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: left; text-indent: -18pt; vertical-align: baseline;">What if both camps are right? What if in many environments today the traditional MRP approach is too complex, and the Lean approach is too simple?</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: left; text-indent: -18pt; vertical-align: baseline;">”</span></li><li>However, stochastic sizing also needs frequent updates to gain resilience and adaptability: “ <span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: left; text-indent: -18pt; vertical-align: baseline;">Yet we know that those assumptions are extremely short-lived, as conventional MRP is highly subject to nervousness (demand signal distortion and change) and supply continuity variability (delay accumulation)</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-align: left; text-indent: -18pt; vertical-align: baseline;">”.</span></li></ul></div></span></span><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">The main idea from the book is that we need to distinguish volatility and uncertainty, and the hard part is adapting to uncertainty. One may add that all stochastic optimization methods tend to suffer from a classical weakness: they make assumptions on the </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;">statistical independence of many input stochastic variables</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> and fare poorly when these variables are bound to a common root cause that we usually call a crisis. This applies to the</span><a href="https://organisationarchitecture.blogspot.com/2009/01/eloge-de-la-titrisation.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">2008 subprime crises</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> as well as so many other situations.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">To end this blog post, I will return to the practical issue of filling one’s calendar in a VUCA world. This is an old favorite of mine, which I had already discussed in my second book (the English edition may be found</span><a href="https://www.amazon.com/Information-Technology-Chief-Executive-Organization/dp/1438911114/ref=sr_1_fkmr1_1?crid=19DQUH56TTS8O&keywords=Yves+CASEAU+information+systems&qid=1698560375&sprefix=yves+caseau+information+systems%2Caps%2C132&sr=8-1-fkmr1" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">here</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;">). The problem that I want to solve when managing my calendar is, without surprise, to maximize the expected value of what gets in while keeping the agility (flexibility of non-assigned time slot) to also maximize the hypothetical value of high-priority opportunities that would come later. It is easy the adapt the two principles that we have discussed in this blog post:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"></p><ul style="text-align: left;"><li><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">Reservation</span><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;"> is “zoning”, that is defining temporal zone that you reserve for some special types of activities. For many years, as a CIO, I have reserved the late hours of the day (6pm-8pm) to crisis management. This supports a 24h SLA when a crisis occurs, and the capability to keep following the crisis with a daily frequency. Zoning works, but at the expense of flexibility when many service classes are introduced (overfitting of the model). It is also at the expense of the global service level (as with any reservation policy). In addition to its capacity to optimize the value from your agenda, zoning has the additional benefit of team/organization synchronization: if your zoning rules are shared, there is a new level of efficiency that you gain (a topic not covered today but a key stake in my books and other blogposts).
</span></li><li><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">Dynamic routing</span><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;"> means to assign different SLA according to the service class, that is to find an appointment in the near future for high value/priority jobs but to use a longer time horizon as the priority declines. The goal here is avoid the terrible short-coming of first-come first-serve, which yields inevitably to the “full agenda syndrome” (so easy when you are a CIO or an ophthalmologist). Dynamic routing is less effective than zoning, but it is adaptive, and works well (i.e., compared to doing nothing) even then the incoming rate of requests enters a completely different distribution.</span></li></ul><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">As mentioned in the introduction, my current policy after many years of tinkering, is to apply both. Reservation should be used sparingly (with the constant reminder to yourself that you do not know the future) because it reduces agility, but it is very effective. The more the agenda is overbooked, the more reservations are required. Dynamic routing on the other hand, is what works best in uncertain times, when the overbooking is less acute. It blends fluidly with the art of saying no, since saying no is the special case of returning an infinite lead time for the next appointment. It is by no means a silver bullet, since we find here the weakness of all sorting methods (such as the agile backlog): assigning a future value to a meeting opportunity is an art.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"><br /></span></span></p><h2 style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: left;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-weight: 700; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">5. Conclusion</span></span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><span style="font-family: verdana;">I will conclude this blog post with three “laws” that one should keep in mind when managing promises, such as service level agreements, in a VUCA world:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"></p><ul style="text-align: left;"><li style="text-align: justify;"><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">Fo</span><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">recasting is difficult in a VUCA world, a little bit because of volatility and uncertainty (by definition) but mostly because of complexity and non-linearity between causal factors. We could call this the</span><a href="https://organisationarchitecture.blogspot.com/2018/03/lentreprise-face-la-complexite-de-la.html" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">“Silberzann law</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">”, it becomes more important the longer time horizon you consider (as told in</span><a href="https://organisationarchitecture.blogspot.com/2017/10/utiliser-les-donnees-pour-prevoir-jeux.html" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">another blog post</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">, the paradox of the modern world is both the increasing relevance of short-term forecasts</span><a href="https://www.predictionmachines.ai/" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">because of data and algorithms</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;"> and the increasing irrelevance of long-term forecasts.
</span></span></li><li style="text-align: justify;"><span style="font-family: verdana;">Complex and uncertain situations are best managed with simple formulas and simple policies, which we could call the<a href="https://organisationarchitecture.blogspot.com/2013/03/antifragile-une-regle-de-vie-face-la.html" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">“Taleb Law”</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;">. This is both of consequence of the mathematics behind stochastic processes (cf. the Pollaczek–Khinchine formula) and complex systems with feedback loops. Here, the rule is to be humble and beware of our own hubris as system designers.
</span></span></li><li style="text-align: justify;"><span style="font-family: verdana;">When trying to secure resources to deliver promises made in a VUCA context, beware of hard resource reservation and favor adaptative policies, while keeping the previous law in mind. Aim for “graceful degradation” and<a href="https://informationsystemsbiology.blogspot.com/2013/12/seven-keys-for-complex-systems.html" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"> </span><span style="color: #1155cc; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;">keep Lean “system thinking” in mind</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; text-indent: -18pt; vertical-align: baseline; white-space-collapse: preserve;"> when designing your supply / procurement / orchestration processes.</span></span></li></ul><p></p><div><span style="font-family: Arial, sans-serif; font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"><br /></span></div>Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com0tag:blogger.com,1999:blog-438942112364524044.post-34239321464999302772023-05-31T08:35:00.002-07:002023-06-01T03:14:47.816-07:00 Adding Language Fluency and Knowledge Compression to the AI Toolbox<p><span face="Calibri, sans-serif" style="font-size: 12pt; white-space: pre-wrap;"> </span><span style="font-family: verdana; font-size: 12pt; white-space: pre-wrap;"> </span></p><span id="docs-internal-guid-410c4ea4-7fff-bc4a-4f2e-1f66d00fced3"><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: verdana; font-size: medium;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Introduction</span></span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span face="Calibri, sans-serif" style="font-size: 12pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The last six months have been very busy on the Artificial Intelligence front. The National Academy of Technologies of France (</span><a href="https://www.academie-technologies.fr/en/academie/" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">NATF</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">)</span><a href="https://www.academie-technologies.fr/wp-content/uploads/2023/05/20230504-Avis-AT-agents-conversationnels-ChatGPT.pdf" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">has just issued a short position paper</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> to discuss some of the aspects of LLM (large language models) and conversational agents such as ChatGPT. Although much has happened very recently, reading the yearly report from Stanford,</span><a href="https://aiindex.stanford.edu/report/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">the 2023 AI index report</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, is a good way to reflect on the constant stream of AI innovations. While some fields show stabilization of the achieved performance level, others, such as visual reasoning, have kept progressing over the last few years (now better than human performance level on VQA challenge). The report points out the rise of multi-modal reasoning systems. Another trend that has grown from some time is the use of AI to improve AI algorithms, such as PaLM being used by Google to improve itself. This report is also a great tool to evaluate the constant progress of the underlying technology (look at the page about GPU, which have shown “</span><a href="https://epochai.org/blog/trends-in-gpu-price-performance" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">constant exponential progress</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” over the past 20 years) or the relative position of countries on AI research and value generation.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">It is really interesting to compare this “2023 AI Index Report” with the previous edition of 2022</span><a href="http://organisationarchitecture.blogspot.com/2022/08/intelligence-artificielle-simulation.html" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">. In a previous post last year</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, the importance of transformers / attention-based training was already visible, but the yet-to-come explosive success of really large LLMs coupled with reinforcement learning was nowhere in sight. In a similar way, it is interesting to re-read the synthesis of “</span><a href="http://informationsystemsbiology.blogspot.com/2019/01/" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Architects of Intelligence – The Truth about AI from the People Building It</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”, since the bulk of this summary still stands but the warnings about the impossibility to forecast have proven to be “right on target”.</span></span><span style="font-family: verdana; white-space: pre-wrap;"> </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"></p><p style="text-align: justify;"><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Despite what the press coverage portrays, AI is neither a single technology nor a unique tool. It is a family of techniques, embedded in a toolbox of algorithms, components and solutions. When making the shortcut of talking about AI as a single technique, it is almost inevitable to get it wrong about what AI can or cannot dot. </span><span style="color: #0563c1; font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">In the 2017 NATF report</span><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> (see figure below) we summarize the toolbox by separating along two axes: do you have a precise/closed question to solve (classification, optimization) or an open problem? do you have lots of tagged data from previous problems or not. The point being that “one size does not fit all”, lots of techniques have different purposes. For instance, the most relevant techniques for forecasting are based on using very large volumes of past data and correlations. However, in the past few “extra VUCA years” of COVID, supply chain crises and wars, forecasting based on correlation does not do so well. However,</span><a href="https://causalitylink.com/solutions/" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">causality A</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I and simulation have a lot to offer in this new world. As noticed by Judea Pearl or Yann Le Cun, one of the most exciting frontiers for AI is</span><a href="https://www.technologyreview.com/2022/06/24/1054817/yann-lecun-bold-new-vision-future-ai-deep-learning-meta/" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">world modeling</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> and</span><a href="https://informationsystemsbiology.blogspot.com/2019/04/hunting-for-causality-in-short-time.html" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">counterfactual reasoning</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> (which is why “<a href="https://informationsystemsbiology.blogspot.com/2020/03/re-inventing-product-from-industry-40.html">digital twins</a>” are such an interesting concept). It is important to notice that exponential progress fueled by Moore’s Law happens everywhere. Clearly, on the map below, deep learning is the field that has seen the most spectacular progress in the past 20 years. However, what can be done with agent communities to simulate large cities, or what you can expect from the more classical statistical machine learning algorithms, has also changed a lot compared to what was feasible 10 years ago. The following figure is an updated version of the NATF figure, reflecting the arrival of “really large and uniquely capable” LLMs into the AI toolbox. The idea of LLM, as recalled by</span><a href="https://www.youtube.com/watch?v=qpoRO378qRY" style="font-family: verdana; text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Geoffrey Hinton</span></a><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, is pretty old, but many breakthroughs have occurred that makes LLMs a central component of the 2023 AI toolbox. As said by Satya Nadella: « </span><span style="font-family: verdana; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">thanks to LLM, natural language becomes the natural interface to perform most sequences of tasks</span><span style="font-family: verdana; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> ».</span></p><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"><div style="text-align: justify;"><span face="Calibri, sans-serif" style="font-size: 14.6667px; white-space: pre-wrap;"><br /></span></div><br /></span><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-left: 108pt; margin-top: 0pt;"><span face="Calibri, sans-serif" style="font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-left: 108pt; margin-top: 0pt;"><span face="Calibri, sans-serif" style="font-size: 11pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHGn0b_bksjrolPrEE1HUdCU7agBoi5FijeyCowGXyGS3UiQr-ANj7imqrWrPs_WdpfhoxH3xLYKrTJ5ZflMaqZ08ExZgaXY7gcfKakMBlM9XotZDSjqMtr2j1jTeIT-FHxZRHP4WjrXxM_NY3G1daBIJslmD5Nz20xgXun2CDzI33N31UGPD_QgE3/s939/AIToolbox2023.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="529" data-original-width="939" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHGn0b_bksjrolPrEE1HUdCU7agBoi5FijeyCowGXyGS3UiQr-ANj7imqrWrPs_WdpfhoxH3xLYKrTJ5ZflMaqZ08ExZgaXY7gcfKakMBlM9XotZDSjqMtr2j1jTeIT-FHxZRHP4WjrXxM_NY3G1daBIJslmD5Nz20xgXun2CDzI33N31UGPD_QgE3/w640-h360/AIToolbox2023.png" width="640" /></a></div></span><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span face="Calibri, sans-serif" style="font-size: 12pt; font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Figure 1: The revised vision of the NATF 2017 Toolbox</span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span face="Calibri, sans-serif" style="font-size: 12pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span face="Calibri, sans-serif" style="font-size: 12pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">This blog post is organized as follows. Section 2 looks as generative AI in general and LLM in particular, as a major on-going breakthrough. Considering what has happened in the few past months, this section is different from</span><a href="https://www.linkedin.com/search/results/content/?keywords=yves%20caseau%20chat%20gpt&sid=B(0&update=urn%3Ali%3Afs_updateV2%3A(urn%3Ali%3Aactivity%3A7023166904705908736%2CBLENDED_SEARCH_FEED%2CEMPTY%2CDEFAULT%2Cfalse)" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">what I would have written in January</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, and will probably become obsolete soon. However, six months past the explosive introduction of ChatGPT, it makes sense to draw a few observations. Section 3 takes a fresh look at the “System of Systems” hypothesis, namely that we need to combine various forms of AIs (components in the toolbox and in the form of “combining meta-heuristics”) to deliver truly intelligent/remarkable systems. Whenever a new breakthrough appears, it gets confused with “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">the AI technology</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”, the approach that will subsume all others and … will soon become AGI. Section 4 looks at the AI toolbox from an ecosystem perspective, trying to assess how to leverage the strengths of the outside world without losing your competitive advantage in the process. The world of AI is moving so fast that the principles of “</span><a href="https://organisationarchitecture.blogspot.com/2015/03/entreprise-30-comment-sadapter-un.html" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Exponential Organizations</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” hold more true than ever : there are more smart people outside than inside your company, you cannot afford to build exponential tech (only) on yourself, you must organize</span><a href="https://informationsystemsbiology.blogspot.com/2016/05/exponential-information-systems.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">to benefit from the constant flow of technology innovation</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, and so on. There are implicitly two tough questions to answer: (1) how do you organize yourself to benefits from the constant progress of the AI toolbox (and 2023 is clearly the perfect year to ask this question)? (2) how do you do this while keeping your IP and your proprietary knowledge about your processes, considering how good AI has become to reverse-engineer practices from data?</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span face="Calibri, sans-serif" style="font-size: 12pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span face="Calibri, sans-serif" style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-size: large;">2. Large Languages Models and Generative AI</span></span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span face="Calibri, sans-serif" style="font-size: 12pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">Although LLM have been around for a while, four breakthroughs have happened recently, which (among other things) explain why the generative AI revolution is happening in 2023:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"></p><ol style="text-align: left;"><li style="text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">The first breakthrough is the</span><a href="https://en.wikipedia.org/wiki/Transformer_(machine_learning_model)" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">transformer neural network architecture</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">, which started (as explained in</span><a href="https://organisationarchitecture.blogspot.com/2022/08/intelligence-artificielle-simulation.html" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">last year’s post</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">) with the famous 2017 article “</span><a href="https://towardsdatascience.com/attention-is-all-you-need-discovering-the-transformer-paper-73e5ff5e0634" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Attention is all you need</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">”. The breakthrough is simplicity: training a RNN (</span><a href="https://en.wikipedia.org/wiki/Recurrent_neural_network" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">recurrent neural network</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">) that operates on a sequence of input (speech, text, video) has been an active but difficult field for many years. The idea of “attention” is to encode/compress what a RNN must carry from the analysis of the past section of a sequence to interpret the next token. Here simplicity means scale: a transformer network can be grown to very large sizes because it is easier to train (more modular, in a way) than previous RNN architectures.
</span></span></li><li style="text-align: justify;"><span style="font-family: verdana;">The second breakthrough is the emergence of knowledge “compression” when the size grows over a few thresholds (over 5 and then 50 billion parameters). The NATF has the pleasure of interviewing<a href="https://thomwolf.io/" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Thomas Wolf</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">, a leader of the team that developed</span><a href="https://bigscience.huggingface.co/blog/bloom" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">BLOOM</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">, and he told us about this “emergence” : you start to observe a behavior of a different nature when the size grows (and if this sounds vague, it is because it is precisely hard to characterize). Similar observations may be found while listening to Geoffrey Hinton or</span><a href="https://www.youtube.com/watch?v=L_Guz73e6fw&t=5072s" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Sam Altman on the Lex Fridman podcast</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">. The fun fact is that we still do not understand why this happens, but the emergence of this knowledge compression created the concept of</span><a href="https://en.wikipedia.org/wiki/Prompt_engineering" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">prompt engineering</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> since the LLM is able to do much more than stochastic reconstruction. So, beware of</span><a href="https://www.lemonde.fr/pixels/article/2023/02/20/chatgpt-n-est-qu-un-perroquet-approximatif-selon-le-ministre-delegue-au-numerique_6162562_4408996.html" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">anyone who would tell you that generative AI is nothing more than a “stochastic parrot”</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> (It is too easy to belittle what you do not understand).
</span></span></li><li style="text-align: justify;"><span style="font-family: verdana;">As these LLMs are trained on very large corpus of generic texts, you would expect to have to retrain them on domain specific data to get precise answers relevant to your field. The third breakthrough (still not really explained) is that some form of<a href="https://en.wikipedia.org/wiki/Transfer_learning" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">transfer learning</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> occurs and that the LLM, using your domain specific knowledge as its input, is able to</span><a href="https://medium.com/@livajorge7/gpt-3-transfer-learning-unlocking-the-power-of-language-models-f8770033addd" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">combine its general learning with your domain into a relevant answer</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">. This is especially spectacular when using a code generation tool such as GitHub co-pilot. From experience, because my <a href="https://code.visualstudio.com/">visual studio</a> plugin uses the open files as the context, GitHub copilot generates code that is amazingly customized to my style and my on-going project. This also explains why the length of the context (</span><a href="https://analyticsindiamag.com/gpt-4-api-is-here/" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">32k tokens with GPT4 today</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">) is such an important parameter. We should get ready for 1M token contexts that have been already discussed, which supports giving a full book as part of your prompt.
</span></span></li><li style="text-align: justify;"><span style="font-family: verdana;">The last breakthrough is the very fast improvement of RLFH (<a href="https://huggingface.co/blog/rlhf" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">reinforcement learning with human feedback</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">), which has itself been accelerated by the incredible success of ChatGPT adoption rate.</span><a href="https://www.technologyreview.com/2023/03/03/1069311/inside-story-oral-history-how-chatgpt-built-openai/" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">As told in the MIT review article</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">, the growth of ChatGPT user base came as a surprise to the ChatGPT team itself. Transforming a LLM into a capable conversational agent is (still) not an easy task, and although powerful LLMs were already in use in many research labs as of two years ago, the major contribution of OpenAI is to have successfully curated a complete process (from fine tuning, training the reward model through RLHF to guide the LLM to produce more relevant outputs to inner prompt engineering, such as Chain-Of-Thought prompting which is very effective in GPT4).</span></span></li></ol><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">It is probably too early to stand back and see all what we can learn from the past few months. However, this is a great illustration of many digital innovations principles that have been illustrated in this blog posts of the past 10 years, such as the importance of engineering (thinking is great but doing is what matters), the emergence mindset (as Kevin Kelly said over 20 years ago, “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">intelligent systems are grown, not designed</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”) and the absolute necessity of an experimentation mindset (together with the means to execute, since as was beautifully explained by</span><a href="http://informationsystemsbiology.blogspot.com/2018/12/what-todays-ai-can-and-cannot-do-part-1.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Kai-Fu Lee in his book “AI superpowers”</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">size matters in AI development</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”). This is a key point, even though the nature of engineering is then to learn to scale down, that is to reproduce with less effort what you found with a large-scale experiment. The massive development of open-source LLMs, thanks to the</span><a href="https://ai.facebook.com/blog/large-language-model-llama-meta-ai/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">LLaMA code released by Meta</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> and optimization techniques such as LoRA (</span><a href="https://arxiv.org/abs/2106.09685" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Low-Rank Adaptation of LLMs</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">) gives a perfect example of this trend. A lot of debates about this topic was generated by</span><a href="https://www.semianalysis.com/p/google-we-have-no-moat-and-neither?fbclid=IwAR0HW9QrDgfCxvNleAxJZTe9pVcp2b58eyDo-pqPvfW0RIgWVvtATFLAR_s" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">the article leaked by Luke Sernau from Google</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. Although the commoditization of LLM is undeniable, and the performance gap between large and super-large LLMs is closing, there is still a size advantage for growing market-capable conversational agents. Also, as told by Sam Altman, there is a “secret sauce” for ChatGPT, which is “made of hundreds of things” … and lots of accumulated experience on RLHF tuning. If you still have doubts about GPT4 can do,</span><a href="https://www.youtube.com/watch?v=qbIk7-JPB2c" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">I strongly recommend listening to Sebastien Bubeck</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. From</span><a href="https://openai.com/research/gpt-4" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">all the multiple “human intelligence assessments" performed with GPT4</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> during the past few week, it is clear (to me) that LLMs work beautifully even though we do not fully understand why. As will become clear while reading the rest of the post, I do not completely agree with Luke Sernau’s article (size matters, there is a secret sauce), but I recognize two key ideas : dissemination will happen (it is more likely that we shall have many kind of LLMs of various kinds that a few large general-purpose ones) and size is not all that matters. For instance, DeepMind with its ChinChilla LLM focuses on a “smaller LMM” (70B parameters) that may be trained on a much larger corpus. Smaller LLMs outperform larger one in some contexts because they are easier to train, which is what happened with a Meta’s LLaMA (open sourced) comparison with GPT3. Another trend that is favoring the “distributed/specialized” vision is the path the Google is taking, with multiple “flavors” of its LaMDA (LLM for Dialog Application) and PaLM (Pathways LLM) that is specialized into Med-PaLM, Sec-PaLM and others.</span></span><span style="font-family: verdana; white-space: pre-wrap;"> </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">For many reasons, labelling LLMs as “today’s artificial intelligence” is somehow misleading but is it certainly a new exciting form of “</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Artificial Knowledge</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span><a href="https://www.academie-technologies.fr/wp-content/uploads/2023/05/20230504-Avis-AT-agents-conversationnels-ChatGPT.pdf" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">There are many known limits to LLMs</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, that are somehow softened with RLHF and prompt engineering, but nevertheless strong enough to keep in mind at all time. First,</span><a href="https://en.wikipedia.org/wiki/Hallucination_(artificial_intelligence)" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">hallucinations</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> (when the LLM does not have the proper knowledge embedded in its original training set, it finds the most likely match which is not only wrong but very often plausible, hence confusing) mean that you need to be in control of the output (unless you are looking for random output). Hallucinations are tricky because, by construction, when the knowledge does not exist in the training corpus, the LLM “invents” the most plausible completion, which is false but designed to look plausible. There are many interesting examples when you play with GPT to learn about laws, norms or regulations. It does very well at first on generic or common questions but starts inventing subsections or paragraph to existing document while quoting them with (what is perceived as) authority. The same thing happens with my own biography: it is a mix of real jobs, articles, references, intermixed with books that I did not write (with interesting titles, though) and positions that I did not have (but could have had, considering my background).</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">This is why the</span><a href="https://www.forbes.com/sites/danielnewman/2023/03/20/microsoft-copilot-generative-ai-adds-an-mba-to-your-day-to-day/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">“</span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">copilot</span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">” metaphor is useful</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> : generative AI agents such as ChatGPT are great tools as co-pilots, but you need to “be the pilot”, that is, be capable of checking the validity and the relevance of the output. ChatGPT has proven to be a great tool for creative sessions, but when some innovation occurs, the pilot (you) is doing the innovation, not the machine. As pointed out in the “</span><a href="https://aiindex.stanford.edu/report/" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Stanford AI report</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”, generative AI is not the proper technique for scheduling or planning, nor is it a forecasting or simulation tools(with the exception of providing a synthesis of available forecasts or simulations that have been published earlier). This is precisely the value of Figure 1: to remind oneself that specific problems are better solved by specific AI techniques. Despite the media hype as LLMs being the “democratization of AI available for all”, I find it easier to see these tools as “artificial knowledge” rather than “intelligence”. If you have played with asking GPT4 to solve simple math problems, you were probably impressed but there is already more that LLMs at work, preprocessing through “</span><a href="https://www.linkedin.com/pulse/prompt-chain-of-thought-prompting-unlocking-reasoning-reuven-cohen/" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">chain of thoughts</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” prompt engineering adds an abstraction layer that is not a native feature of LLMs. We shall return to how generative AI will evolve through hybrid combination and API extensions in the next section. By using the “</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">artificial knowledge</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” label, I see GPT4 as a huge body of compressed knowledge that may be queried with natural language.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">In this blog post, I focus on the language capabilities brought by LLM, but generative AI is a much broader discipline since GPT (generative pre-trained transformer networks) can operate on many other inputs. Also, there are many other techniques, such as</span><a href="https://en.wikipedia.org/wiki/Stable_Diffusion" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">stable diffusion</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> for images, to develop “generative capabilities”. As pointed out in the AI Report quoted in the introduction, multi-modal prompting is already here (as shown by GPT4). In a reciprocate manner, a LLM can transform words into words … but it can also transform words into many other things such as programming languages or scripts, 3D models of objects (hence the Satya Nadella quote). Besides the use of knowledge assistants to retrieve information, it is likely that no-code/low code (such as</span><a href="https://powerapps.microsoft.com/en-us/blog/announcing-a-next-generation-ai-copilot-in-microsoft-power-apps-that-will-transform-low-code-development/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Microsoft Power Apps</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">) will one of the key vector of generative AI introduction into companies in the years to come. The toolbox metaphor becomes truly relevant to see the various “deep learning components” that transform “embeddings” (compressed input) as “Lego bricks” in a truly multi-modal playground (video or image to text, text to image/video/model, model/signals to text/image, etc.). Last, we have not seen the end of the applicability of the transformer architecture to other streams of input. Some of the complex adaptative process optimization problems of digital manufacturing (operating in an optimal state space from the input of a large set of IOT sensors) are prime candidates for replacing the “statistical machine learning” techniques (cf. Figure 1) with transformer deep neural nets.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> <br /></span></span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">3. Hybrid AI and Systems of Systems</span></span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">A key observation from the past 15 years is that state-of-the-art intelligent systems are hybrid systems that combine many different techniques, whether they are elementary components or the assembly of components with meta-heuristics (GAN, reinforcement learning, Monte-Carlo Tree Search, evolutionary agent communities, to give a few examples).</span><a href="https://21robot.org/index-e.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Todai Robot</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> is a good example of the former while DeepMind many successes are good examples of the later (I refer you to the excellent</span><a href="https://www.deepmind.com/the-podcast" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Hannah Fry podcast on DeepMind</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> which I have often advertised in my blog post). DeepMind is constantly updating</span><a href="https://www.deepmind.com/publications/a-generalist-agent" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">its reinforcement learning knowledge in a form of a composable agent</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. The aforementioned report from NATF gives other examples, such as the use of encoder/decoder architecture to recognize defects on manufacturing products while training on a large volume of pieces without defects (a useful use cases since pieces with defects are usually rare). The ability to combine, or to enrich, elementary AI techniques with others or with meta-heuristics is the reason for sticking with the “AI toolbox” metaphor. The subliminal message is not to specialize too much, but rather to develop skills with a larger set of techniques. The principle of “hybrid AI” generalizes to “system of systems”, where multiple components collaborate, using different forms of AI. Until we find a truly generic technique, this approach is a “best-of-breed” system engineering method to pick in the toolbox the best that each technique can bring. As noted in the NATF report, “System of systems” engineering is also a way to design certifiable AI if the “black box components” are controlled with (provable) “white box” ones.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">ChatGPT is a hybrid system in many ways. The most obvious way is the combination of LLM and RLHF (reinforcement learning with human feedback). If you</span><a href="https://openai.com/blog/chatgpt" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">look closer at the multiples steps</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, many techniques are used to grow through reinforcement learning a reward system that is then uses to hybrid the LLM’s output. In a nutshell, once a first step of fine tuning is applied, reinforcement learning with human operators is used to grow a reward system (a meta-heuristic that the LLM-base chatbot can later use to select the most relevant answer). Open AI has worked for quite some time to develop various reinforcement learning such as PPO (</span><a href="https://openai.com/research/openai-baselines-ppo" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Proximal Policy Optimization</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">), and the successive versions of RLHF has grown to be large, sophisticated and hybrid in its own way, taking advantage of the large training set brought by the massive adoption (cf. Point #4 of Section 2). As explained by Sam Altman in its</span><a href="https://www.youtube.com/watch?v=L_Guz73e6fw&t=5072s" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">YouTube interview</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, there are many other optimizations that have been added to reach the performance level of GPT4, especially with Chain-Of-Thoughts extensions. It is quite different to think about LLM as a key component or as a new form of all-purpose AI. </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">The title of this blog post is trying to make this point</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. First let me emphasize that “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">English Fluency</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” and “</span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Knowledge compression</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” are huge breakthroughs in terms of capabilities. We will most certainly see multiple impressive consequences in the years to come, beyond the marvels of what GPT4 can do today. Thinking in terms of toolbox and capabilities mean that “English fluency” – that is both the capacity to understand questions in their natural language format and the capacity to restitute through well-formed and well-balanced English sentence – can be added to almost any computer tool (as we are about to see soon). English is just a language example here, although my own experience tells me that GPT is better with English than French. However, when you consider the benefits of being able to query any application in natural language versus following the planned user interface, one can see how </span><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">“English fluency” (show me your data, explain this output, justify your reasoning ….) might become a user requirement for most applications of our information systems</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. On the other hand, recognizing that GPT is not a general-purpose AI engine (cf. the previous comment about planning, forecasting and the absence of world model other than the compression of experiences embedded into the training set) has led OpenAI to move pretty fast on opening GPT4 as a component, which is a sure way to promote hybridization.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The opening of GPT4 with </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">inbound and outbound APIs</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> is happening fast considering the youth of the Open AI software components. Inbound APIs help you</span><a href="https://medium.com/codingthesmartway-com-blog/unlocking-the-power-of-gpt-4-api-a-beginners-guide-for-developers-a4baef2b5a81" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">to use GPT4 as a component to give dialog capabilities to your own system</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. Think of is as “prompt engineering as code”, that use using the expressive power of computer languages to probe GPT4 in the directions that suit your needs (and yes, that covers the “chain of thoughts” approach mentioned earlier, that is instructing GPT4 to solve a problem step by step, under the supervision of another algorithm – yours – to implement another kind of knowledge processing). Outbound APIs means to let ChatGPT call your own knowledge system to extend its reasoning capabilities or to have access to better form of information. Here the best example to look at is </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">the combination of Wolfram Alpha with GPT</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. Another interesting example</span><a href="https://www.ontotext.com/blog/why-should-you-combine-chatgpt-with-knowledge-graphs/" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">is the interplay between GPT and knowledge graphs</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. If you remember the toolbox of Figure 1, there is an interesting hybrid combination to explore,</span><a href="https://www.oxfordsemantic.tech/blog/ask-the-oxford-professors-the-interplay-between-machine-learning-and-semantic-reasoning" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">that of semantic tools (such as ontologies and knowledge graphs) with LLM capabilities from tools such as ChatGPT</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. Thus, a reason for selecting this post title, was to draw the attention of the reader on the fast-growing field of GPT APIs, versus thinking of GPT as a stand-alone conversational agent.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">The idea that we need a system of systems approach to build “general purpose AI” (not AGI, “just” complex intelligent systems with a large range of adaptative behavior) is only a hypothesis, but one that seems to hold for the moment. I am reproducing below a figure that I have overused in my blog posts or talks, but that illustrate this point pretty well. The question is how to design a smart autonomous robot for a factory, that is able to learn on its own but also able to learn as a community, from similar robots deployed in the factory or similar factories. Community learning is something that <a href="https://www.braincreators.com/insights/teslas-data-engine-and-what-we-should-all-learn-from-it">Tesla cars are doing</a> by sharing vehicle data so that experience grows much faster. Any smart robot would build on the neural net AI huge progress made a decade ago about perception and recently (this post’s topic) about natural language interaction. On the other hand, a robot needs to have a world model, to generate autonomous goals (from larger goals, by adapting to context) and then to plan and schedule. The robot (crudely) depicted in the picture illustrates the combination of many forms of AI represented in Figure 1. Security in a factory is a must; hence the system of systems is the choice framework to include “black box” components under the supervision of certifiable/explainable AI modules (from rules to statistical ML inference, there are many auditable techniques). Similarly, this figure illustrates the dual need for real-time “reflex” action and “long-term” learning (which can be distributed on the cloud, because latency and security requirements are less stringent).</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"></p><div style="text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJI31WRdGgh8rRxnGyq4HyR2uUJa6QfGjA6JfCOJmDZxU7kNYkZF2U32EU95WxGCNYqrb9tqka7PKv-jaqXLsqg9wK5YEdHprfzGulsRKZ10nBV0jAFSL1MnrNzAg2QsuFardAqJ7ZNLnnFZicEUsMPxT1iQWFS_CaJCab2tzPaD7ewcZRn5Rx8tgs/s939/SmartRobotmanyAI.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="647" data-original-width="939" height="440" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJI31WRdGgh8rRxnGyq4HyR2uUJa6QfGjA6JfCOJmDZxU7kNYkZF2U32EU95WxGCNYqrb9tqka7PKv-jaqXLsqg9wK5YEdHprfzGulsRKZ10nBV0jAFSL1MnrNzAg2QsuFardAqJ7ZNLnnFZicEUsMPxT1iQWFS_CaJCab2tzPaD7ewcZRn5Rx8tgs/w640-h440/SmartRobotmanyAI.png" width="640" /></a></div></div><span style="font-family: verdana;"><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Figure 2: Multiple AI bricks to build a smart robot community</span></span><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> <br /></span></span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">4. AI Ecosystem Playbook</span></span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">This last section is about “playing” the AI ecosystem, that is taking advantage of the constant flow of innovation in AI technology, while keeping one’s differentiation know-how safe. 2023, with the advent of the multiple versions and variants of GPT, makes this question/issue very acute. On the one hand, you cannot afford to miss what OpenAI and Microsoft (and Google, and many others) are bringing to the world. On the other hand, these capabilities are proposed “as a service”, and require a flow of information from your company to someone else’s cloud. The smarter you get with your usage, the more your context/prompts grow, the more you tell about yourself. I also want to emphasize that this section deals with only one (very salient but limited) aspects of protecting the company when using outside AI tools. For instance, when using GPT4 or GitHub copilot to generate code, the question of the IP status of the fragments “synthesized” from the “open source” training data is a tough one. Until we have (source) attribution as a new feature of generative AI, one has to be careful with the commercial use of “synthetic answers” (a large part of open-source code fragments requires the explicit mention of their provenance).</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">The following figure is a simplified abstraction of how we see the question of protecting our know-how at Michelin. It is based on recognizing three AI domain:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"></p><ul style="text-align: left;"><li style="text-align: justify;"><span style="font-family: verdana; text-indent: -18pt; white-space: pre-wrap;">“core” A</span><span style="text-indent: -18pt; white-space: pre-wrap;"><span style="font-family: verdana;">I: when the algorithm reproduces a differentiation process of the company (this is obvious for manufacturing companies but is much more widely applicable). What defines “core AI” is that the flow of information (data or algorithm) can only be from outside to inside. In many cases, telling a partner (a research lab or a solution vendor) about your digital traces (from the machines, connected products or IOT-enriched processes) is enough to let others become experts in your own field with the benefit of your own experience that is embedded into your data. Deciding that a domain is “core” is likely to slow you down because it is a large burden on playing “the ecosystem game”, but it is sometimes wised to be later rather than being disrupted.
</span></span></li><li style="text-align: justify;"><span style="font-family: verdana;">“Industry AI” is what you do, together with your competitors, but is specific to your industry. This is where there is more to be gained to reuse solutions or techniques that have been developed by the outside ecosystem to solve problems that you share with others. Even though there are always aspects that are unique to each manufacturing, distribution, supply chain situation, the nature of the problems is common enough that “industry solutions” exist, and sharing your associated data is no longer a differentiation risk.<br /><br /></span></li><li style="text-align: justify;"><span style="font-family: verdana;">“Commodity AI” represents the solutions for problems that are shared across all industries, activities that are generic, for instance for “knowledge workers”, and offer similar optimization and automation opportunities across the globe. Because of the economy of scale, “commodity AI” is by now mean lower quality: it is the opposite, commodity AI is developed by very large players (such as the GAFAM) on very large set of data and represent the state of the art of methods in Figure 1.</span></li></ul><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiInZXiMbATwW4PSwU-W44hZngCPBP9R2p5fvJGlSLcBd5Ji86XGDyNmwl_VGFSMM5dNzGu-YMtQmOhJFRkMO5o_Wz2L7fv5spmHTq96w-KXxoc5nWxr01bcShsPb4ZWsDILZtDElqoxVS5aC9LUoVzW78gJWfJZuqwQaC--FiUmU9ZaftUFDuz8DJ8/s939/COREnonCoreAI.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="370" data-original-width="939" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiInZXiMbATwW4PSwU-W44hZngCPBP9R2p5fvJGlSLcBd5Ji86XGDyNmwl_VGFSMM5dNzGu-YMtQmOhJFRkMO5o_Wz2L7fv5spmHTq96w-KXxoc5nWxr01bcShsPb4ZWsDILZtDElqoxVS5aC9LUoVzW78gJWfJZuqwQaC--FiUmU9ZaftUFDuz8DJ8/w640-h252/COREnonCoreAI.png" width="640" /></a></div><span style="font-family: verdana;"><br /></span><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="font-style: italic; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">Figure 3: AI Ecosystem – Trade-off between differentiation and leverage</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">This distinction is a little bit rough, but it yields a framework about what to use and what not to use from the outside AI ecosystem. As shown in Figure 3, Core AI is where you make your solutions. It does not mean that you do not need to learn about the state of the art by reading the relevant literature or implementing some of the new algorithms, but the company is in charge of making its own domain specific AI. It also requires extra care from a network isolation and cybersecurity perspective because when your process/product know-how is embedded into an AI piece of software the risk of both IP theft and very significant cyber-attacks grows. Industry AI is the realm of integration of the “best of breed” solutions. The main task is to identify the best solutions which requires a large exchange of data and to integrate them, to build your own “systems of systems”. Customization to your needs often requires writing a little bit of code of your own, such as your own meta-heuristics, or your own data processing/filtering. These solutions also required to be protected from cybersecurity threats (for the same reasons, the more you digitize your manufacturing, the more exposed you are), but IP theft from data leaks is less of a problem (by construction). Industry AI is based on trust with your partners, so selecting them is critical. Commodity AI are solution that already existed before you considered them, they are often proposed as a service, and it is wise to use them while recognizing that your level of control and protection is much lower. This is the current ChatGPT situation: you cannot afford to miss the opportunity, but you must remember that</span><a href="https://mashable.com/article/samsung-chatgpt-leak-details" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">your prompt data goes to enrich the cloud base</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> and may be distributed – including to competitors – later on. Since commodity AI has the largest R&D engine in the world (tens of billions of dollars), it has to be a key part of your AI strategy, but learning to use “AI as a service” with data and API call threads that do not reveal to much is the associated skill that you must learn to develop.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Figure 3 also represents a key idea, that of “</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">public training sets</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”, which we implemented</span><a href="https://www.usine-digitale.fr/article/bouygues-fait-de-son-e-lab-le-fer-de-lance-de-sa-transformation-numerique.N389489" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">at Bouygues</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> 25 years ago. Training sets are derived from your most significant problems, using either data from “industry AI” problems that have been cleaned or, sometimes, data from “CORE AI” problems that have been significantly transformed so that the problem is still here, but the reverse engineering of your own IP is no longer possible. Training sets are used both internally to evaluate the solutions of outside vendors, but they can be shared to facilitate and accelerate the evaluation. As pointed out in the following conclusion, knowing how your internal solution and pieces of system stand against the state of the art is a must for any AI solutions. Curating “training set” (we used to call them “test sets” when the preferred optimization technique was</span><a href="https://en.wikipedia.org/wiki/Operations_research" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">OR algorithms</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, and moved to “training sets” with the advent of machine learning). It easy for technical teams to focus on delivering “code that works” but the purpose of the AI strategy is to deliver as much competitive value as possible. Training sets may be used to organize public hackathons, such as the</span><a href="https://www.roadef.org/roadef-le-challenge" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">ROADEF challenge</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> or such as</span><a href="https://en.wikipedia.org/wiki/Netflix_Prize" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">the famous competition that Netflix organized</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, more than a decade ago, on recommendation algorithms. Experience shows that learning to curate the training sets for your most relevant problems is a great practice – as any company who has submitted a problem to the ROADEF challenge knows. It forces communication between the teams and is more demanding than it sounds. Foremost, it embodies the attitude that open innovation (looking out for what others are doing) is better than the (in)famous “ivory tower” mentality.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> <br /></span></span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">5. Conclusion: Beware of Exponential Debt</span></span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">The summary for this blog post is quite simple:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"></p><ul style="text-align: left;"><li><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Many breakthroughs have happened in the field of LLM and conversational agents. It is a transformative revolution you cannot afford to miss. Generative-AI-augmentation will make you more </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">productive</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">, provided that you keep being “the pilot”.
</span></span></li><li><span style="font-family: verdana;">Think of LLM as unique capabilities: <span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">language fluency</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">knowledge management</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">. They work as standalone tools, but much more value is available if you think “systems of systems” and start playing with in/out APIs and extended contexts.
</span></span></li><li><span style="font-family: verdana;">You cannot afford to go alone, you must play the ecosystem, but find out how to benefit from the external solutions without losing the control of your internal knowledge.</span></li></ul><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I will not attempt to conclude with a synthesis about the state of AI that could be proven wrong in a few months. On the contrary, I will underline a fascinating consequence of the exponential rhythm of innovation: whichever piece of code you write, whichever algorithm you use, it becomes obsolete very fast since its competitive performance follows a reverse law of exponential decay. In a tribute to the reference book “</span><a href="https://openexo.com/book" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Exponential Organizat</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">ions”, I call this phenomenon </span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">exponential debt</span><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, which is a form of technical debt. The following figure (borrowed</span><a href="https://study.com/learn/lesson/exponential-growth-decay-formula-function.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">here</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">) illustrates the dual concept of exponential growth and exponential decay. What exponential debt means is that, when AI capabilities grow at an exponential rate, any frozen piece of code has a relative performance (compared with the state of the art) that decays exponentially.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8Rspnukc2SR_l6Mp1jgx5aRta6WzjEDGJS89v2XQ53gDLOqngLuvkQ5hH3wo7H-3RjCxRO8u-FpnKaEgmCI-51B2KlWNmHJkf_Gl8Q-yVZZPaQH9c8ZTbyG_BS51tKeq4rtlRRDZVOz2pBKoQL0fnZTjyEJq3VqSmqqh-BdrcgiZZhMwwmBahvQ5C/s468/ExponentialDecay.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="262" data-original-width="468" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8Rspnukc2SR_l6Mp1jgx5aRta6WzjEDGJS89v2XQ53gDLOqngLuvkQ5hH3wo7H-3RjCxRO8u-FpnKaEgmCI-51B2KlWNmHJkf_Gl8Q-yVZZPaQH9c8ZTbyG_BS51tKeq4rtlRRDZVOz2pBKoQL0fnZTjyEJq3VqSmqqh-BdrcgiZZhMwwmBahvQ5C/s320/ExponentialDecay.png" width="320" /></a></span></div><span style="font-family: verdana;"><br /></span><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">This remark is a nice way to loop back on the necessity to build</span><a href="https://www.routledge.com/The-Lean-Approach-to-Digital-Transformation-From-Customer-to-Code-and-From/Caseau/p/book/9781032225012" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">exponential information systems</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, that are modular systems that can be changed constantly with “software as flows” processes.</span><a href="http://informationsystemsbiology.blogspot.com/2018/12/what-todays-ai-can-and-cannot-do-part-1.html" style="text-decoration-line: none;"><span style="color: black; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">As pointed by Kai-Fu Lee</span></a><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, AI requires science and engineering, because AI is deployed as a “modality” of software. Scientific knowledge is easily shared, engineering requires experience and practice. Being aware of exponential debt is one thing, being able to deal with it requires great software engineering skills.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><b>This is one of the key topics of <a href="https://www.institut-lean-france.fr/evenement/masterclass-lapproche-lean-de-la-transformation-digitale-le-23-juin/">my upcoming Masterclass on June 23rd</a>.</b></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="background-color: #f2f2f2; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 14px; line-height: inherit !important; margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); text-align: start; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: normal;"><br style="box-sizing: inherit; line-height: inherit !important;" /></span><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><div><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"><br /></span></span></div><br /><p></p>Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com4tag:blogger.com,1999:blog-438942112364524044.post-84786192895896388422023-01-29T06:24:00.004-08:002023-01-29T22:46:07.206-08:00An Attempt to Sort Out Digital Carbon Footprint Evaluations<p> <span style="font-family: Arial; font-size: 11pt; white-space: pre-wrap;"> </span></p><span id="docs-internal-guid-984137f6-7fff-d3e2-6e30-5f154d13bb92"><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 14pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">1. Introduction</span></h2><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcgK-hW6EMOgGf0pNrDzeI3yPuM9JPN6pmDwLAOsNLZ1FB9A4O-YtobJGRfWaHAcUdzKEvzRc3f09opEN0BGQosMyXgFpjhki88s62saSdbsl7SfPjM_-sU6AJDrffBfzR1guP6X7gqASMjI2uuEv2deXrEuwr6EeJFgeB6Cc6wOSe6evVD93Uj8WZ/s340/ADTreportTIC.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: justify;"><img border="0" data-original-height="340" data-original-width="340" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcgK-hW6EMOgGf0pNrDzeI3yPuM9JPN6pmDwLAOsNLZ1FB9A4O-YtobJGRfWaHAcUdzKEvzRc3f09opEN0BGQosMyXgFpjhki88s62saSdbsl7SfPjM_-sU6AJDrffBfzR1guP6X7gqASMjI2uuEv2deXrEuwr6EeJFgeB6Cc6wOSe6evVD93Uj8WZ/s320/ADTreportTIC.jpg" width="320" /></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">Ten years ago, together with</span><a href="https://en.wikipedia.org/wiki/Erol_Gelenbe" style="text-align: justify; text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Erol Gelenbe</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">, we wrote a</span><a href="https://www.academie-technologies.fr/en/academie/" style="text-align: justify; text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">NATF</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;"> report on</span><a href="https://media.xpair.com/pdf/economies-energie/Impact_TIC.pdf" style="text-align: justify; text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">the impact of ICT (Information & Communication Technology) on worldwide electricity consumption</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">. You may also read</span><a href="https://www.researchgate.net/profile/Erol-Gelenbe-2/publication/282517963_The_impact_of_information_technology_on_energy_consumption_and_carbon_emissions/links/566d609908aea0892c525812/The-impact-of-information-technology-on-energy-consumption-and-carbon-emissions.pdf" style="text-align: justify; text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">the associated ACM article</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">. This report was the result of a collective study on ICT electricity consumption, prompted by a growing concern that ICT CO2 impact was growing exponentially, especially from 2006 to 2010. The report showed that there was indeed growth, but no strong accelerations, and that many crazy forecasts that were just … forecasts. I decided six months ago to refresh this analysis and to address the larger issue of the impact of digital on CO2 emissions. My reasons for returning to this question were twofold. First, as was the case 10 years ago, there is a rising cycle of concern, with lots of exaggerations and scary forecasts about what will happen in 2030. Second, at we are now much more knowledgeable about the lifecycle analysis of servers and digital devices, so we can address the “</span><a href="https://www.epa.gov/climateleadership/scope-3-inventory-guidance" style="text-align: justify; text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">scope 3</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">” questions more thoroughly than we could in 2010.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The goal of this blogpost is just to share a few numbers which I have painfully collected and sorted out. They are meant to be used as “orders of magnitude”, since the level of uncertainty is still quite high, but they may come handy to the reader when trying to assess the situation. To update this 10 years-old study, I will apply the following methodology. First, I will look at 2015 because we have plenty of data and many published studies, so I can make a synthesis with a reasonable level of confidence. I will look at the global numbers but also how they were produced (resource units x carbon unit costs). Then I will retrofit to 2010 to see how it fits with previous studies of 2010, including the NATF document. Using the resource units (number of servers, laptops, smartphones, TVs …) and unit costs model, I can extrapolate to 2020 and propose a fact-checking matrix to compare against what is found today on the Web. </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">This is the main contribution of the post, reflected in the matrix that may be found in the conclusion</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. I will also offer my own prospective for 2030, which is not that difficult once you have the structure of the ICT footprint impact, but which is subjective by nature.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The main findings, compared to the previous study are a mix of confirmation and new information. On the server side, the progress made with individual consumption and PUE means that the total worldwide consumption of data centers has stayed globally constant over the past 20 years, despite a vigorous growth in the numbers of servers. However a new class of server-side devices, namely the blockchain mining infrastructure has made a stupendous entrance with a consumption that is growing fast and will soon be similar to the rest of the data centers. On the device side, the continuous growth of 2000-2015 has stalled, so the prospect for the future is rather good, while network usage will continue to grow, exponentially fast in term of traffic, but steadily and moderately in term of CO2 impact. When we add all CO2 impacts of our digital activity, we find today a share slightly below 3% of our total CO2 emissions, which represents approximately 2% of our total greenhouse gas emission (</span><a href="https://www.brookings.edu/blog/future-development/2022/11/29/tracking-emissions-by-country-and-sector/#:~:text=Global%20greenhouse%20gas%20emissions%20(GHG,reaching%2062%20GT%20by%202030." style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">58Gt today</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">).</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">This post is organized as follows. Section 2 focuses on “</span><a href="https://plana.earth/academy/what-are-scope-1-2-3-emissions" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">scope 2</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”, that is the electricity consumption due to digital activities. I will adopt the distinction between ICT (Information & Communication Technology) and E&M (Entertainment & Media) proposed by Jens Malmodin and Dag Lunden in their per “</span><a href="https://www.researchgate.net/publication/327248403_The_Energy_and_Carbon_Footprint_of_the_Global_ICT_and_EM_Sectors_2010-2015" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">The Energy and Carbon Footprint of the Global ICT and E&M Sectors 2010–2015</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. This paper serves as the backbone for this post, as the EINS report FP7-2888021 “Overview of ICT Consumption (D8.1)” was, 10 years ago, the backbone of the NAFT report. My goal is to reconstruct and share a few useful “</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">key figures</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” to understand the number of devices and the units of electricity consumption. Once I have analyzed/reconstructed the 2015 numbers from their paper, I will reconcile them with other sources regarding the 2010 values (which is easy). I will then project them to extrapolate the 2020 values, which is harder and must include newcomers such as bitcoin mining. Section 3 deals with LCA (Lifecycle analysis) and the “scope 3” impact, with a specific focus on the CO2 footprint of manufacturing. I separate scope 2 and scope 3 because scope 3 analyses are both more difficult and more recent. The early studies of 10 years ago, including mine, were rather naïve. In this section, I start with the same source for 2015 and I propose some adjustment based on what we know today about manufacturing estimates. I will apply the same logic of reconciling with 2010 numbers and extrapolating to 2020 numbers. Section 4 applies this analysis, in a prospective manner, to 2030. On one hand, it is speculative and thus offered as food for thought. On the other hand, the literature is full of scary predictions about the exponential growth of ICT impact, so it is useful to understand what the drivers are and to make your own opinion about what realistic growth may be. As far as I am concerned, most of the forecasts I have seen in the past year are off by a factor of two.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Because the topic of ICT CO2 impact is very sensitive</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, and because I am not in a position of neutrality since I have been an ICT professional all my life, I need to point out that I am not an expert on this topic. I am leveraging several published research articles and applying the type of modelling and analysis that I have been doing for a long time (to be specific, </span><span style="font-family: Arial; font-size: 11pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">what gives me credibility is not what I know, but the large number of errors I have made in the past 20 years performing similar analyses</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">). I have been interested in the topic of CO2 impact for a really long time thanks to my father Paul CASEAU (since 1978 to be precise), former hear of EDF R&D, and because I had access to qualified experts when I was part of EDF Scientific council 10 years ago. Before that, I had been in charge of sustainable development for a few years at Bouygues Telecom, which gave me access to the great network built by</span><a href="https://www.dunod.com/livres-fabrice-bonnifet" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Fabrice Bonnifet</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. I have a further motive in collecting data about ICT CO2 impact, which will be the topic of a future post, but which may be found in my</span><a href="https://sites.google.com/site/yvesresearchagenda/home/3-year-plan-2022-2024?authuser=0" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">research agenda</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. </span><span style="font-family: Arial; font-size: 11pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">As always, the content of this blog is purely personal and does not reflect in any way the opinions of my past and present employers.</span></p><div style="text-align: justify;"><br /></div><br /><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 14pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">2. Digital Energy Consumption Update</span></h2><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 11pt; white-space: pre-wrap;">One of the difficulties when discussing “the impact of digital life on the planet” is to be clear about the scope of digital and what kind of digital we are talking about. In this post I follow the approach proposed by Jens Malmodin and Dag Lunden:</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: Arial; font-size: 7pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> ICT is mostly made of servers (data centers), networks (fixed & mobile), user devices (there is a long list, see Malmodin’s paper for detail, the most important ones are smartphones, laptops, desktops, telco interner/routers boxes) … to which I have added bitcoin mining (a new kind of data centers that was not there in 2010 or 2015)</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: Arial; font-size: 7pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">E&M (Entertainment and Media) is made of TVs, STB (set-top boxes), home audio systems and many other small categories. Today I will simply focus on TV + others, since TV sets are a topic of interest of their own, are the bigger category of E&M, and it is critical to know whether TVs are included when you read a figure about “digital impact”.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I will start with what I have collected about ICT electricity consumption, which was the core of the NATF study that I quoted in the introduction.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Server consumption has remained relatively flat with worldwide value which is slightly above 200 TWh/year</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. The number of servers shipped worldwide has grown from 8.9M in 2010 to 11.09 in 2015 to 12.15M in 2020,</span><a href="https://www.statista.com/statistics/219596/worldwide-server-shipments-by-vendor/" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">according to Statista</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. Consequently, the number of servers has grown, from approximately 40M in 2010 to 55M in 2020. The servers have also grown more powerful to accommodate a strong growth in the workload, but their energy efficiency has significantly increased over the past 20 years. There are many papers to read on this topic, but I strongly suggest “</span><a href="https://itif.org/publications/2020/07/06/beyond-energy-techlash-real-climate-impacts-information-technology/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Beyond the Energy Techlash: The Real Climate Impacts of Information Technology</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” by Colin Cunliff. The paper spends some time debunking some of the myths and false claims associated to ICT consumption. It is very similar to the NATF paper, but being written in 2020, it is more relevant. The key message in both documents is that the progresses made on (1) PUE (2) Typical server energy intensity (3) average number of servers per workload (thanks to the cloud) and (4) the average storage drive energy use (kilowatt-hour/terabyte) have made significant progress from 2010 to 2018, which compensate the growth in servers and workloads. You can find another analysis in the article “</span><a href="https://www.researchgate.net/publication/339564167_Recalibrating_global_data_center_energy-use_estimates#:~:text=As%20of%202021%2C%20the%20total,38%2C46%2C%2056%5D%20." style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Recalibrating global data center energy-use estimates</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” by Eric Masanet, Armand Shehabi, Nuoa Lei, Sarah Smith and Jonathan Koomey (sciencemag.org), which quote a total consumption of 205 TWh in 2018. The values that I found for 2010 and 2015 vary in the 200-240 TWh range (for 2010, Malodin reports 240 and ITU reports 205). It is important, when comparing with other published articles, such as “</span><a href="https://www.researchgate.net/publication/322205565_Assessing_ICT_global_emissions_footprint_Trends_to_2040_recommendations" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Assessing ICT global emission footprint : Trends to 2040 & recommendations</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” by Lofti Belkhir and Ahmed Elmeligi, to check if the datacenter consumption figures are collected or forecasted (easy to track when the source is anterior to the date of the reported value !). There has been a large stream of papers forecasting huge growth of datacenter electricity consumption, and this dramatic growth had not occurred.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Network consumption is growing at a constant rate. </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">While the consumption of network was less than datacenters in 2010 (185TWh for Malmodin), it grew to 242TWh in 2015. In addition to the Malmodin paper, a great source on this topic is the ITU document (L.1470) : “</span><a href="https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=14084" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Greenhouse gas emissions trajectories for the information and communication technology sector compatible with the UNFCCC Paris Agreement</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. This report gives similar numbers (230TWh in 2015), to be compared with 220 TWh in the IEA report. It is harder to extrapolate the 2020 numbers, but it seems reasonable to expect a 20% growth, so I selected 280 TWh as my estimate in the table below.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">On the other hand, the total consumption of user devices has probably peaked in 2015</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. The history of ICT device electricity consumption shows two stages: significant growth the previous decade, up to 342TWh in 2015, followed by stabilization because we see a clear stabilization in the number of devices. The number of smartphones sold each year went from 300M in 2010 to 1420M in 2015 and then 1433 in 2021 (2020 was a special year,</span><a href="https://www.statista.com/statistics/263437/global-smartphone-sales-to-end-users-since-2007/" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">see the curve on Statista</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">). For laptops,</span><a href="https://www.statista.com/statistics/272595/global-shipments-forecast-for-tablets-laptops-and-desktop-pcs/" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">the shipment figures</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> are 201M in 2010, 163M in 2015 and 222M in 2020 (COVID rebound). For desktops, we have 157, 113 and 80M. Malmodin & Lunden’s paper works with the estimate of 3700 M smartphones, 970M laptops and 370 desktop PC in operations in 2015. If you make the division you will see that he assumes 34 kWh as the unit (yearly) electricity consumption, which is less what most “back of the envelope study” (365d x 8h x 60W -> more than 150kWh) assume, but more than what</span><a href="https://ecocostsavings.com/how-many-watts-does-a-laptop-use/" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">field studies have found</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> (20kWh). The 2015 number matches that of the ITU report (345 TWh). Because the number of device has stabilized and</span><a href="https://www.netbooknews.com/tips/how-many-watts-laptop-use/" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">it looks like the consumption of user devices such as a laptop is fairly stable</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, I have used 2015 figure as my estimate for 2020. Notice that the 342 TWh number includes 45TWh for phones, 34TWh for laptops, 109 for PC and 30 TWh for displays.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">The arrival of Blockchain and bitcoin mining makes for a totally different picture, that of true exponential growth with a worldwide consumption of approximately 100TWh in 2022</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, that is the half of all other servers worldwide. On this topic the best source that I found is the IEA report “</span><a href="https://www.iea.org/reports/data-centres-and-data-transmission-networks" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Data Centres and Data Transmission Networks</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” (quite recent : September 2022). The figures are pretty consistent what what is reported by Statista on</span><a href="https://www.statista.com/statistics/881472/worldwide-bitcoin-energy-consumption/" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Bitcoin Energy Consumption</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> (from which I drew the 70 TWh figure reported in the table below).</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">The most significant contributor of the E&M segment is the consumption of TV sets</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. There are conflicting trends at work : on the one hand, to move from LCD to LED has reduced the unit consumption of a pixel; on the other hand the growth of the TV sets in size and number of pixels (from HD to fullHD to 4K and,</span><a href="https://www.techradar.com/opinion/8k-tvs-might-be-killed-by-eu-energy-rules-but-maybe-the-world-can-live-with-that" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">maybe, to 8K</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">). However, according to Malmodin’s paper, our previous CRT and LCD TVs were such power hogs that the newer larger LED sets result in a continuous improvement from 200kWh in 2010 to 140 kWh in 2020. The estimate total of 1900M of TV sets worldwide in 2015 generated 160TWh of electricity consumption. Together with STB, home theaters and other devices, the electricity consumption of the E&M sector in 2015 was 467kWh.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 14pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">3. LCA (Life Cycle Analysis) and Carbon Footprint for Manufacturing</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Let us start with data centers. </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">The carbon footprint reported by Malmodin and Lunden in 2015 is 160 Mt of CO2</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, with a breakdown of 135 Mt for operations, 25Mt for scope 3, mostly manufacturing. Operations being mostly electricity consumption, it means that Malmodin uses a rather large CO2 intensity for the worldwide average, namely 560 g/kWh. We will return to that question later on. If we divide the manufacturing number by the number of servers, we get approximately 500kg/year per server for scope 3, which is consistent with both a number of spec sheets from Dell or</span><a href="https://www.hpe.com/psnow/doc/a50002430enw" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">HP</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, actually on the high side. We notice that scope3 is roughly 16% of the total footprint, a figure that we find in many documents from server manufacturer, but which often suppose a high CO2 intensity for operations. With more realistic CO2 intensity, the previously mentioned Dell server represents 320kg/year for manufacturing and 1760 kWh/year of electricity consumption, which can be evaluated as 680 kg/year for a better mix of 380g/kWh, leading a 30% scope3 contribution to the footprint. This discussion may be found in “The carbon footprint of servers”. To better understand the carbon footprint a of server, I recommend</span><a href="https://boavizta.org/en/blog/empreinte-de-la-fabrication-d-un-serveur" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">to read the longer Boavizta article</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. To retrofit to 2010 and to extrapolate to 2020, we need to understand the variation of the manufacturing footprint, which is hard because the topic is newer than electricity consumption for server. In the following table, I have assumed constant carbon unit costs (cost per server). The result is a slow progression between 2010 and 2020 that reflects the growth with the number of servers.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">As far as devices are concerned, Scope 3 (manufacturing) is the major driver of the carbon footprint. For 2015, Malmodin & Lunden report a total scope 3 footprint of 196 Mt, including 64 Mt for smartphones, 32 Mt for laptops and 28 Mt for desktops. The associated CUC (carbon unit cost) is 200 kg (163 M new units shipped producing 32 Mt), which is lower than the typical 300 kg that we find in other more recent studies. The typical CUC numbers for a modern laptop are 300kg for manufacturing and 100kg for usage (for instance, from the circular computing article “</span><a href="https://circularcomputing.com/news/carbon-footprint-laptop/#:~:text=The%20average%20estimated%20carbon%20footprint,and%20how%20often%20it's%20used" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">what is the carbon footprint of a laptop</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”). As before (electricity consumption), it is hard to get a common number from different sources (for instance, look at</span><a href="https://www.it.ox.ac.uk/article/environment-and-it" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">the Oxford IT services paper</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">). When looking at the PCF (Product Carbon Footprint)</span><a href="https://static.lenovo.com/ww/docs/regulatory/PCF_ThinkPad_T490.pdf" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">of the Lenovo T490</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, the first figure one sees is the 615 kg, lifetime footprint until you read later that, because of the large variation, Lenovo reports the 95 percentile confidence number (safe by overestimation) rather than the average of 421 kg which is written below (+/- 108). When trying to adjust to 2010 and 2020 values, it looks like the unit costs have grown from 2010 to 2015 as laptops became more sophisticated, but that the manufacturing unit costs has stabilized since then. These are the hypotheses that I took more generally to extrapolate the 2015 total device footprint to 2010 and 2020.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">To compute the carbon footprint of ICT, we need the evaluation of Networks. For 2015, Malmodin reports a total footprint of 169 Mt, that has grown from 144Mt in 2010. It is hard to find much information about the scope3 / scope 2 structure of the network footprint (neither in the document or in the references such as “</span><a href="http://kth.diva-portal.org/smash/get/diva2:1177210/FULLTEXT01.pdf" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">The electricity consumption and operational carbon emissions of ICT network operators</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” but the report states that total scope 3 for network and data center is approximately 50Mt, which I have used here (25 Mt for both). </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Altogether, we get a carbon footprint of 730 Mt for ICT, and a retrofit that gives 700Mt in 2010</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. The 2010 number is very consistent with what was found in the NATF report, and also what is reported in the study “</span><a href="https://www.researchgate.net/publication/349044966_The_climate_impact_of_ICT_A_review_of_estimates_trends_and_regulations" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">The climate impact of ICT: A review of estimates, trends and regulations</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” by Charlotte Freitag, Mike Bernes-Lee, Kelly Widdicks, Bran Knowles et al. For 2015, we have a similar value of 730 Gt proposed by Colin Cunliff in the</span><a href="https://itif.org/publications/2020/07/06/beyond-energy-techlash-real-climate-impacts-information-technology/" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">previously quoted ITIF paper</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">To get a reasonable estimate for 2020, I have used the previously mentioned CUC together with the expected resource unit. The big change is the necessity to include bitcoin mining as a new category. I have applied the same scope 2 / scope 3 structure than data centers to extrapolate the CO2 footprint from the electricity consumption. There is a lot of uncertainty about the CO2 intensity of electricity consumption for bitcoin mining, as told in the</span><a href="https://ccaf.io/cbeci/ghg/index" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Cambridge Bitcoin Web site</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. Thus, </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">I evaluated the 2020 footprint of Bitcoin at 75Mt</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">To get a full estimate of the “digital footprint”, we need to add the E&M sector. Malmodin & Lunden estimate the total footprint at 280Mt in 2015, out of which 160Mt are due to TV sets (note that STB are worth 53.3 Mt). For TV sets, Scope 3 (manufacturing mostly but also shipping) accounts for 70Mt, which yields a CUC (carbon unit footprint) of approximately 300kg (obtained from the shipment volume). The number of TV sets has grown from 1.47 billion in 2010 to 1.6 in 2015</span><a href="https://www.statista.com/statistics/268695/number-of-tv-households-worldwide/" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">according to Statista</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> (while Malmodin quotes a higher figure of 1.9 billion) but the growth is now very slow. When we add all the numbers, </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">we get a digital footprint of 1154 Mt in 2020</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, which is consistent with the values presented in the Freitag paper.</span></p><div style="text-align: justify;"><br /></div><br /><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 14pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">4. Prospective Analysis for 2030</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">This third section is very different from the previous two. Before, I tried to collect and sort out published numbers with my own attempt to select sources that I believe to be credible. Here I will build my own analysis and share with you my prevision for 2030 consequently. This is just food for thoughts, you should do your own … I believe in sharing my thoughts and exposing myself to constructive criticism, but I have no crystal ball and what follows only reflects what I think today and does not pretend to be right or accurate.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">For the server parts, I consider that the progress on server unit consumption will continue, as the world moves to AMD servers of newer generations that are indeed more energy-frugal. For the manufacturing part, there is also some hope coming from the lab since the most energy-consuming part, that is the lithography, is also making progress. We can expect a significant reduction of server’s CUC in the future, but here I only assumed a small improvement in 2030. There is a more complex question of using “green energy” for data centers. Here I apply the CO2 intensity of electricity that is produced globally (which is what the studies that I have used are doing). You might think that, as large cloud providers are switching to green energy, their scope 2 footprint should become zero. On the other hand, green energy that is obtained through certificates does not really impact the planet if the regional mix does not change. The benefits of zero-carbon energy source only materialize for the planet when their share becomes significant in the total mix, which is not the case at the worldwide scale.</span><a href="https://www.carbone4.com/en/analysis-carbon-footprint-cloud" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">This is a complex topic</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, which I do not have the time to address here, so my forecast does not include the benefits of “greener sources of energy” for data centers.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">The 2030 forecast reported in the conclusion totals at 1060 Mt of CO2</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. The growth is mostly the growth of bitcoin mining, which is very hard to forecast. I propose 300TWh in this table, but I really hope to be shown wrong. Any guess here is as good as mine, since 300TWh is a huge slice of the electricity pie. For the other ICT categories, there is a fair amount of continuity since, at the first level of analysis, I have used constant CUC (unit carbon footprint) and regular (linear) growth of resource units. As we learn more about the expected improvements for manufacturing chipset, this table will be revised. As it stands, it is pretty conservative : it does not reflect much improvement, but no “crazy growth” either (with the exception of bitcoin mining).</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The goal of the table was also to challenge some of the ratios (share of ICT or digital in the total CO2 / GHG footprint) so I have added the worldwide figures in the table to show the matching ratios. This requires a few comments:</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">1.</span><span style="font-family: Arial; font-size: 7pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The values for 2010, 2015 and 2020 are easy to find, the value that I decide to put in 2030 is highly controversial, since they are related to political claims of various governments. For instance, I would not feel comfortable to propose a number for France. However, at the worldwide scale, the CO2 and GHG (greenhouse gas) have evolved regularly enough so that a conservative forecast is reasonably safe (+/- 10%)</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">2.</span><span style="font-family: Arial; font-size: 7pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Beware of the difference between CO2 and GHG, that has been growing constantly over the past decades. Today, the non-CO2 gases account for half the warming effects of the emitted CO2. The 52Gt figure popularized by</span><a href="https://en.wikipedia.org/wiki/How_to_Avoid_a_Climate_Disaster#:~:text=How%20to%20Avoid%20a%20Climate%20Disaster%3A%20The%20Solutions%20We%20Have,recommends%20strategies%20to%20tackle%20it." style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Bill Gates in his last book</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> is no longer current. As a result, it seems fair to evaluate Digital with its share of CO2 emissions (the bold line in my table), but if you divide by GHG, you get a smaller number, significantly smaller. </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">In 2020, the share of digital in the GHG emissions is 2%</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 14pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">5. Conclusion</span></h2><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The following table reports all the numbers presented in this blog post. I have colored the cell to reflect my level of confidence. Green means that I was able to cross-check against a couple of reference with an error level that seems below 10%. Orange cells contain figures where I still lack enough sources or where I have a pending interrogation but consider the figure to be “a practical hypothesis” with an expected incertitude level at 30%. Pink cells are “educated guesses”, offered to give a complete prospective, but with no confidence. Obviously, this is “Work in Progress” (WIP) and is subject to regular updates.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKTNg9eIvcx6T-ktwFlukr9JKkFSpNK9B1umEm1O0jE2DrT9uhEDf2ez8d3ebs3Mfe8fVBDSLtF2NXoLbVuyCA-V6Fx5sGzDTrT_Enh9azWZsVdDULnEsEliDWUomMa15Ty-N6AL8ekr82tgzFw29HgzQbXsd66LnAlFZnUVHolAr9p1rWUMw9-8kk/s1280/IllustrationICT2030.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKTNg9eIvcx6T-ktwFlukr9JKkFSpNK9B1umEm1O0jE2DrT9uhEDf2ez8d3ebs3Mfe8fVBDSLtF2NXoLbVuyCA-V6Fx5sGzDTrT_Enh9azWZsVdDULnEsEliDWUomMa15Ty-N6AL8ekr82tgzFw29HgzQbXsd66LnAlFZnUVHolAr9p1rWUMw9-8kk/w640-h360/IllustrationICT2030.jpg" width="640" /></a></div><br /></span><p style="text-align: left;"></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I decided to share this table, albeit its WIP status, because it is hard to collect these numbers, which are badly needed to make one’s opinion. Not only ICT impact is often exaggerated, but mostly the trends are inflated. It take a long time to follow the “data thread” to find out which data source was used in the first place. To illustrate this with an example, I received some “</span><span style="font-family: Arial; font-size: 11pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">digital footprint ratios</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” while participating in the “</span><a href="https://www.fresquedunumerique.org/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">fresque du numérique</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”, which quoted</span><a href="https://www.arcep.fr/la-regulation/grands-dossiers-thematiques-transverses/lempreinte-environnementale-du-numerique.html" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">ARCEP</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> numbers, which are based on</span><a href="https://infos.ademe.fr/magazine-octobre-2021/decryptage/il-devient-urgent-de-mesurer-limpact-environnemental-global-du-numerique/" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">ADEME</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, which quotes</span><a href="https://theshiftproject.org/article/pour-une-sobriete-numerique-rapport-shift" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Carbon Shift Project</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> and and</span><a href="https://www.greenit.fr/etude-empreinte-environnementale-du-numerique-mondial/" style="text-decoration-line: none;"><span style="color: black; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">greenit.fr</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, which eventually quote published research papers that are mostly about forecasts. A similar story could be told about the report of the “</span><a href="https://cec-impact.org/ressource/rapport-final-de-la-premiere-convention-des-entreprises-pour-le-climat/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Convention Entreprise Climat</span></a><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” (cf. page 118).</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">To conclude, I will propose three pieces of advice:</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: Arial; font-size: 7pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Beware of percentages</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> (like, the “</span><span style="font-family: Arial; font-size: 11pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">impact of digital is 4% of greenhouse gases</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”), make sure that you are told which ratio is used, that is if you are given A/B as a percentage, make sure that you know which values are taken for A and B. When you see a document that has only percentages and no CO2 Mt values, keep a critical eye!</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: Arial; font-size: 7pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Once you are given A & B, </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">make sure that the scope is clear</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> : what is taken in and out, what are the resource units and the “carbon unit costs” (CUC)</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: Arial; font-size: 7pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Always check the references to find </span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">which sources are actual collected data analysis versus prospective studies</span><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. I have read more than 100 articles to prepare this post, while the actual number of trustable sources (published scientific articles) is less than 10, half of which are more of the “prospective” kind, trying to predict the future, as I did in Section 4. To illustrate this point, there are far more opinions about what the consumption of a laptop should be than scientific studies based on collected consumption of real users.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 12pt; text-align: left;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><div style="text-align: left;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com1tag:blogger.com,1999:blog-438942112364524044.post-70119974112851735992022-11-01T00:05:00.000-07:002022-11-01T00:05:22.807-07:00Software Craftsmanship Through Beautiful Code<p> </p><p><span style="font-family: Verdana; font-size: 16pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">1.Introduction</span><span style="font-family: Verdana; font-size: 16pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><span id="docs-internal-guid-c306bafa-7fff-fda0-d38d-6cc25fcc2fe7"><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I wrote a post this summer, for our</span><a href="https://blogit.michelin.io/" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Michelin IT blog</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, entitled “</span><a href="https://blogit.michelin.io/software-defined-excellence-for-michelin/" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Software-Driven Excellence For Michelin</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” where I explain why software excellence is critical today. The pitch is written about Michelin, but it applies to most companies today since it is the logical consequence of two trends that I have commented abundantly in this blog: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">software is eating the world</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” and the “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">expected value delivery, from technology to innovation, is accelerating</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. As a consequence, each company needs to manage software as flows, and to deploy the best “</span><a href="https://www.oreilly.com/library/view/accelerate/9781457191435/" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Accelerate</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> practices” following the lead of the “software best-in-class”. This one of the central ideas of my own book, “</span><a href="https://www.amazon.com/Lean-Approach-Digital-Transformation-Customer/dp/1032225025" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The Lean Approach to Digital Trans</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">formation”, inspired my many key thinkers, that one must organize its software development process with the best possible level of mastery of CICD, DevOps, Product mode, and so on. It does not mean than “one size fits all” and that we should all copy the best Silicon Valley software startups and scaleups. For instance, the great article from Gergely Orosz, “</span><a href="https://blog.pragmaticengineer.com/project-management-at-big-tech/" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">How Big Tech Runs Tech Projects and the Curious Absence of Scru</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">m”, is very insightful for everyone, but companies have different levels of maturity and skills levels. The practice of SCRUM is sometimes superfluous, and sometimes quite effective. When defining what software-driven means for them, companies need to be humble and realistic to fairly assess their current level of software excellence. The “</span><a href="https://www.norulesrules.com/" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">talent density</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”, the level of margins and the ability to adapt the compensation structure to the current “talent war”, the size of the developer networks and how well it is intricated in open source communities at scale … all weigh on the capacity to adopt some of the “best of the best” practices.</span></span></p><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigKSOBgWzEcqx6DU1hWVkBGqR_fzRKmrzZqM-umfYK1E-mKkypDlRcfGssYrN_UfmIUVujT5QxQwTFa8msVYrLFTKew6nyFfzr5XCONTTfY_yRKKEsH7IxcewdG-hEBdaWlpNQvCxcI5vKaS0bnnZt_rp9tfa7X2QKTv-Apxg3hNwWqKpW829CAlA9/s2560/TheLeanApproachDigitalTransformation.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="2560" data-original-width="1792" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigKSOBgWzEcqx6DU1hWVkBGqR_fzRKmrzZqM-umfYK1E-mKkypDlRcfGssYrN_UfmIUVujT5QxQwTFa8msVYrLFTKew6nyFfzr5XCONTTfY_yRKKEsH7IxcewdG-hEBdaWlpNQvCxcI5vKaS0bnnZt_rp9tfa7X2QKTv-Apxg3hNwWqKpW829CAlA9/s320/TheLeanApproachDigitalTransformation.jpg" width="224" /></a></div><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">This being said, software in general and artificial intelligence in particular is indeed eating the world, so software excellence is a must for every company. For most companies, software excellence is a “collective sport” that requires to develop a community, inside and outside the company. As Bill Joy wrote, “there are more smart people outside than inside your company”, so leveraging the software community at large, with the multiplicity of open source – and commercial software platforms – is a must. Software excellence is about software engineering, in the sense of this beautiful quote : “</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Programming is what you do on your own, software engineering is what you do through time and space</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” (I heard this quote from a guest on the</span><a href="https://www.thoughtworks.com/" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Thoughtworks</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> podcast, any help to attribute it properly is welcome). What you do “through time” is mostly about maintainability and agility (the ease of change), what you do “through space” is mostly about collaboration and programming in the large (the ease of sharing code and intent). </span><a href="https://en.wikipedia.org/wiki/Software_craftsmanship" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Software craftsmanship</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> is a one of the ways to reach software excellence. In the seventh chapter of my book, I give a few pointers about the benefits of software craftsmanship:</span></span><p></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Software craftsmanship as its</span><a href="https://manifesto.softwarecraftsmanship.org/" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">manifesto</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> shows, is embedded in the agile movement, but goes further to recognize the importance of “the craft”, the know-how of the software developers (and there are many roles here, not only programmers). Software craftsmanship inherits the lean practices of “standards”, which belong to the teams and evolve continuously : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Developing programming standards - or refactoring standards - is both necessary to encourage "code reviews" and "peer programming", and useful to let the team organize its continuous training, alone or within a "guild" of programmers who share a technical or functional domain</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The “beauty of the code” comes from sharing, which is both a practice to grow quality (“more eyeballs find more bugs”), to develop craft (to quote here from the manifesto : “Not only individuals and interactions, but also a community of professionals”) and to foster reuse. This starts at the team level: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">digital transformation reintroduces the need for code reviews</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Beauty is also defined “in time and space”, that is the ease of maintenance and adapting the code to further needs, and the ease of collaboration (previous point). This a key point of chapter 7 and the topic of various blog posts such as “</span><a href="https://informationsystemsbiology.blogspot.com/2016/09/the-business-value-of-code-elegance-in.html" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The business value of code elegance in the digital age</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Sharing is actually a good proxy for “beauty” and yields a practical metric, quite similar to Google’s page rank for web content.</span></span></p><p style="line-height: 1.284; margin-bottom: 8pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">In this book chapter, I define “code elegance” as the combination of minimalism, readability of intent and “virality of design” (which is the combination of genericity of reusable patterns and the cleverness that makes the code seen as a “useful, reusable trick”)</span></span></p><p style="line-height: 1.284; margin-bottom: 12pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Today’s post will explore some aspects of software craftsmanship through the prism of “</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">beautiful code</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”, thanks to a few classical books. Section 2 is centered around Bob Martin’s “Clean Code” book. It is a collective book with many prestigious signatures, but under the leadership of Bob Martin (with many references to his large set of contributions). I will focus on “Clean Code” although there are other books with titles that focus on craftsmanship, because I find “Clean code” to be the “source book”. I will also mention briefly “Clean architecture”, because code and software architecture are intricately related, but the focus in this post is mostly code. Section 3 looks at another great resource, the 2007 collective book on “Beautiful Code”. This book, together with another great classic, “Programming Pearls”, is a wonderful read for anyone who likes to write code, but also a great source of wisdom to understand what “craftsmanship” is. I will then conclude with a short comment about</span><a href="https://organisationarchitecture.blogspot.com/2016/03/lean-user-experience-et-lean-analytics.html" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">user experience design</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, which is not the focus of the books selected for this post, but is nevertheless a key component of modern software craftsmanship, together with</span><a href="https://informationsystemsbiology.blogspot.com/2018/10/from-digital-transformation-to-service.html" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">system reliability engineering</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></span></p><span style="font-family: verdana;"><br /><br /></span><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">2. Clean Code</span></span></h2><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: left;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLc_qjoNVn198omEERezXsvBlcWdN-Lps6sTy1pvJEnurfi1xYrQdk6iLUMsTKCb7t94-82inr0sUIehhbLnmoZz1-G0b26oZ6MYgfWmRSKea9n1phh184toj_XcxEt0Id36jYqBy1Ku9e3vOYRbkZo4HjN-l122nlMpEFCPvJ5BsaKRVrGqe98mWx/s499/CleanCode.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="499" data-original-width="378" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLc_qjoNVn198omEERezXsvBlcWdN-Lps6sTy1pvJEnurfi1xYrQdk6iLUMsTKCb7t94-82inr0sUIehhbLnmoZz1-G0b26oZ6MYgfWmRSKea9n1phh184toj_XcxEt0Id36jYqBy1Ku9e3vOYRbkZo4HjN-l122nlMpEFCPvJ5BsaKRVrGqe98mWx/s320/CleanCode.jpg" width="242" /></a></div><span style="font-family: verdana;"><p style="text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">« </span><a href="https://www.oreilly.com/library/view/clean-code-a/9780136083238/" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Clean Code : A Handbook of Software Craftsmanship</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> », by the legendary “</span><a href="https://en.wikipedia.org/wiki/Robert_C._Martin" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Uncle Bob</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”, was published in 2008. As is the case with “Beautiful Code”, these are not the most recent books that one can read about software craftsmanship, and they show their age, for instance with the lack of user experience design focus. Still, this is a collective book with contributions from the “best software minds” and the editing/writing talents of Bob Martin. This is definitely not a book to summarize, it is a book to read deeply and “work with”. As Bob Martin says in the introduction: « </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Learning to write clean code is hard work. It requires more than just the knowledge of principles and patterns. You must sweat over it. You must practice it yourself, and watch yourself fail. You must watch others practice it and fail. You must see them stumble and retrace teir steps. You must see them agonize over decisions and see the price they pay for making those decisions the wrong way</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> Software craftsmanship is seen as a discipline, a long journey towards “mastery”, in the sense of</span><a href="https://www.danpink.com/books/drive/" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Daniel Pink</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></p></span><p></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Software craftsmanship is about experience. It takes time to develop the “craft”, the intuitive judgment about what could work and what probably won’t stand the test of travel through space and time. It is not a set of practices that could be codified and embedded into KPIs. This does not mean that there are no software quality metrics, it just means that knowing them is not enough: “The</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> bad news is that writing clean code is a lot like painting a picture. Most of us know when a picture is painted well or badly. But being able to recognize good art from bad does not mean that we know how to paint. So too being able to recognize clean code from dirty code does not mean that we know how to write clean code! </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”</span></span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I am not the only one to see the lean roots in software craftsmanship. In his foreword,</span><a href="https://en.wikipedia.org/wiki/Jim_Coplien" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">James Coplien</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> recognizes the relevance of</span><a href="https://kanbanize.com/lean-management/value-waste/what-is-5s-lean" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">lean 5S</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> to software craftsmanship.</span><a href="https://informationsystemsbiology.blogspot.com/2020/11/lean-for-digitaltransformation.html" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I have borrowed the 5S idea to Mary Poppendieck in my own book</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, here I quote (and compress) his foreword:</span></span></p><p style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">The 5S philosophy comprises these concepts:</span></span></p><p style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">• Seiri, or organization (think “sort” in English). Knowing where things are—using approaches such as suitable naming—is crucial.</span></span></p><p style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">• Seiton, or tidiness (think “systematize” in English). There is an old American saying: A place for everything, and everything in its place. A piece of code should be where you expect to find it—and, if not, you should re-factor to get it there.</span></span></p><p style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">• Seiso, or cleaning (think “shine” in English): Keep the workplace free of hanging wires, grease, scraps, and waste.</span></span></p><p style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">• Seiketsu, or standardization: The group agrees about how to keep the workplace clean. Do you think this book says anything about having a consistent coding style and set of practices within the group? Where do those standards come from? Read on.</span></span></p><p style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">• Shutsuke, or discipline (self-discipline). This means having the discipline to follow the practices and to frequently reflect on one’s work and be willing to change.</span></span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The topic of the book is “clean code”. Many definitions are given in the book such as “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Clean code can be read, and enhanced by a developer other than its original author. It has unit and acceptance tests. It has meaningful names. It provides one way rather than many ways for doing one thing. It has minimal dependencies, which are explicitly defined, and provides a clear and minimal API</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. I will now share some of the thoughts extracted from reading the book, as filtered through the prism of “beautiful code”.</span></span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><h3 style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: left;"><span style="font-family: Verdana; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">2.1 Beautiful Code as Writing Standards</span></h3><p style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Beautiful code starts with a code that is easy to read: “</span><span style="font-family: Verdana; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Clean code is simple and direct. Clean code reads like well-written prose. Clean code never obscures the designer’s intent but rather is full of crisp abstractions and straightforward lines of control</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. In particular, the writing standards in the book deal with:</span></p><p style="line-height: 1.38; margin-bottom: 12pt; margin-left: 36pt; margin-top: 12pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Names</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">: proper naming conventions are critical to readability, especially from a time and space perspective. Names must use real words but avoid excessive length, with a focus on “revealing the intension” and using “searchable” words.</span></p><p style="line-height: 1.38; margin-bottom: 12pt; margin-left: 36pt; margin-top: 12pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Functions</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">: functions must be short (approx. 20 lines long), with a clear purpose (one main goal for each function, that is precisely captured by the name). Functions should “really do one thing” and keep their number of input arguments below 3. Functions must be homogeneous as far as the abstraction level is concerned: “</span><span style="font-family: Verdana; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Mixing levels of abstraction within a function is always confusing. Readers may not be able to tell whether a particular expression is an essential concept or a detail. Worse, like broken windows, once details are mixed with essential concepts, more and more details tend to accrete within the function</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. One could write a complete 10 pages essay, just on this topic. I find that “your mileage may vary”, based on the type of language and type of problem you are addressing, but these few pieces of advice do stand the test of time. There are few comments about how to address exception handling which I truly enjoyed – such as: “Returning</span><span style="font-family: Verdana; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> error codes from command functions is a subtle violation of command query separation. It promotes commands being used as expressions in the predicates of if statements. … Try/catch blocks are ugly in their own right. They confuse the structure of the code and mix error processing with normal processing. So, it is better to extract the bodies of the try and catch blocks out into functions of their own</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”, now that I spend a fair amount of time writing Go code (exception handling is not Go’s strong point).</span></p><p style="line-height: 1.38; margin-bottom: 12pt; margin-left: 36pt; margin-top: 12pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Commenting</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">: this is another topic where the range of opinions</span><a href="https://blogit.michelin.io/no-comment/" style="text-decoration-line: none;"><span style="color: black; font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">is wide</span></a><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. The book points out the obvious “bad (unnecessary) comments”. Comments should never be an excuse for bad code. However, there are cases where comments are useful to enrich the explanation for intent, or to warn about a non-trivial design decision. This is something that we will see in the next section. I refer the reader to Chapter 17 about the “commenting” smells. This final quote summarizes the author’s viewpoint, which I share: “</span><span style="font-family: Verdana; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Code should be literate since depending on the language, not all necessary information can be expressed clearly in code alone. Big Dave shares Grady’s desire for readability, but with an important twist. Dave asserts that clean code makes it easy for other people to enhance it. This</span><span style="font-family: Verdana; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> may seem obvious, but it cannot be overemphasized. There is, after all, a difference between code that is easy to read and code that is easy to change</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></p><p style="line-height: 1.38; margin-bottom: 12pt; margin-left: 36pt; margin-top: 12pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Formatting</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">: how to set up the code in documents, pages and lines. This is key topic for “time and space” code motion: “</span><span style="font-family: Verdana; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">First of all, let’s be clear. Code formatting is important. It is too important to ignore, and it is too important to treat religiously. Code formatting is about communication, and communication is the professional developer’s first order of business</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. For instance, the recommendation for horizontal formatting is to avoid excessive indentation (short functions) and to keep line length between 80 and 120 characters (depending on the sources, I tend to like 100). The order is also important, as one might guess: “</span><span style="font-family: Verdana; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">If one function calls another, they should be vertically close, and the caller should be above the callee, if at all possible. This gives the program a natural flow</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></p><h3 style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-size: small;">2.2 Beautiful code as patterns</span></span></h3><p style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">What makes the code both easy to read and to reuse is the clear identification of abstraction patterns. Patterns may be constructs of the programming languages such as classes or data structures (more about this in the next section). Patterns may be algorithmic or software architecture “parametric recipes”, such as the concurrency patters proposed in Chapter 13 of this book (a topic where the age of the book shows). The book includes lots of suggestions about OOP (Object-oriented programming), some of which are borrowed from Bob Martin other books: “</span><span style="font-family: Verdana; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">No matter which module does the calling and which module is called, the software architect can point the source code dependency in either direction. That is power! That is the power that OO provides. That’s what OO is really all about—at least from the architect’s point of </span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">view”. As he has famously quoted: “ A class should have only one reason to change”, that is a unique stakeholder with a unique goal for the class. The is the</span><a href="https://en.wikipedia.org/wiki/Single-responsibility_principle" style="text-decoration-line: none;"><span style="color: black; font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Single Responsibility Principle</span></a><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. It follows that classes should be small (long classes multiply the risk of failing SRP). Since maintainability and change management go hand in hand, we read in Chapter 10 that the class hierarchy should be organized for change.</span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-size: small;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> <br /></span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">2.3 Beautiful code as practices</span></span></h3><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"> </span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Craftsmanship is not simply about the craft object (the code) but about practices to deliver this object. The two most obvious are testing and refactoring. Testing is an obvious topic here, and should be the topic of another post, as there is much to say. Testing is part of craftsmanship: “</span><span style="font-family: Verdana; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">First Law: You may not write production code until you have written a failing unit test. Second Law: You may not write more of a unit test than is sufficient to fail, and not compiling is failing. Third Law: You may not write more production code than is sufficient to pass the currently failing test</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. Just to quote one of the many suggestions, tests should be fast, independent, repeatable, self-validating and timely (FIRST). Refactoring is also an obvious practice since the consequence of agility is emergent design (and continuous architecture, for similar reasons). Chapter 12, written by Jeff Langr, is devoted to the practice of emergent design. Design does not precede coding in a rigid (waterfall) way, it co-evolves with the actual programming. This is the heart of iterative software development methods. But there is “a law of nature” (see my book on “lean digital transformation”) that applies here: any emergent (incremental) process produces waste that need to be addressed through pruning and refactoring. This is what nature does for biological processes (life), this is what we must do as software craftsmen. Chapter 14 deals with successive refinements, which reminds me of the “fractal programming method” that we had formalized at Bouygues’s e-Lab 20 years ago : Start with the big picture (a tree), get a program that runs with dummy functions, write the unit tests – starting at the edge with input data extraction, and then replace the leaves in the tree with successive refinements, starting with the most difficult problem first.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; text-align: left;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Verdana; white-space: pre-wrap;"> </span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-size: small;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">2.4 Clean code as principles<br /></span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"> </span></span></h3><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The book starts with a collection of quotes from famous software giants, such as Bjarne Stroustrup, inventor of C++ and author of The C++ Programming Language, who says: “ </span><span style="font-family: Verdana; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I like my code to be elegant and efficient. The logic should be straightforward to make it hard for bugs to hide, the dependencies minimal to ease maintenance, error handling complete according to an articulated strategy, and performance close to optimal so as not to tempt people to make the code messy with unprincipled optimizations. Clean code does one thing well</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. To achieve these goals, there exists a number of guiding principles which have emerged over the years. A first rule says that you should avoid repetition: “</span><span style="font-family: Verdana; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">This is one of the most important rules in this book, and you should take it very seriously. Virtually every author who writes about software design mentions this rule. Dave Thomas and Andy Hunt called it the DRY principle (Don’t Repeat Yourself). Kent Beck made it one of the core principles of Extreme Programming and called it: “Once, and only once.” Ron Jeffries ranks this rule second, just below getting all the tests to pass”. </span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> Bob Martin has proposed a set of five principles called SOLID:
</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The</span><a href="https://stackify.com/solid-design-principles/" style="text-decoration-line: none;"><span style="color: black; font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">SRT principle</span></a><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> which we just saw,</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The</span><a href="https://stackify.com/solid-design-open-closed-principle/" style="text-decoration-line: none;"><span style="color: black; font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Open-Closed Princ</span></a><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">iple, that says that a class should be closed for modification and open for extensions (though subclasses).</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The</span><a href="https://stackify.com/solid-design-liskov-substitution-principle/" style="text-decoration-line: none;"><span style="color: black; font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Liskov Substitution Principle</span></a><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, that says that something that is true for instances of a class should stay true for instances of subclasses (or subtypes). For instances, a consequence of this principles says that function ranges should be co-variants and arguments should be contra-variants (a cool controversy in the “types for OOP” community which I was a member of 30 years ago). Here also, a separate 10 pages blog post would be necessary to do justice to this question.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The</span><a href="https://stackify.com/interface-segregation-principle/" style="text-decoration-line: none;"><span style="color: black; font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Interface Segregation Principle</span></a><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, that says that a client of another class/modules should not depend on the interfaces that it does not use.</span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://stackify.com/dependency-inversion-principle/" style="text-decoration-line: none;"><span style="color: #003399; font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The Dependency Inversion Principl</span></a><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">e, which is another OOP principle about class structures that says that high-level modules should not depend on lower-level modules and that abstraction should not depend on concrete classes.</span></p><h3 style="line-height: 1.284; margin-bottom: 12pt; margin-top: 0pt; text-align: left;"><span style="font-size: small;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> <br /></span><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">2.5 Clean Architecture</span></span></h3><p style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: left;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"></span></p><div style="text-align: justify;"><div class="separator" style="clear: both; font-family: Verdana; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt_yfnZgzMqIqP9iBeht7HR-e50U346u8PGLjV9FG90W-pFXxQdFgDojOYz7c5vvAF8uc5FFwpRVtXNmkiS9fXvNBCqWrBjkOdW0ePgbRo2Jan0GbGXLUtuF6ZPTy-nHG5xFb5KhpOui5Uiebn505Y7VguDgkf8toOv_6kK3yGEJBOjAIVuHlddrPh/s500/CleanArchitecture.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="500" data-original-width="383" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt_yfnZgzMqIqP9iBeht7HR-e50U346u8PGLjV9FG90W-pFXxQdFgDojOYz7c5vvAF8uc5FFwpRVtXNmkiS9fXvNBCqWrBjkOdW0ePgbRo2Jan0GbGXLUtuF6ZPTy-nHG5xFb5KhpOui5Uiebn505Y7VguDgkf8toOv_6kK3yGEJBOjAIVuHlddrPh/s320/CleanArchitecture.jpg" width="245" /></a></div><p style="text-align: justify;"></p><p><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">In “Clean Code”, Bob Martin also mentions the “PPP set of principles” : SRT, OCP and</span><a href="https://blog.devgenius.io/common-closure-principle-the-story-of-an-evolving-architecture-6919b452c8db" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> </span><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">Common Closure Principle</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">, which says that classes which tend to change for the same reason should be placed together in the same module. This principle is explained in the other book that I mentioned: “</span><a href="https://www.oreilly.com/library/view/clean-architecture-a/9780134494272/" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">Clean Architecture : A Craftsman's Guide to Software Architecture and Design</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">”. Software architecture is a key aspect of craftsmanship that would require a different post. Although this post is about beautiful code, I decided to include a few ideas gather from “Clean Architecture”. Obviously, this is even more partial, incomplete and biased than usual, so I urge you to read the two books. There are clear links and resonance between the beautiful design at the code and the architectural level: modularity, readability of intent, minimality … to name a few. This quote from Grady Booch illustrates the proximity with the ambition mentioned in the introduction: “Architecture</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> represents the significant design decisions that shape a system, where significant is measured by cost of change”</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">. “Clean Architecture” was published in 2017, so it represents a viewpoint that is closer to the present state of software development.</span></span></p><p></p><p></p><ol><li><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">This book is heavily concerned with “maintainability”, including agility, that is the possibility to evolve a software system “at the speed of business”: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">The goal of software architecture is to minimize the human resources required to build and maintain the required system</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">”. As mentioned in the introduction, an “elegant code” that is easier to change and to fix, brings business value (in this book, “maintenance” is seen as the complete corrective and evolutive scope): “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">Of all the aspects of a software system, maintenance is the most costly. The never-ending parade of new features and the inevitable trail of defects and corrections consume vast amounts of human resources</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">”. Further along the book, the author emphasizes that architecture is about building sustainable (agile, maintainable, evolutive) systems: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">However, the architecture of a system has very little bearing on whether that system works. There are many systems out there, with terrible architectures, that work just fine. Their troubles do not lie in their operation; rather, they occur in their deployment, maintenance, and ongoing development</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">”. Without surprise, clean architecture heavily relies on SOLID principles: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">How would we have solved this problem in a component-based architecture? Careful consideration of the SOLID design principles would have prompted us to create a set of classes that could be polymorphically extended to handle new features</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">”. I would like to point out the obvious and dissent with the exclusive focus on maintainability: architecture is also critical for </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline;">operations</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;"> to improve performance operability, high availability, reliability and robustness to charge.
</span></span></li><li><span style="font-family: verdana;">With agile maintenance in mind, the core of design and architecture is modularity, which is the art of drawing boundaries to regroup things that change together and to separate things that can be (up to a point) designed together: “<span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">Software architecture is the art of drawing lines that I call boundaries. Those boundaries separate software elements from one another, and restrict those on one side from knowing about those on the other</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">” ... “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">Gather into components those classes that change for the same reasons and at the same times. Separate into different components those classes that change at different times and for different reason</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">s”. This is precisely</span><a href="https://www.slideshare.net/ycaseau1/cours-chapitre4-2012" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> </span><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">what I used to teach at Ecole Polytechnique 10 years ago</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">, although applying this simple piece of advice is much more an art than a science. Understanding the “landscape of change” is hard and usually comes with experience. This is not something that you can grasp when you start with a blank page, hence you need to practice continuous architecture (cf. Section 2.3 on emergent design and successive refinement): “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">The issues we have discussed so far lead to an inescapable conclusion: The component structure cannot be designed from the top down. It is not one of the first things about the system that is designed, but rather evolves as the system grows and changes</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">”. The modular architecture is the foundation for designing a system: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">We use polymorphism as the mechanism to cross architectural boundaries; we use functional programming to impose discipline on the location of and access to data; and we use structured programming as the algorithmic foundation of our modules.
</span></span></li><li><span style="font-family: verdana;">Understanding the “landscape” (structure) of change means being able to distinguish “quanta of changes” and “<a href="https://martinfowler.com/bliki/BoundedContext.html" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">bounded context</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">s” (back to drawing lines). The practical goal of software craftsmanship is to reduce the effort necessary to process the quanta of change, while the goal of architecture is to “grind the quanta” to improve maintainability. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">The importance of designing for modularity and properly identifying the frequency and root causes of expected change cannot be overstated. This is the core of </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline;">multi-modal architectures</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;"> as described in my own book: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">Boundaries are drawn where there is an axis of change. The components on one side of the boundary change at different rates, and for different reasons, than the components on the other side of the boundary</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">”. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">This also applies to proper design of system tests. Systems must be designed in a way that makes testing easier, and that makes maintaining the system tests easier: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">The solution is to design for testability. The first rule of software design—whether for testability or for any other reason—is always the same: Don’t depend on volatile things. GUIs are volatile. Test suites that operate the system through the GUI must be fragile. Therefore, design the system, and the tests, so that business rules can be tested without using the GUI</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">”.
</span></span></li><li><span style="font-family: verdana;"><span style="text-indent: -18pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">Because the book is more recent, it offers a much better (more actionable) look at concurrency issues. It starts with the fundamental distinction between stateless and stateful components, and the associated concept of mutable states. As we all know, concurrency issues starts with the distribution of mutable states (cf. the “</span><a href="https://en.wikipedia.org/wiki/CAP_theorem" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">CAP Theore</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">m”): “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">Since mutating state exposes those components to all the problems of concurrency, it is common practice to use some kind of transactional memory to protect the mutable variables from concurrent updates and race conditions</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> “. Trying to summarize principles about concurrent programming in one paragraph does not make sense, but I pick the following quote as a teaser to read the book: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">Architects would be wise to push as much processing as possible into the immutable components, and to drive as much code as possible out of those components that must allow mutation</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">”. From the obvious difficulty of managing mutable states at large comes the next evolution towards event-driven architecture: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">This is the idea behind event sourcing. Event sourcing is a strategy wherein we store the transactions, but not the state. When state is required, we simply apply all the transactions from the beginning of time</span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline;">”.</span></span></li></ol><p></p><p></p><p></p></div></span><p></p><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: left;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: Verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-size: large;">3. Beautiful Code</span></span></h2><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: left;"><br /></p><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPOEegTrEOPv6uZkUEnqUQlfhZn5woAurCTdhIGPNt_RxB613qitIs9W0Oq9Wh1Zmn5QXZhC339mD7Wd9ENqSC2REq6XzbzalbcxgPyG3WTVugqm3xUSahHb4DsikLSyyi1_qS0bJ7EFjt68kNu52_h7BCnrUYZlJrMw2MGi-qqNXly3bgyY_Ouqsf/s500/BeautifulCode.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="500" data-original-width="381" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPOEegTrEOPv6uZkUEnqUQlfhZn5woAurCTdhIGPNt_RxB613qitIs9W0Oq9Wh1Zmn5QXZhC339mD7Wd9ENqSC2REq6XzbzalbcxgPyG3WTVugqm3xUSahHb4DsikLSyyi1_qS0bJ7EFjt68kNu52_h7BCnrUYZlJrMw2MGi-qqNXly3bgyY_Ouqsf/s320/BeautifulCode.jpeg" width="244" /></a></div><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The book for this section, “</span><a href="https://www.oreilly.com/library/view/beautiful-code/9780596510046/" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Beautiful Code – Leading Programmers explain How They Think</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”, is a collection of essays edited by Andy Oram and Greg Wilson. Each essay is written by one « leading programmer » who has selected his favorite piece of software to explain what “beautiful code” means to him. This is not a book to summarize, since the main interest is to use it as a source of inspiration for your own programming. However, with each commented fragments of program come a few detailed explanations about what makes this style of design, programming, or algorithm noteworthy. Here I have extracted a few thoughts about what makes code beautiful. If I step back, I find that the main interest of the book is a set of great articles about programming domains such as bioinformatics, the CERN library, STM (</span><a href="http://book.realworldhaskell.org/read/software-transactional-memory.html" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Software Transactional Memory</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">) in Haskell, or the enterprise system for NASA’s Mars Rover Mission, to name a few. So, I invite you to read the book (it takes time, but it is a lot of smaller bites).
</span></span><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Beautiful code is useful, generic, elegant and efficient. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Without surprises, we find that the main goals for “beauty” in code are similar to what we saw in the previous section. The emphasis on “useful” is different because the kind of programming addressed in “Beautiful Code” is deeper (and lower level) that what is addressed in “Clean Code” (the first is more about elementary software libraries and algorithmic components, the second is more about “regular IT” software development). If I had to summarize the whole book with one sentence, I would say that “software craftsmanship is sustainable performance: how to achieve speed and effectiveness without compromising readability and maintainability. There is a wide consensus on the fact that being useful (that is used by a large community and reused in multiple contexts) is the pragmatic meaning of “beauty”. Genericity speaks of abstractions and patterns (see later), about the fact that a fragment of code, such as the implementation of Python dictionaries, can be used in a very diversified set of contexts. The need for elegance is captured in the title of one of the articles: treat “code as an essay”. This article quotes the “</span><a href="https://www.eetimes.com/seven-pillars-of-pretty-code/" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">seven pillars of pretty code</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”:</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Blend in (keep a consistent programming style, throughout the life of the software system)</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Bookish: formatting tips, including short lines,</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Disentangle code blocks,</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Comment code blocks,</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Declutter (cf. the previous section, clean-up and refactor, as told by Jon Bentley: Strive to add function by deleting code)</span></span></p><p style="line-height: 1.284; margin-bottom: 8pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Make alike look alike (facilitate reading by making intent more visible).</span></span></p><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Keeping things simple (</span><a href="https://quoteinvestigator.com/2011/05/13/einstein-simple/" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">as simple as possible but not simpler</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">), concise, short and without clutter (hooks for future needs that will not materialize) is a piece of advice that is found everywhere in the book. Minimalism is clear virtue for the great article (16) about the Linux driver model. It also emphasizes the importance of beautiful code to foster collaboration: “</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The Linux driver model shows how the C language can be used to create a heavily object-oriented model of code by creating numerous small objects, all doing one thing well .. The development of this model also shows two very interesting and powerful aspects of the way Linux kernel development works. First, the process is very iterative … Second, the history of device handling shows that the process is extremely collaborative”. Concision is a critical property for most authors, especially since there is a tension between concision, performance (performance tuning often results in code expansion that improve speed at the expense of readability) and readability itself (concision is not always synonymous of easy-to-read). The “aha moments” of the book come from examples that combine the three.</span></span></p><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Beautiful code often relies on beautiful data structures. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Beautiful data structures play a key role for beautiful programming in general and beautiful code in this book. They provide “easy representation” (easy to understand and easy to manipulate) and are “tuned to a purpose” (i.e., deliver the expected efficiency for the algorithm’s purpose). The book ranges from low-level data structures to increase the speed of an elementary algorithm (the next book is full of such examples) to higher-level of abstraction data model. The introductory article from Brian Kernighan about regular expression matching shows the beauty of regular expressions as patterns, one of the most reused patterns of all time : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I don’t know of another piece of code that does so much in so few lines while providing such a rich source of insight and further ideas</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” (a great definition of beauty !). The article about the ERP5 data model (</span><a href="https://www.nexedi.com/" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">ERP from Nexedi</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">) is a great testimony to the power of well-crafted generic data model. With a few abstractions (the key concepts that are handled by the ERP), we get the two benefits of powerful combinations (the genericity of the model) and the elegance of the associated code. The process/data model acts as the framework which yield both readability and repeatability (speed of learning) when writing ERP code. A lot could be said here about code and data equivalence. A few articles show the power of treating code as data, which will come as no surprise to anyone with a LISP background. If I had more time, I would write about the</span><a href="https://en.wikipedia.org/wiki/Claire_(programming_language)" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">CLAIRE programming language</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, my pet topic for the past 30 years.</span></span></p><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Reusability is fueled by beautiful patterns, which make the bridge with beautiful architecture. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">One of such patterns is the use of recursion which we find many times in the book, as is underlined by Brian Kernighan in his first article. The fourth article shows examples from search algorithms, with classical patters such as dichotomic search.</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Two other articles show the beauty of iterators as code abstractions. The “Distributed Programming with Map Reduce” article is now an historical piece, because of the prevalence of MapReduce since then: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">MapReduce has proven to be a valuable tool at Google. As of early 2007, we have more than 6000 distinct programs written using the MapReduce programming model</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Design matters. As told in one article that is deep into performance tuning: </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">“If there is a moral to this story, it is this: do not let performance considerations stop you from doing what is right. You can always make the code faster with a little cleverness. You can rarely recover so easily from bad design</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The next article, from Michael Feathers about a framework for integrated test, follows with: “I have some ideas about what good design is. Every programmer does. We all develop these ideas through practice, and we draw on them as we work”. This article offers a lesson in designing a generic and reusable framework through the proper choice of Java classes. Throughout the book, we visit a number of familiar patters, such as functional programming, the use of callbacks, polymorphism and object-oriented programming, that are explained in the context of solving one problem with a “beautiful piece of code”. The correspondence between software and system architecture and the similarities between “clean code” and “clean architecture” are illustrated by a few papers about enterprise systems, such as NASA’s collaborative information portal: “code beauty for an enterprise system is derived partly from architecture, the way the code is put together. Architecture is more than aesthetics. In a large application, architecture determines how the software components interoperates and contributes to overall system reliability”. Some of the design principles advocated here are: standards-based, loose coupling, language independence, modularity, scalability and reliability. Architecture is about communication to other stakeholders, as illustrated by the following quote: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">While the structure of a program of no more than a few hundred lines can be dictated by algorithmic and machine considerations, the structure of a larger program must be dictated by human considerations, at least if we expect humans to work productively to maintain and extend them in the long term</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Tests can be beautiful too, and testing is a beautiful practice. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I strongly recommend the 7</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: super;">th</span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> article, “Beautiful Tests”, by Alberto Savoia. He proposes a classification of tests which are all necessary : Unit tests should be beautiful for their simplicity and efficiency; other tests will be beautiful because they will help you to improve both the code and your understanding; some other tests are beautiful for their breadth and thoroughness, they help you gain confidence that the functionality and performance of the code match requirements and expectations. I give you an abbreviated version of his conclusion: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Developers who want to write beautiful cod can learn something from artists. Painters regularly put down their brushes, step away from the canvas, circle it, cock their heads, squint, and look at it from different angles and under different light. … think of testing as your way of stepping away from the canvas to look at your work with critical eyes and different perspectives – it will make you a better programmer and help you create more beautiful code</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. Another article emphasizes the need for stress tests: “As</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> software engineers, you are responsible for your own stress tests</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” (this comes with a set of three pieces of advice: implement early, pound on it and focus on the edge conditions).</span></span></p><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">However, craftsmanship should not be reduced to “beautiful”. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Some examples are more difficult to read, and some performance optimization that may prove necessary in some context, do make the code harder to understand and to change later on. In some case, we have this “aha moment” of something that is faster yet time, at other time, the “clever trick” to improve the speed of the algorithm is complex. The key point here is that “easy to read” is very subjective and depends on your own experience and expertise level. This is why expertise matters … because some the problems do require some of the tricks that are explained in the two books presented in this section. This is also why comments may be useful, especially when they explain why a simpler and more obvious design actually failed. There are some examples of such comments (including one that is dubbed by the author as one of the most useful comment in the world). The overall goal of « intent readability » is hard in itself, and even harder when you factor in the heterogeneity of the readers. This being said, as someone who write code over long period of times with large breaks (the disadvantage of being a slasher), I find that comments about design options and why a simpler strategy was not used, are huge time saver over time. I find that this quote expresses the challenge of serving multiple experience levels: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Designing software to be used by other developers is a challenge. It has to be easy and straightforward to use because developers are just as impatient as everyone else, but it can’t be so dumbed-down that it loses functionality. Ideally, a code library must be immediately usable by naïve developers, easily customized by more sophisticated developers and readily extensible by experts</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjy9HZzjEJ_EpqG4ziWqM_cwrSQh0MfM526rBK67W7meEK0T7BqPqEosj3pLh_Pp4RcFbVue7vcS5VhyF4lSXOJvxFW4zYdKUZXW0TD9DkkVFU1jDmoyQtkrROcyCofzMHtocqiaQTDnF-4-ZxLyLalQ-MAvZL6rlTTNHQrbrWrW5J9XgRua9goutA/s500/ProgrammingPearls.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="500" data-original-width="349" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjy9HZzjEJ_EpqG4ziWqM_cwrSQh0MfM526rBK67W7meEK0T7BqPqEosj3pLh_Pp4RcFbVue7vcS5VhyF4lSXOJvxFW4zYdKUZXW0TD9DkkVFU1jDmoyQtkrROcyCofzMHtocqiaQTDnF-4-ZxLyLalQ-MAvZL6rlTTNHQrbrWrW5J9XgRua9goutA/s320/ProgrammingPearls.jpeg" width="223" /></a></span></div><span style="font-family: verdana;"><div style="text-align: justify;">I<span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> will finish this section with a brief mention of Jon Bentley’s book, “Programming Pearls”. This book is an edited collection of 25 “columns” (short essays). This post is already too long, so I will not attempt to make a synthesis but rather pick a few quotes that underline some of the ideas that we just extracted from “Beautiful Code”. Because “Programming Pearls” is the work of one single author, it carries a crisp and coherent meaning for “clean code”. The overall principles for writing such code are quite similar to what we saw earlier: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Coding skill is just one small part of writing correct programs. The majority of the task is the subject of the three previous columns: problem definition, algorithm design, and data structure selection. If you perform those tasks well, writing correct code is usually easy</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. Jon Bentley is also a strong advocate for concision, which requires more thinking ahead: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Why do programmers write big programs when small ones will do? One reason is that they lack the important laziness … they rush ahead to code their first idea</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. He also advocates for minimalism: “The</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> cheapest, fastest and most reliable components of a computer system are those that aren’t there. Those missing components are also the most accurate (they never make mistakes), the most secure (they can’t be broken into), and the easiest to design, document, test and maintain. The importance of a simple design can’t be overemphasized</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></div></span><p></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">Although these two books are heavily focused on efficiency (half of the essays mention efficiency as a key quality for beautiful code), there is a tension between writing readable code and efficient code. Sometimes there is a “aha” clever trick that makes the algorithm concise AND efficient (and this is indeed a moment of beauty, Jon Bentley proposes a number of such examples, where you think: “this is so much better than what I would have done as my first impulse), some other times, as I pointed out earlier, the clever trick that makes the code faster is tricky and far from elegant. So, Jon Bentley warns about balance: “ </span></span><span style="font-family: verdana; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Many other properties of software are as important as efficiency, if not more so. Don Knuth has observed that premature optimization is the root of much programming evil; it can compromise the correctness, functionality and maintainability of programs. Save concern for efficiency for when it matters</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. These two books speak a lot about algorithms performance, trying to save processor cycles. Today, with powerful CPUs (and GPUs) performance is more often a </span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">system performance issue</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> (disk, concurrent access, network usage, …) but some of the key principles for performance analysis and improvement apply at all scale, from programming to system design. As with any capacity planning effort, performance analysis starts with data extraction (and today we have much better tools than the profilers we used 20 years ago) and the creation of performance models to identify the sizing factors. Performance models must include the state of the systems (“cold” start versus continuous “hot” operation) and load models (to perform the previously mentioned “stress tests”). In a VUCA world, performance tuning is not simply about meeting the latency/load/availability requirements, it is about delivering robustness to unexpected loads, to growth (hence the prospective analysis of the sizing factors is required) and to distributed resources failures.</span></p><p style="line-height: 1.284; margin-bottom: 12pt; margin-top: 0pt; text-align: left;"><span style="font-family: Verdana; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: Verdana; font-size: 16pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">4. Conclusion</span></h2><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: left;"><span style="font-family: Verdana; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><p style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The software craftsmanship manifesto talks about delivering value: “</span><a href="https://manifesto.softwarecraftsmanship.org/" style="text-decoration-line: none;"><span style="color: #003399; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Not only responding to change, but also steadily adding value</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. However, value is not creating by delivering software, but by software being used to produce value. For some of the low-level components described in « Beautiful code”, this distinction is irrelevant. But for most newer software systems, the user plays a key role and her user experience is critical to actually produce the intended value. This brings back to the introduction: software craftsmanship is indeed about beautiful code, but is must also focus on reliable system design and excellence in user experience (UX) design. This is a topic for another day, but I leave you with the “</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">mobile user rights</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” that we cooked up a few years ago at AXA’s digital agency, as a tool to balance a post that definitely weights on the “geek” side of the scale:</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 38pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">·</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I may use my mobile application wherever I am, whatever I am doing; the app is always readable irrespectively of the light or the distance from the screen.</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 38pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">·</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I can start on mobile device and continue on another one</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 38pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">·</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I will not need to type the same information twice; I know the reason when I am asked to input information and the act of input is made as easy as possible.</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 38pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">·</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I will never experience the app to stop without a reason</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 38pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">·</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I can find easily and quickly what I search; I can reuse and share easily what I find the in the app</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 38pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">·</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I identify myself easily, only when it is necessary</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 38pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">·</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I enjoy a pleasant, simple and playful experience with my mobile app</span></span></p><p style="line-height: 1.284; margin-bottom: 0pt; margin-left: 38pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">·</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I do not wait for the app, it reacts fast when I interact with it, and it let me knows that it took my input into account</span></span></p><p style="line-height: 1.284; margin-bottom: 8pt; margin-left: 38pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">·</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I do not need to adapt my behavior to use the app, the app adapts to me: I expect personalized and unique messages and notification, that are sensitive to context and that I can control.</span></span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">To summarize this post, looking at craftsmanship from the “beautiful code” angle has allowed us to articulate four key aspects of software craftsmanship:
</span></span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The importance of “code elegance”, which is about readability of intent, because it helps to share in time and space.</span></span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The importance of communities, at multiple scales, from the development team to software craftsmen guilds (including open source communities).</span></span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The importance of “standards” that codify and transport in “time and space” the “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">beau geste</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” (professionally appropriate way of working – the “good gesture” is a key concept from companionship when learning a craft).</span></span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt; padding: 0pt 0pt 0pt 18pt; text-align: left; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The importance of experience to develop Kaizen (in the lean sense, think of the introductory quote of Bob Martin, about learning from your and other’s mistakes) towards the relentless quest for mastery.</span></span></p><p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: Verdana; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><div style="text-align: left;"><span style="font-family: Verdana; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com2tag:blogger.com,1999:blog-438942112364524044.post-77107954452600110172022-05-22T04:34:00.005-07:002022-05-22T04:34:51.504-07:00Team Meshes and Agility at Scale<p><span style="font-family: verdana;"> </span></p><h2 style="text-align: left;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: justify; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">1.</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: justify; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Introduction</span></h2><span id="docs-internal-guid-9eee819f-7fff-9cb2-e466-f42a31fa8a62"><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-left: 18pt; margin-top: 12pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><br /></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-left: 18pt; margin-top: 12pt; padding: 0pt 0pt 0pt 18pt; text-align: justify; text-indent: -18pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt3pwzzTZ5ButjfgHk_6-K_IMIrTAbHHPC4Mj0_-SGY4b3NT-gYKAM9SY0DfuCnuilJsPDQM-4-t77GEF4K6ApqL91n7A9mzEtBiFDf7yFU9W9hhGB9shREDKFuDxtn2ftf4Om-TJ1Q595kmNJDsDjunyiuihDYgJB5R4n-xAT4ThmMojcDjW8G20B/s2560/TeamsOfTeams.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="2560" data-original-width="1665" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt3pwzzTZ5ButjfgHk_6-K_IMIrTAbHHPC4Mj0_-SGY4b3NT-gYKAM9SY0DfuCnuilJsPDQM-4-t77GEF4K6ApqL91n7A9mzEtBiFDf7yFU9W9hhGB9shREDKFuDxtn2ftf4Om-TJ1Q595kmNJDsDjunyiuihDYgJB5R4n-xAT4ThmMojcDjW8G20B/w260-h400/TeamsOfTeams.jpeg" width="260" /></a></span></div><span style="font-family: verdana;"><div style="text-align: justify;"><span id="docs-internal-guid-9eee819f-7fff-9cb2-e466-f42a31fa8a62"><span style="font-family: verdana;">Software development is a</span></span><span style="font-family: verdana;"><a href="https://informationsystemsbiology.blogspot.com/2021/03/what-does-doing-agile-mean.html" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">team sport</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. Whereas programming may be </span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">considered an individual practice or skill, developing a piece of software requires the strength and versatility of a team. This is one of the most undisputed statement of software development, every book that talks about Agile, Lean Software,</span><a href="https://organisationarchitecture.blogspot.com/2018/06/la-transformation-numerique-emerge-de.html" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">DevOps</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">, etc. emphasizes </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">the importance of cross-functional autonomous teams</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">. I could have quoted any book that I have reviewed in the past 10 years in my two blogs, I decided to pick “</span><a href="https://www.mcchrystalgroup.com/library/team-teams-new-rules-engagement-complex-world/" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Teams of Teams</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">” from General Stanley Mc Christal as an illustration, because it is a foundational book about the importance of autonomous, self-organized teams. Teams should be “long lived”, with stable membership that is critical to capitalize collective learning, but they are living objects, that also require constant adaptation, with new members coming in and out, as is rightly pointed out by Heidi Helfand in “</span><a href="https://www.heidihelfand.com/dynamic-reteaming/" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Dynamic Reteaming</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">”.</span></div><div style="text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div><div style="text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; vertical-align: baseline; white-space: pre-wrap;">Agility at scale is a necessity</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;">. This is a disputed claim since some agilists believe that one should try to avoid scaling by enforcing a strict modularity and keeping software development at the scale of a well-functioning agile team. Unfortunately, reality shows that this ideal of modularity is hard to reach in most cases. Even if the system to be built, grown or maintained is decomposed into smaller units – microservices to pick a fashionable example – the orchestration or synchronization of teams is an issue. This is precisely what “agile at scale”</span><a href="https://informationsystemsbiology.blogspot.com/2020/05/agility-at-scale-and-lean-software.html" style="text-align: left; text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">frameworks such as SAFE</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;"> are attempting to do. These frameworks should not be seen as “lean/agile methodologies in a box”, they are toolboxes to address the pains of scale (as I will point out in the conclusion, no one disputes that agility principles are easier to maintain at small scale).</span></div><div style="text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div><div style="text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;">The common thread for this blog post is that teams should be organized into a </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; vertical-align: baseline; white-space: pre-wrap;">mesh of teams</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;">. This means that the “team of teams” or the “community of teams” require some form of organization, but a form that is dynamic, scalable, self-organized from principles and highly adaptative. The </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; vertical-align: baseline; white-space: pre-wrap;">mesh</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;"> metaphor is a classical pattern from networking :</span><a href="https://en.wikipedia.org/wiki/Mesh_networking" style="text-align: left; text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">mesh networks</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;"> are precisely distributed, scalable and self-organized local area network that emerge from connecting principles. To quote Wikipedia, “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;">connections are direct, dynamic, non-hierarchical</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;">”. In the context of software development at scale, using the “mesh” metaphor is a tool to emphasize a few key ideas : distributed (versus centralized) governance, self-organization from principles that are applied locally (the global behavior emerges versus top-down design) and the structure adapts continuously to the environment (it is dynamic as opposed to static or rigid). On the other hand, a mesh is much more than a community of teams, because we have a structure, topology principles and connecting rules.</span></div><div style="text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div><div style="text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;">This post is organized as follows. The next section is a short book review of “</span><a href="https://teamtopologies.com/" style="text-align: left; text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Team topologies</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;">”, which gives an interesting blueprint for team orchestration. This book focuses on team interactions, to favor collaboration and reduce cognitive overload (which is the pressing issue if orchestration is obtained by maximizing communication). The authors define four types of teams and propose interaction patterns associated with the goals and the types of each Team. The resulting mesh self-organizes to maximize flow and to optimize the management of change. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;">Section 3 proposes a book review of “</span><a href="https://www.oreilly.com/library/view/data-mesh/9781492092384/" style="text-align: left; text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Data Mesh</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; vertical-align: baseline; white-space: pre-wrap;">”, which addresses the questions of running distributed data flows and processing at scale. A data mesh is a both a distributed system mesh and a mesh of teams. The contribution of Zhamak Dehghani is to provide a framework (from mental model to tools and practices) to address the issue faced by large companies who run multiple flows between many sources and many consumer data platforms. I will return to Agility at scale in the conclusion to show how the principle of team meshes define a “sweet spot” between two unpractical ideals : the ideal of modularity with autonomous teams that “do not need to talk much to each other” and the ideal of community where each team is perfectly aware of the goals/purpose of each other team.</span></div><div style="text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div><div style="text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div><h2 style="text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">2.</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Team Topologies</span></h2></span></span><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuwBwf1CF6r7OzISKpqiPRAxlw5VDKv9ObqGiZfyFqC9-ilAEVYqASgtzMwNVtYz-gXy1Mk2UIjeNkTFeOw1gWydXkELteRW2Vl7W9LcrGxTommL8M9Rpz1HhNtQg_1GH2axCym9jDkylbgqqAwAD2IU6x6LwgJ5gx7Ju_d622UjcktePmZL4OyUdD/s2560/TeamTopologies.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="2560" data-original-width="1708" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuwBwf1CF6r7OzISKpqiPRAxlw5VDKv9ObqGiZfyFqC9-ilAEVYqASgtzMwNVtYz-gXy1Mk2UIjeNkTFeOw1gWydXkELteRW2Vl7W9LcrGxTommL8M9Rpz1HhNtQg_1GH2axCym9jDkylbgqqAwAD2IU6x6LwgJ5gx7Ju_d622UjcktePmZL4OyUdD/w268-h400/TeamTopologies.jpeg" width="268" /></a></span></div><span style="font-family: verdana;"><br /><div style="text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">The book “</span><a href="https://teamtopologies.com/" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">Team Topologies: Organizing Business and Technology Teams for Fast Flow</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">” from Matthew Skelton, Manuel Pais, and Ruth Malan, has quickly become a “</span><a href="https://codydjango.com/team-topologies/" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">must read</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">” because it addresses the key question of team coordination and because it proposes a relevant toolbox that is both practical and applicable. The main purpose is very much aligned with the</span><a href="https://organisationarchitecture.blogspot.com/2011/08/lean-startup-et-lean-product.html" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">lean tradition</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> that I promote in this blog : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">optimize for fast flow across the whole organization, not just in small parts”. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> This is clearly a “system thinking” book, with deep insights gathered both from multiple experiences with team management and from careful analysis. I appreciated the emphasis of feedback loops, where the structure for team interaction is guided by continual experimentation and learning (“</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">sensing and feedback from every team interaction</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">”). As a book about the management of teams, there is logically a great deal of attention to </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline;">job satisfaction</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">, making sure that the management principles and the overall complexity of large scale development organization do not result into conditions that create job unsatisfaction, with a great reference to “</span><a href="https://www.danpink.com/books/drive/" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">Drive</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">” : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">This is not surprising if we consider Dan Pink’s three elements of intrinsic motivation: autonomy (quashed by constant juggling of requests and priorities from multiple teams), mastery (“jack of all trades, master of none”), and purpose (too many domains of responsibility)</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">”. As a side note, it still surprises me to see companies who aspire to become major digital players and ignore the key findings from motivation science. This is a great book to read because it is thought-provoking. I did not agree with everything I read, especially the need for “radical departure from the past” or the idea that “</span><a href="https://en.wikipedia.org/wiki/Conway%27s_law" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">Conway’s Law</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">” is an absolute truth and that “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">large, up-front designs by software architects are doomed to fail unless the designs align with the way in which the teams communicate</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">”. Reality is always more complex and richer than the abstractions found in books (including mine </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">J</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">).</span></div></span><p></p><h3 style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">2.1</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Principles derived from the Conway Law</span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><a href="https://en.wikipedia.org/wiki/Conway%27s_law" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Conway’s law</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> states that the system produced by a set of teams is organized with an architecture that mimic the teams organization, because the organization dictates the facility to communicate. The purpose of the book is thus to derive organization principles about how the teams collaborate with each other to produce a better software system: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Team Topologies addresses the design of the software development organization, with Conway’s law in view</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. By better, the authors mean more adaptable, produced faster (reducing lead time) while retaining quality (from safety to resilience): “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Team Topologies focuses on how to set up dynamic team structures and interaction modes that can help teams adapt quickly to new conditions, and achieve fast and safe software delivery</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The “and” is important: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Businesses can no longer choose between optimizing for stability and optimizing for speed</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The authors speak often of “Reverse Conway” when they mean to adapt the team topology from the intended system architecture: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">the organization is set up to match the communication paths needed in the software and systems architecture</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The book starts, therefore, by investigating how teams collaborate and define three patterns : (full) </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">collaboration</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, which requires a lots of exchanges for full synchronization, “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">as a service</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” which is asymmetrical and correspond to the “</span><a href="https://en.wikipedia.org/wiki/Law_of_agency" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">agency model</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” (when one team performs as task on behalf of the other one), and </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">facilitating </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">(also asymmetrical) when a team is a facilitator/enabler of the other team’s activity : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The remit of the team undertaking the facilitation is to enable the other team(s) to be more effective, learn more quickly, understand a new technology better, and discover and remove common problems or impediments across the teams</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Understanding the level of implied communication and the direction of the information flows help to see the associated benefits/drawbacks of the interaction patterns. Innovation, for instance, is easier with more communication: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">By design, innovation across the boundary happens more slowly than with collaboration, precisely because X-as-a-Service has a nice, clean API that has defined the service well</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The (X-)”as a service” interaction model requires a formalization of the “agency” (that is of what is expected by the “principal” team) : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The X-as-a-Service team interaction mode is suited to situations where there is a need for one or more teams to use a code library, component, API, or platform that “just works” without much effort, where a component or aspect of the system can be effectively provided “as a service” by a distinct team or group of teams</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">2.2</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Team Orchestration and Complexity</span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The focus on communication and organization is dictated by the complexity produced by scale. Obviously communication between team members is always required, useful and time-consuming, but when the size of the overall organization grows, communication becomes harder, hence more of a bottleneck (which is precisely the reason for Conway’ Law). The goal of the book is to address this issue and the resulting cognitive load when the amount of communication that is required by a team member exceeds what is manageable with comfort : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">As the complexity of the system increases, so, generally, do the cognitive demands on the organization building and evolving it. Managing cognitive load through teams with clear responsibilities and boundaries is a distinguishing focus of team design in the Team Topologies approach</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">This focus on cognitive load is critical to achieve at the same time speed and agility, while adapting constantly to new technology and business conditions (which is the rule of the game in the 21</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: super;">st</span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> VUCA century) : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">When cognitive load isn’t considered, teams are spread thin trying to cover an excessive amount of responsibilities and domains. Such a team lacks bandwidth to pursue mastery of their trade and struggles with the costs of switching contexts”</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">2.3</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Team Topologies in Four Patterns</span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The book “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">identifies four team patterns, describing their outcomes, form, and the forces they address and are shaped by</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"></p><ul style="text-align: left;"><li><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Th</span><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">e “</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">complicated system</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">” is a team that works mostly amongst itself, where most of the time is spent “internally” building a subsystem versus working on the interfaces. We could say that it fits a “legacy subsystem mode”.</span></span></li><li><span style="font-family: verdana;">The “<span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">platform team</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">” builds a component that is used much more freely, and more easily, by other teams so that this component may be seen as a “platform”. A platform is defined by its clear interfaces, the APIs, that helps the modularity of the decomposition (a complicated system is also a sub-system, but without the benefits of decoupling implied by the platform label).</span></span></li><li><span style="font-family: verdana;">The “<span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">stream-aligned</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">” team is somehow similar to a feature team that develops an “end-to-end” value stream (or user experience) while relying on platforms produced by other teams. From a value generation point of view, these teams are the top of the value chain. As stated by the authors: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">The purpose of a platform team is to enable stream-aligned teams to deliver work with substantial autonomy</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></li><li><span style="font-family: verdana;">The “<span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">enabler</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">” teams build the glue on the “team mesh”, they play a facilitator / enabler / assistance role to help the other team work better. As noticed by the authors, “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">the feature-team/product-team pattern is powerful but only works with a supportive surrounding environment”</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">.</span></span></li></ul><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">These four modes are combined to produce a topology that favors change (adaptation) by better managing flow: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Overall, the Team Topologies approach advocates for organization design that optimizes for flow of change and feedback from running systems</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The level and the type of communication for these modes are quite different, so they should drive the kind of work environment that is being proposed: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">However, different people need different environments at different times to be productive. Some tasks (e.g., implementing and testing a complicated algorithm) might require full concentration and low levels of noise. Other tasks require a very collaborative approach (e.g., defining user stories and acceptance criteria”. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> I have used the expression “mesh of teams” to emphasize the necessity to keep a dynamic vision for the way teams collaborate with each other. This is stated explicitly by the authors : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The topologies became an effective reference of team structures for enterprise software delivery; however, they were never meant to be static structures, but rather a depiction of a moment in time influenced by multiple factors, like the type of products delivered, technical leadership, and operational experience. The implicit idea was that teams should evolve and morph over time</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The book emphasizes, without surprise, the need for cross-functional autonomous teams as mentioned in the introduction: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The use of cross-functional, stream-aligned teams has a very useful side effect. Precisely because stream-aligned teams are composed of people with various skills, there is a strong drive to find the simplest, most user-friendly solution in any given situation. Solutions that require deep expertise in one area are likely to lose against simpler, easier-to-comprehend solutions that work for all members of the stream-aligned team</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. “Cross-functional autonomous” does not mean that each team owns the totality of its required skill set. It should own most of it and the exact balance is an art, more than a science (hence the focus on experimentation and adaptation). For instance, the book quotes the example of DBA : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">database-administrator (DBA) teams can often be converted to enabling teams if they stop doing work at the software-application level and focus on spreading awareness of database performance, monitoring, etc. to stream-aligned teams</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. This is good advice, but there also exist situations where teams such as platform teams should have their own DBAs. Indeed, a platform team is organized for facilitate flow to maximize speed: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">A digital platform is a foundation of self-service APIs, tools, services, knowledge and support which are arranged as a compelling internal product. Autonomous delivery teams can make use of the platform to deliver product features at a higher pace, with reduced coordination</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">2.4</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Product Mode</span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The emphasis on the team’s autonomy and self-sufficiency comes from move to “</span><a href="https://organisationarchitecture.blogspot.com/2020/10/conduire-sa-demarche-agile-du-projet-au.html" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Product mode</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”, as stated by the authors : “ </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The recent focus (at least within IT) on product and team centricity, as illustrated by Mik Kersten’s book on moving from Project to Product, is another major milestone</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The book quotes the example of Addidas who has applied the product principles to re-organize its software development teams: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Adidas invested 80% of its engineering resources to creating in-house software delivery capabilities via cross-functional teams aligned with business needs. The other 20% were dedicated to a central-platform team taking care of engineering platforms and technical evolution, as well as consulting and onboarding new professionals</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. As the title “team topology” implies, it is not enough to optimize communication, organization, intra-teams flows … it all starts with well-functioning teams, “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">a stable grouping of five to nine people who work toward a shared goal as a unit”. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The emphasis on the low numbers of members comes from the necessity to “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">achieve predictable behavior and interactions inside the team</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The authors quote from “</span><a href="https://beaugordon.medium.com/key-takeaways-from-team-of-teams-by-general-stanley-mcchrystal-eac0b37520b9" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Teams of Teams</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">the best-performing teams “accomplish remarkable feats not simply because of the individual qualifications of their members but because those members coalesce into a single organism”. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> They also quote from my favorite book, “</span><a href="https://organisationarchitecture.blogspot.com/2018/06/la-transformation-numerique-emerge-de.html" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Accelerate</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">we must . . . ensure delivery teams are cross-functional, with all the skills necessary to design, develop, test, deploy, and operate the system on the same team</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.”</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">A key principle of team organization is that of ownership, responsibility and empowerment. Each subsystem, API or feature should have a clear owner: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The danger of allowing multiple teams to change the same system or subsystem is that no one owns either the changes made or the resulting mess</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">The team becomes the unit of ownership</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. Ownership should not go down to the individual level, because this is not robust to fast change. The team is organized to maintain itself according to its purpose in a world of change, including team members: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The team takes responsibility for the code and cares for it, but individual team members should not feel like the code is theirs to the exclusion of others. Instead, teams should view themselves as stewards or caretakers as opposed to private owners. </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Think of code as gardening, not policing</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">”</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">2.5</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Architectural Practices</span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">As the Conway law suggests, there are many similarities between software and organization design. Therefore, the proven “good practices” from software architecture have more general applicability and find their place in teams’ topologies:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"></p><ul style="text-align: left;"><li><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Loose coupling, tryi</span><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">ng to minimize dependencies between components and teams, is why we want to build “platforms” versus “complicated systems”.</span><a href="https://organisationarchitecture.blogspot.com/2022/03/trois-perspectives-sur-le-management.html" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">As mentioned by Jeff Bezos</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">, in an ideal state, teams that build modular, loosely coupled, units do not need to communicate much.</span></span></li><li><span style="font-family: verdana;">High cohesion, that requires components to have clearly bounded responsibilities and strongly related internal elements, is what will focus most of the communication flow within the team.</span></li></ul><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The concept of platform, which</span><a href="https://organisationarchitecture.blogspot.com/2019/07/plateformes-digitales-de-la-boite.html" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">I have debated at length in many of my blog posts</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">, is indeed both a business and a software concept, and both an organization and an architecture pattern. In this book, the platform is the preferred pattern whenever possible: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Every software application and every software service is built on a platform. Often the platform is implicit or hidden, or perhaps not noticed much by the team that builds the software, but the platform is still there. As the philosophical expression goes: it’s turtles all the way down”</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. The authors notice something that we have also observed at Michelin: there is a strong link between growing a platform and working in a “product mode”: </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">“how do we manage a live software system with well-defined users and hours of operation? By using software-product-management techniques. The platform, therefore, needs a roadmap curated by product-management practitioners, possibly co-created but at least influenced by the needs of users</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> … </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">the evolution of the platform “product” is not simply driven by feature requests from Dev teams; instead, it is curated and carefully shaped to meet their needs in the longer term”</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. A little further they summarize the platform ambition as follows : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">A platform is not just a collection of features that Dev teams happened to ask for at specific points in the past, but a holistic, well-crafted, consistent thing that takes into account the direction of technology change in the industry as a whole and the changing needs of the organization”</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The concept of “platform team” does not apply only to software functional components, it also applies to enabling technologies. Infrastructure teams – thing of Infra as Code, critical for DevOps – can be organized with the “platform team” pattern. The “High cohesion principle” forbids to define the boundary of a team based on implementation technology, but finding the best way to use the four patterns requires judgement : “ </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Existing teams based on a technology component should either be dissolved, with the work going into stream-aligned teams or converted into another team type: as part of the platform (if the component is a lower-level “platform” component), to an enabling team (if the component is easy enough for stream-aligned teams to work with), or to a complicated-subsystem team (if the subsystem really is needed and really is too complicated for stream-aligned teams to work with</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">)”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">2.6</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">“API to reify modularity”</span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">To reify is to make something into a practical object, a “first-class citizen” when speaking in OOP (object-oriented programming) lingo. What this subtitle says is that API is what makes system really modular: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">A crucial role of a part-time, architecture-focused enabling team is to discover effective APIs between teams and shape the team-to-team interactions with Conway’s law in mind</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. So, there is no surprise if the “Team Topology” books talks a lot about API: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">With stable, long-lived teams that own specific bits of the software systems, we can begin to build a stable team API: an API surrounding each team. An API (application programming interface) is a description and specification for how to interact programmatically with software, so we extend this idea to entire interactions with the team</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The book also insists on the importance of the developer UX (user experience) when consuming a platform’s API. The experience must be consistent (from one API to the other), intuitive and simple.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">A key idea of the book is that team topology, which is both derived from identifying how the global system (and the global organization) is modularized and decompose, and from the topology itself (the type of teams and the nature of interaction), should be optimized to increase flow and to decrease un-necessary interactions. “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Flow is difficult to achieve when each team depends on a complicated web of interactions with many other teams. For a fast flow of change to software systems, we need to remove hand-offs and align most teams to the main streams of change within the organization</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. A key factor to optimize flow is to keep the platform/components at reasonable size (which is precisely the intuition between the microservices architecture) : “ </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">In all cases, we should aim for a thinnest viable platform (TVP) and avoid letting the platform dominate the discourse. As Allan Kelly says, “software developers love building platforms and, without strong product management input, will create a bigger platform than needed.”</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">3.</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Data Meshes</span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><br /></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVJKk2bvArSSkkMTIEmneh1xnWh-4KcVMy9BoKRROYs-qVqPjimy63b7GRkHFpsIyTyaqV9Sx8NAbBdiA_FRvV9NbW_lOvQLl2FptdCHd6HfWW37L1MxPh_bFFWPR0ZADMgmj0lQe-ZTrPAubnD4MdpnB9_UUom3FrOxgz2QUDE4R9oho7sJNB_kOZ/s499/DataMesh.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="499" data-original-width="381" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVJKk2bvArSSkkMTIEmneh1xnWh-4KcVMy9BoKRROYs-qVqPjimy63b7GRkHFpsIyTyaqV9Sx8NAbBdiA_FRvV9NbW_lOvQLl2FptdCHd6HfWW37L1MxPh_bFFWPR0ZADMgmj0lQe-ZTrPAubnD4MdpnB9_UUom3FrOxgz2QUDE4R9oho7sJNB_kOZ/w305-h400/DataMesh.jpeg" width="305" /></a></span></div><div style="text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">The book, “</span><a href="https://www.oreilly.com/library/view/data-mesh/9781492092384/" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">Data Mesh – Delivering Data Value at Scale</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">”, by Zhamak Dehghani, is the last step, of a journey that started with a</span><a href="https://martinfowler.com/articles/data-mesh-principles.html" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">few well-received articles</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> and</span><a href="https://www.thoughtworks.com/insights/podcasts" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">Thoughtworks podcasts</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">. The concept of data mesh addresses a key problem for data-driven companies, who need to combine flow processing with long-term analysis that require storage, what is often called hot and cold data processing (for instance in the lambda architecture). As soon as you combine distributed storage and distributed flows, there is a data governance question that precisely addressed by the concept of data mesh. I developed this opinion in my keynote lecture at</span><a href="https://www.slideshare.net/ycaseau1/dataaquitaine-february-2022" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">Dataquitaine 2022</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> (French-speaking readers may view the video here :</span><a href="https://www.youtube.com/watch?v=U2opS-nKV8c" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">L’approche du SI exponentiel au service d’une transformation digitale tirée par les données</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">).</span></span></div><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">This is a great book because it explains the data mesh concepts thoroughly – including detailed examples - and addresses the questions that one may have after reading the original papers. The concept of a data mesh is what the name says: a mental model to look at the data flows produced by a data-driven company that builds a mesh of data components from source to consumer platforms, including “store and forward” platforms. The value of the book is not the recognition of the mesh, it is a set of governance tools and practices to address scalability and evolvability, as told by the author “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I wish I could claim that data mesh principles were novel and new and I cleverly came up with them. On the contrary, the principles of data mesh are a generalization and adaptation of practices that have evolved over the last two decades and proved to solve our last complexity challenge: scale of software complexity led by the mass digitization of organizations</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The book is written at a time where the concept is still fresh (</span><a href="https://www.datamesh-architecture.com/" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">the term data mesh was coined in 2019</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">) and the data-driven community lacks the long-term experience of running data meshes along the practices described in this book : “ </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">It’s worth considering that this book is being written at the time when data mesh is arguably still in the innovator and early adopter phase of an innovation adoption curve</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. Here the analogy with SAFE, mentioned in the introduction, is worth noticing : “Data Mesh” is a “mental model” (a framework to see and describe what you already have in a data-driven company) and a set of governance patterns to solve a hard problem when running the data mesh at scale . This model does not apply for everything (transactional data and ACID constraints being one counter example). As always, the summary that I propose in this blog post is both partial and too short to do justice to the content, so you should read the book.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><h3 style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: left;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">3.1</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Principles for Data Meshes</span></h3><span style="font-family: verdana;"><br /></span><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The principles of “Data Mesh” are designed to help a company scale its data operations, with a clear focus on advanced analytics, from business intelligence to machine learning advanced services. It follows the thread of this blog post, that is its utility is related to the size of the problem: “ </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Data mesh is a solution for an organization planning to get value from data at scale. It requires the commitment of product teams and business units to imagine using intelligent decision making and actions in their applications and services</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. To say it more bluntly, this is not a technology or an architecture concept, nor is it useful for small organizations such as startups: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Data mesh is a decentralized sociotechnical approach to share, access, and manage analytical data in complex and large-scale environments—within or across organizations”</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The core of the data mesh approach is to organize the data-driven landscape into </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">data domains </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">– with a decomposition which is as modular as possible – and to recognize the flows of dependencies with a “</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">data as a product</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">” philosophy and a “self-serve data platform” practice. Because, modularity and loose coupling is only an ideal, Data mesh relies on federated governance to address the remaining dependencies at scale : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Organizationally, it shifts from centralized ownership of data by specialists who run the data platform technologies to a decentralized data ownership model pushing ownership and accountability of the data back to the business domains where data is produced from or is used</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> ”. As explained in the introduction, the purpose of the mesh is to support scalable growth by defining the local policies for the mesh nodes that may be enforced as automatically as possible (versus returning to a centralized governance body) : “ </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">it shifts data governance from a top-down centralized operational model with human interventions to a federated model with computational policies embedded in the nodes on the mesh</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> “. Although automated policies favor distributed scalability, the strength of the data mesh relies first and foremost on the human side, the role of the teams, who are called to manage “data as a product” : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Remove the possibility of creating domain-oriented data silos by changing the relationship of teams with data. Data becomes a product that teams share rather than collect and silo. Create a data-driven innovation culture, by streamlining the experience of discovering and using high-quality data, peer-to-peer, without friction</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. Thinking of data as a product is not a new idea – data architects have been advocating for</span><a href="https://www.go-fair.org/fair-principles/" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">FAIR guiding principles for scientific data management and stewardship</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> for while – but the practices proposed in this book go further : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The baseline characteristics listed in this section are an addition to what has been known as FAIR data in the past—data that meets the principles of findability, accessibility, interoperability, and reusability </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">3.2</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Data Domains</span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The fabric of the data mesh is the decomposition of data into data domains, following a</span><a href="https://en.wikipedia.org/wiki/Domain-driven_design" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">domain-driven design</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> principle. Data is organized into domains that reflects the business knowledge taxonomy. Domain-Driven architecture has many benefits, and aims at producing agility though the tight coupling between business and systems, and, hopefully, the loose coupling between domains: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Domain-driven design, and the idea of breaking software modeling based on domains, has greatly influenced the software architecture of the last decade, for example with microservices. Microservices architecture decomposes large and complex systems into distributed services built around business domain capabilities. It delivers user journeys and complex business processes through loose integration of services</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. Business data domains gives to the participant of the domain “shared awareness” about the meaning and the purpose of the data, which is represented in DDD as “</span><a href="https://martinfowler.com/bliki/BoundedContext.html" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">bounded context</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">A bounded context is “the delimited applicability of a particular model [that] gives team members a clear and shared understanding of what has to be consistent and what can develop independently</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">.” In the words of Zhamak Dehghani, data domains help to decentralize the ownership of analytical data to business domains closest to the data (either the source of the main consumer). This decentralization of ownership is critical to get the agility and the scalability that is expected from data-driven companies: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Data mesh, at its core, is founded in decentralization and distribution of data responsibility to people who are closest to the data. This is to support a scale-out structure and continuous and rapid change cycles</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">We find here the discussion started in the previous section: domain decomposition should aim to be as modular as possible, but also should recognize that (1) modularity is an ideal (2) the world evolves constantly so the domains will evolve, including the relationships that they have with each other. This is why the Data Mesh approach introduced of the concept of a “federation of data domains”, which is the equivalent of what we call “a federation of data models” at Michelin (for the same reason : a monolith approach is impractical, but true modularity is too difficult to achieve): “ </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">A federated group of domain representatives defines the policies and the data platform automates them. This is data mesh’s federated computational governance principle</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The term federation is a metaphor for two things: the participants are fairly autonomous, and there is a set of rules and policies to manage the interdependencies: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Organizationally, by design, data mesh is a federation. It has an organizational structure with smaller divisions, the domains, where each has a fair amount of internal autonomy</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. Interdependencies include the inevitable data objects that are shared in multiple context, what is called a “polyseme” in the book and what I would call “a pivot business object” : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Following DDD, data mesh allows different domains’ analytical data to model a polyseme according to the bounded context of their domain. However, it allows mapping a polyseme from one domain to another, with a global identification scheme</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">3.3</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Data as a Product</span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><br /></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">To think of data as a product means to understand that data that is shared with other team needs to deliver operational qualities such as availability, performance and freshness in a reliable and consistent manner. Sharing data (original data or processed) becomes a business-critical activity and the community of users must be addressed “as a market of consumers”. Measuring usage, volumes, performance and user satisfaction becomes the necessity of a mesh participant that shares its data “as a product”. This is only way to avoid the risk of data siloes and its counterpart, massive replication and associated desynchronization: “ </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The principle of data as a product is a response to the data siloing challenge that may arise from the distribution of data ownership to domains</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The need to think of “data as a product” also comes from the practical consideration that in today’s state of operations, the jobs of most data scientist and data engineering teams is to clean up and re-organize the data obtained from other sources : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">recent report from Anaconda, a data science platform company, “The State of Data Science 2020”, finds that nearly half of a data scientist’s time is spent on data preparation—data loading and cleansing</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The practice of “data as a product” is a “shiftleft” of data cleansing to the upstream nodes in the mesh.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The relationship between the topic of data mesh and team topologies, as expressed in the introduction, does not escape Zhamak Dehghani: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Domain data product teams as stream-aligned teams According to Team Topologies, a stream-aligned team is the primary team type in an organization. It is responsible for an end-to-end delivery of a single product, service, set of features, etc. In the case of data mesh, the (cross-functional) domain teams have one or multiple stream-aligned teams including the application development teams (app dev for short) as well as the data product delivery teams (data product for short). A domain team is a logical team, a team of teams</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">In a distributed scalable mesh, data products must be easy to find and to consume: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Data products are automatically accessible through the global data discovery tool. They share and guarantee a set of service-level objectives (SLOs), such as how often each playlist is refreshed, its accuracy, and timelin</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">ess”. Here I notice that SLO is becoming the new buzzword, but I believe that SLA (agreement) should be used in this context. Let me recall that in the SRE approach, the SLA is what you agree with the customer, the SLO is the team’s objective, which is more ambitious and opens the practice of error budgeting to continuously improve site reliability. As the producer’s manager, I care about SLO, but as a consumer, I care about SLAs. The Data product owner is accountable to meet the SLA for the data users, to ensure their satisfaction and to maintain the life cycle of the data products. To put it in Zhamak’s terms: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">It’s the responsibility of a data product to share the information needed to make itself discoverable, understandable, trustworthy, and expl</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">orable”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The Data Mesh approach relies on platforms and automation as we shall later see. The use of self-serve platforms support the implementation of policies, to alleviate the load of the Data owners: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">All data products must implement global policies such as compliance, access control, access audit, and privacy. The platform is the key enabler in embedding these policies in all data products. Data products can define the policy configurations as code and test and execute them during their life cycle. The platform offers the underlying engine that implements the management of policies as code...</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The principle of a self-serve data platform essentially makes it feasible for domain teams to manage the life cycle of their data products with autonomy and utilize the skillsets of their generalist developer to do so</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> ”. This use of platform is combined with the empowerment of the data owner to manage the data governance locally (within the constraints of the federated mesh): “ </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">If I could leave you with one takeaway from this chapter, it would be to invert your perspective on whose responsibility it is to manage, govern, and observe data; shift the responsibility from an external party getting engaged after the fact to the data product itself</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> ”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">3.4</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Data Mesh Governance</span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The Data Mesh governance follows the federated model that we described. A large part is done locally by the data domains themselves, what remains to be seen is how to manage the federation itself. The book gives a few principles and practices to run the mesh: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">a data governance operating model based on a federated decision-making and accountability structure, with a team composed of domain representatives, data platform, and subject matter experts—legal, compliance, security, etc.”.</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> The goal is precisely to scale the benefits of the domain-driven decomposition that we showed in the previous two sections : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Governance is the mechanism that assures that the mesh of independent data products, as a whole, is secure, trusted, and most importantly delivers value through the interconnection of its nodes</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. An implicit benefit of the mesh is that it unifies different kinds of nodes: source nodes, aggregation or transformation nodes, consumer nodes so that each node can play multiple roles. It helps to consider “analytical nodes” as “operational nodes”, and to insert advanced data producers (for instance using ML models) into operational business processes.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Governance is required because the data domains, data flows and data products evolve constantly, with a scope that goes beyond that of data products (data owners manage the evolvability of their data products): “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Data mesh is a dynamic system with a continuously changing topology. The shape of the mesh continuously changes</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. Here is a good summary of the overall governance organization: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Data mesh governance in contrast embraces constant change to the data landscape. It delegates the responsibility of modeling and quality of the data to individual domains, and heavily automates the computational instructions that assure data is secure, compliant, of quality, and usable. Risk is managed early in the life cycle of data, and throughout, in an automated fashion. It embeds the computational policies in each and every domain and data product. Data mesh calls this model of governance a federated computational governance</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. There are three key elements to facilitate this data mesh governance: automating and embedding policies as code – which we mentioned in the previous section –, delegating central responsibilities of governance to data product owners, and organizing “federated” instances where each data owner is represented that support sharing of needs, concerns and awareness. Raising the “shared awareness” through education is necessary to deliver the value of the data mesh: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Increasing participation of people in data sharing across the organization with different roles and levels of skills is a common goal of many organizations—referred to as data democratization”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">3.5</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Data Platforms</span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">Self-serve platform is the core concept for the implementation of the data mesh: “The platform makes data product compatibility possible. For example, platforms enable data product linking—when one data product uses data and data types (schema) from another data product. For this to be seamlessly possible, the platform provides a standardized and simple way of identifying data products, addressing data products, connecting to data products, reading data from data products, etc. Such simple platform functions create a mesh of heterogeneous domains with homogeneous interfaces”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Thinking in terms of platform also means to think in terms of community. To grow a platform is to grow its user community: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">An interesting lens on the data mesh platform is to view it as a multisided platform—one that creates value primarily by enabling direct interactions between two (or more) distinct parties. In the case of data mesh, those parties are data product developers, data product owners, and data product users</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. This means that one must build experiences (UX) and not mechanisms, as Zhamak Dehghani warns: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I have come across numerous platform building/buying situations, where the articulation of the platform is anchored in mechanisms it includes, as opposed to experiences it enables. This approach in defining the platform often leads to bloated platform development and adoption of overambitious and overpriced technologies</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. A platform is a complex system that must be grown according to</span><a href="https://informationsystemsbiology.blogspot.com/2014/04/software-ecosystems-and-application.html" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">the feedback provided by the users</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">: “ </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">This mechanism is called a negative or balancing feedback loop. The intention of this feedback loop is self-correction, in this case reducing the number of duplicate, low-quality, and less usable data products</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">In the context of a data mesh, a platform is mostly defined by the API that it provides, which correspond to the data products: “ </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">If you take away one thing from this chapter, I wish it to be this: there is no single entity such as a platform. There are APIs, services, SDKs, and libraries that each satisfy a step in the journey of the platform users</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> … </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The ability to use the platform capabilities through self-serve APIs is critical to enable autonomy</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The most obvious API are the output API which are used to consume the data: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Output data APIs can receive and run remote queries on their data, for example an interface to run SQL queries on the underlying tables holding data. Output APIs share the data in multiple formats. For example, APIs read semi-structured files from blob storage or subscribe to an event stream”</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">. The data mesh platform also proposed “input API” that are used internally by the data product to configure and read data from the upstream sources, and “discovery and observability API” to provide additional information about the data product, as well as to help with its discoverability and debugging.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></p><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">4.</span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="font-family: verdana; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Conclusion</span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana; white-space: pre-wrap;"> </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9c8175DPlmiEk9rqPKqMdKfJ2Cxyps5iz6_yISUZpS_4aS9v-Gm4QPhApS4e8J_9MV9EQcXU8sUyGtd88r2wOBqkpzm0XomtZoXjXwLvQ1H2SMhY2j23o-qRS7qAA7QaG4LU0Eb6pKer8AKDhSUu0jA5slIDJL_GJuBpOLx24B1IEDaIp-GJg9922/s499/LeanApproachDigitalTransformation.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="499" data-original-width="350" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9c8175DPlmiEk9rqPKqMdKfJ2Cxyps5iz6_yISUZpS_4aS9v-Gm4QPhApS4e8J_9MV9EQcXU8sUyGtd88r2wOBqkpzm0XomtZoXjXwLvQ1H2SMhY2j23o-qRS7qAA7QaG4LU0Eb6pKer8AKDhSUu0jA5slIDJL_GJuBpOLx24B1IEDaIp-GJg9922/s320/LeanApproachDigitalTransformation.jpg" width="224" /></a></span></div><span style="font-family: verdana;"><br /><div style="text-align: justify;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">The English version of my book about “</span><a href="http://informationsystemsbiology.blogspot.com/2020/11/lean-for-digitaltransformation.html" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">The Lean Approach to Digital Transformation</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">” is now</span><a href="https://www.routledge.com/The-Lean-Approach-to-Digital-Transformation-From-Customer-to-Code-and-From/Caseau/p/book/9781032225012" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">available</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">. My book is driven from 20 years of experience at Bouygues Telecom and AXA. It focuses on flow “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">from customer to code</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">” (digital innovation following Lean Startup) and flow from “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">code to customer</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">” (agile and lean software factories). My experience drives a keen interest with “agile at scale”. I have witnessed and experiences a number of failures with large projects that failed to reach an agile state and to deliver the expected value. From what I have seen, failure starts when each part is late and too busy to look outside - each team focuses on delivering “their part” at the expense of the complete system. Everyone works very hard, the integration starts with a large stack of bugs that grows continuously with un-detected regressions and feature interactions. Understanding the impact of size is straightforward with a lean mindset: </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline;">it is too easy to focus on what you see and forget what you do not see</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">What you see is what you build (at team level) while what is harder to see is the inter-team landscape: integration issues, global performance issues, usability issues. It requires strength to look for problems that you do not see when you are late / overloaded with your task that you can see. Taking time to discuss and to synchronize takes time but is a sound investment. This precisely why the </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline;">PI (product increment) planning </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">step of</span><a href="https://informationsystemsbiology.blogspot.com/2020/05/agility-at-scale-and-lean-software.html" style="text-decoration-line: none;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> </span><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline;">the SAFE methodology</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> is so necessary and helpful. The only situation when this effort is not needed is when development from precise requirements is possible, which is also when </span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;">Waterfall</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline;"> works. The need for PI planning is a symptom of the complexity of the overall system, that is what should and should not happen because of multiple interaction. Obviously the quest for modularity and loose coupling is critical to fight this complexity, but, most of the time, it is not enough. As explained in “Team topology”, a well-crafted API makes the synchronization of PI planning unnecessary: The producer manages the API as a product and takes care of upward compatibility, SLA, documentation,… while the consumer consumes the API from a self-manageable platform.</span></div></span><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The following slide is taken from a presentation that I made last year for the “</span><a href="https://www.urba-ea.org/" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Club Urba-EA</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. It represent the 12 “</span><a href="https://informationsystemsbiology.blogspot.com/2012/07/lean-software-factory.html" style="text-decoration-line: none;"><span style="color: #0563c1; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Lean Software Facto</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">ry” principles that are presented in my book, driven from 20 years of experience with Agile (from SCRUM to extreme programming) and Lean software development. The first row is colored in green because these principles apply at all scale. The second row is colored in blue because, although applying to a large set of teams makes it more difficult, there are ways and tools to adapt to the size. The last row, colored in red, is precisely why the topic “Agile at scale” matters because each of these four principles is definitely harder to implement at scale.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY-TEVF-DEN8MUSxHXRembSsLaY-_dViPZJFTd-gUDuFaQ00UDSM67spG4deHQcU6GcQWCrWjU7kn_ky1A4yxoYgELug4hcIaxzO0MB46jAr9LuU0nibpwJ-x6aSxmgLpbvgerMTp8vPmLCcHpJGiv6X0vmGZNCiMxd77XkgVkbb-G4DpiA4XPjdPg/s720/AgileAtScaleUrba.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="405" data-original-width="720" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY-TEVF-DEN8MUSxHXRembSsLaY-_dViPZJFTd-gUDuFaQ00UDSM67spG4deHQcU6GcQWCrWjU7kn_ky1A4yxoYgELug4hcIaxzO0MB46jAr9LuU0nibpwJ-x6aSxmgLpbvgerMTp8vPmLCcHpJGiv6X0vmGZNCiMxd77XkgVkbb-G4DpiA4XPjdPg/w640-h360/AgileAtScaleUrba.jpg" width="640" /></a></span></div><span style="font-family: verdana;"><br /></span><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">To conclude, I will summarize what I believe about Agility at scale with four ideas:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana; text-indent: -18pt; white-space: pre-wrap;"><br /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"></p><ul style="text-align: left;"><li><span style="text-indent: -18pt; white-space: pre-wrap;"><span style="font-family: verdana;">Companies need to be agile “because we do not know the future”, this is irrespective of size.</span></span></li><li><span style="font-family: verdana;">Agile at scale is a necessity and possibility, but it is hard, as expressed by the previous illustration.</span></li><li><span style="font-family: verdana;">The main challenge of agility at scale is about communication and synchronization. This is why the first book presented in this post, “Team topology” is relevant to agility at scale. To deliver flow, one must organize in a scalable way, and optimize, the necessary amount of inter-team collaboration.</span></li><li><span style="font-family: verdana;">Organizing the distributed mesh of teams – which is obviously more challenging in the case of geographical and time zone distribution – is a matter of distributed team network governance. This was the reason for commenting the second book, “Data Mesh”, in this blog post.</span></li></ul><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"> </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;"> </span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: Calibri, sans-serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span></p><div><span style="font-family: Calibri, sans-serif; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com0tag:blogger.com,1999:blog-438942112364524044.post-35717149708368048862022-01-02T23:22:00.002-08:002022-01-02T23:22:44.255-08:00Back to the future: the joys of high-level programming languages<p></p><p class="MsoNormal"><o:p><span style="font-family: verdana;"> </span></o:p></p>
<p class="MsoNormal"><span style="font-family: verdana;"><br /></span></p>
<h2 style="text-align: left;"><span style="font-family: verdana;"><b><span lang="EN-US">1. Introduction</span></b></span></h2>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: verdana;"><span lang="EN-US" style="color: black;">High-level
programming languages are back. More and more developers and companies are
using high-level programming languages, either interpreted languages such as
Python or functional languages such as Scala or Erlang (or both, such as </span><a href="https://en.wikipedia.org/wiki/Clojure"><span lang="EN-US">Clojure</span></a><span lang="EN-US" style="color: black;">). Whatsapp
is well-known for using </span><a href="https://www.fastcompany.com/3026758/inside-erlang-the-rare-programming-language-behind-whatsapps-success"><span lang="EN-US">Erlang</span></a><span lang="EN-US" style="color: black;"> which it
sees as a major reason for maintaining such a large system with few engineers
(cf. the Wired article : “<a href="https://www.wired.com/2015/09/whatsapp-serves-900-million-users-50-engineers/">Whatsapp
serves 900 million users with 50 engineers</a>”). </span><a href="https://sysgears.com/articles/how-and-why-twitter-uses-scala/"><span lang="EN-US">Twitter is using Scala</span></a><span lang="EN-US" style="color: black;">, a </span><a href="https://en.wikipedia.org/wiki/Scala_(programming_language)"><span lang="EN-US">functional object-oriented
programming language</span></a><span lang="EN-US" style="color: black;">, for similar reasons and with similar
success. Many of these object-oriented functional programming languages are 20
or 30 years old, but they have experienced a regain in popularity. This renewed
success is both a testimony to Moore’s law (with faster machines, one can
afford to lose a little bit of performance to gain expressiveness and speed of
development) and to the digital world’s need for agility. High-level
programming languages yield shorter code which is faster to modify. This is a
key idea which I have developed </span><a href="https://informationsystemsbiology.blogspot.com/2020/11/lean-for-digitaltransformation.html"><span lang="EN-US">in my last book</span></a><span lang="EN-US" style="color: black;"> (English
edition is coming soon).</span></span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: verdana;"><span lang="EN-US" style="color: black;">This
is a topic dear to my heart. Thirty years ago, I worked as a research scientist
and </span><a href="https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=%22Yves+Caseau%22+programming+language&btnG="><span lang="EN-US">developed various
object-oriented functional programming languages</span></a><span lang="EN-US" style="color: black;">. The last
one, <a href="https://en.wikipedia.org/wiki/Claire_(programming_language)">CLAIRE</a>,
has been the programming toolbox for my </span><a href="https://www.researchgate.net/publication/301133986_Game-Theoretical_and_Evolutionary_Simulation_A_Toolbox_for_Complex_Enterprise_Problems"><span lang="EN-US">own software
development projects</span></a><span lang="EN-US" style="color: black;"> for the last two decades. This blog post
talks about my decision to refresh CLAIRE with a new release, based on a new
target environment (i.e., leveraging </span><a href="https://en.wikipedia.org/wiki/Go_(programming_language)"><span lang="EN-US">the superb Go
programming language platform produced by Google</span></a><span lang="EN-US" style="color: black;">).<span style="mso-spacerun: yes;"> </span>This short post is organized as follows.
Section 2 will briefly recall the benefits of interpreted functional
object-oriented programming languages. Section 3 describes why and how I
decided to create a new release of CLAIRE. CLAIRE was born in the 90s as an
open-source project, with a small user community for a couple of years and was
used successfully in a number of enterprise decision-aid software. It then lost
its appeal and has been dormant for 20 years. 18 months ago, I decided to
switch from C++ to Go as a foundation language for CLAIRE. This blog post is a
very personal account of the “resurrection” of the CLAIRE programming language.
This post is much more personal than what you may find regularly in either of
my blogs. You should probably stop reading if you do not have a keen interest
with programming languages. To give you “a one-page summary about CLAIRE”, I
reproduce here a slide from a 1998 presentation about CLAIRE. If this does not make sense, now is a right time to stop :)<o:p></o:p></span></span></p>
<p style="margin: 0cm;"><span lang="EN-US" style="color: black;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEic72DEHBqGwJJd-4Mf29i7jlYTBO5yl2wQ-45bZlxgjBFSBE0h-9IBSnDQhDPocM7X7U91MCSAdieJhtWet0uaPjhWwQHG3ZxghScKFhPgA8JN4IaUPQFV4zHwM6D_wirEUcLDxLG5S42LA76-TyqJGmmm4mpyzOSkFvxIUmQJnGsFZNerQGmuXrGR=s960" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="960" height="300" src="https://blogger.googleusercontent.com/img/a/AVvXsEic72DEHBqGwJJd-4Mf29i7jlYTBO5yl2wQ-45bZlxgjBFSBE0h-9IBSnDQhDPocM7X7U91MCSAdieJhtWet0uaPjhWwQHG3ZxghScKFhPgA8JN4IaUPQFV4zHwM6D_wirEUcLDxLG5S42LA76-TyqJGmmm4mpyzOSkFvxIUmQJnGsFZNerQGmuXrGR=w400-h300" width="400" /></a></div><p style="margin: 0cm;"><br /></p>
<h2 style="text-align: left;"><b><span lang="EN-US"><span style="font-family: verdana;">2. The Benefits of High-Level Programming
Languages</span></span></b></h2>
<p class="MsoNormal"><b><span lang="EN-US"><o:p><span style="font-family: verdana;"> </span></o:p></span></b></p>
<p style="margin: 0cm; text-align: justify;"><span lang="EN-US" style="color: black;"><span style="font-family: verdana;"><a href="https://en.wikipedia.org/wiki/Functional_programming">Functional
programming</a> has many meanings. Here I refer to the ability to manage nameless
functions as first-class citizens of the language and pass them as arguments.
The archetype of functional programming language is <a href="https://en.wikipedia.org/wiki/Lisp_(programming_language)">LISP</a> (direct inspiration
for Clojure, but also for CLAIRE, since CLAIRE’s ancestor was as LISP overlay).
<a href="https://hackernoon.com/why-functional-programming-matters-c647f56a7691">Functional
programming matters</a>, because it supports high-level of abstraction,
yielding code which is both more concise and easier to maintain because the
intent is more visible. Function composition, or applying a function to a set/list
with the famous “<a href="https://www.geeksforgeeks.org/python-map-function/">map</a>”
function, is made much simpler when functions (the famous “<a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambdas</a>” of LISP) are
first-class citizens. As any programmer knows, there is a learning curve (with
LISP, Scala, Erlang, …) because programming at a higher abstraction level is
not always simpler. However, as soon as the code needs to change, this investment
pays handsomely. The structure of the program (how functions are composed) is
much more visible, and the number of lines that need to be changed is much smaller.
Functional programming languages are ideal scripting languages over a library
of lower functions precisely because of the capacity to manage functional
expressions. There is no better example than Python which has become the standard
for combining functions from a machine learning algorithm library. <o:p></o:p></span></span></p>
<p style="margin: 0cm; text-align: justify;"><span lang="EN-US" style="color: black;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<p style="margin: 0cm; text-align: justify;"><span lang="EN-US" style="color: black;"><span style="font-family: verdana;"><a href="https://en.wikipedia.org/wiki/Interpreter_(computing)">Interpreted languages</a>
are an alternative to compiled languages which inherit the “<b>Print(eval(read()))</b>”
loop from LISP. An interpreted language is capable running dynamically any code
fragment. The performance of modern computers and modern compilers have made
interpreted languages almost irrelevant during the last two decades because one
could modify code “on the fly” on their favorite IDE and re-run almost instantaneously.
However, when prototyping complex algorithms, the interactive capability of the
interpreter loop is unmatched. It allows for a complex inspection of the working
environment that surpasses the best IDE. The return to popularity of interpreted
language – here also, Python is the foremost example – is the consequence of
computer performance (Python programs are slow, but usually most of the heavy
work is done in the machine learning library that has been compiled earlier)
and the need for agility. As soon as the software development process is a learning
process, where many iterations are requited to grow the program structure,
interpreted languages offers competitive value. To be more explicit, there are
two kinds of required agility, which correspond to two time-horizons. If you
follow a specification to produce your code, the added value of interpreted
languages is very small (any modern IDE will give you enough flexibility). If,
on the other hand, the code needs to be fine-tune through multiple iterations where
one needs to explore the program output to understand how to improve the
current algorithm, then an interpreter’s loop is a great tool.</span></span></p><p style="margin: 0cm; text-align: justify;"><span lang="EN-US" style="color: black;"><span style="font-family: verdana;"><br /></span></span></p>
<p style="margin: 0cm; text-align: justify;"><span lang="EN-US" style="color: black;"><span style="font-family: verdana;">There are many others programming patterns
that contribute to the “high-level” of abstraction. The title of this blog post
talks about “high-level programming language”, which is a shortcut for languages
with a high level of abstraction. Other famous programming patterns include “object-oriented
programming” (with a lot of debates about its virtues or what it means), “rule-based
programming” (think of <a href="https://en.wikipedia.org/wiki/Prolog">PROLOG</a>
and the GOFAI – good old-fashion AI – <a href="https://en.wikipedia.org/wiki/Rule-based_system">tools of the 80s</a>) or
“<a href="https://en.wikipedia.org/wiki/SETL">set-based programming</a>”, to
name a few. Object-oriented programming is controversial precisely because it
has many flavors. The “simple kind” of the 80s (SMALLTALK) is actually a great
way to increase the abstraction level, while the “compiled kind” that you find
in C++ or Go is much more debatable. What raises the “level of abstraction” is
the combination of conciseness and a clear semantics (you can express your
ideas with fewer lines, and it is easier to understand what they mean). As
expressed in the introduction, high-level languages have become more popular
because of the request for agility. High-level abstraction means a code that is
easier to change and to maintain. Here we mean the capability to change on a
longer time-horizon, which is why the arguments apply to compiled languages
(such as Swift or Java) as well as interpreted ones.<span style="mso-spacerun: yes;"> </span>High-level of abstraction also means a code
that is easier to share and to reuse.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin-bottom: 12.0pt;"><o:p><span style="font-family: verdana;"> </span></o:p></p>
<h2 style="text-align: left;"><span style="font-family: verdana;"><b><span lang="EN-US">3. </span></b><b><span lang="EN-US" style="color: black;">How I got sidetracked when
picking a new programming language</span></b></span></h2>
<p class="MsoNormal"><b><span lang="EN-US"><o:p><span style="font-family: verdana;"> </span></o:p></span></b></p>
<p class="MsoNormal" style="text-align: justify;"><span lang="EN-US" style="color: black;"><span style="font-family: verdana;">Five
years ago, I decided to write an <a href="http://knomeetheapp.com/">iOS
application</a> and worked for two years with the <a href="https://en.wikipedia.org/wiki/Swift_(programming_language)">Swift language</a>.
Swift is not interpreted, but it is an elegant language with high level of
abstraction, hence I figured it as time to drop CLAIRE for my future projects
and to pick a modern programming language. After completing Knomee, I spent the
2020 summer looking at Go, Java, Python, Rust, Node, Scala as possible alternatives.
Somewhere along the way, I decided to stick the CLAIRE and to replace the old
C++ compiler with a CLAIRE-to-Go compiler.</span></span></p>
<p class="MsoNormal" style="text-align: justify;"><span lang="EN-US" style="color: black;"><span style="font-family: verdana;">The
first learning from my experiments is that I did not want to lose the flexibility
and speed that comes from combining an interpreted language with set-base
programming capabilities.<span style="mso-spacerun: yes;"> </span>Here is
another slide that is extracted from <a href="https://www.slideshare.net/ycaseau1/claire98">this CLAIRE presentation</a>,
it would require a much longer development to give you a true account of the benefits
of set-based programming.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color: black;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj48fc57DkA3-MUW1Wyhnm2iXSofhvBI30vEBh1gCNxCjgt2M4KPKxKttR_Sm-CfFXRiZdDCcPiVEp-xLV5L9GjTgbCf1UxT7IBKkmJbvD9xrn90WbiB6q6-mvha9vi5Z45nZXCB18_HUTU28RZG0bysp5aFvuU0gd8nz8CgCidBjz58MMP5yjmbYTD=s960" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="960" height="300" src="https://blogger.googleusercontent.com/img/a/AVvXsEj48fc57DkA3-MUW1Wyhnm2iXSofhvBI30vEBh1gCNxCjgt2M4KPKxKttR_Sm-CfFXRiZdDCcPiVEp-xLV5L9GjTgbCf1UxT7IBKkmJbvD9xrn90WbiB6q6-mvha9vi5Z45nZXCB18_HUTU28RZG0bysp5aFvuU0gd8nz8CgCidBjz58MMP5yjmbYTD=w400-h300" width="400" /></a></span></div><span style="font-family: verdana;"><br /></span><p></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: verdana;">Set-based
programming under the interpreter makes developing complex algorithms much
easier (here again, no surprise if Python is so popular). Moving to Go or Java
would have been a logical choice (CLAIRE was based on C++ with its own memory
management and garbage collection, and it was not doing a first-class job … nor
was Swift actually). However, most of my projects are related to GTES (</span><a href="https://www.slideshare.net/ycaseau1/gtes-utc-2014" style="font-family: verdana;">Game-Theoretical
Evolutionary Simulation</a><span style="font-family: verdana;">) and require a lot of tuning and iterations.</span></p>
<p></p><p></p><p class="MsoNormal" style="text-align: left; vertical-align: baseline;"><span style="font-family: verdana; text-align: justify;">The second
obvious choice would have been to pick Python to replace CLAIRE. However, the
same need for iterative algorithm growing means that I was not ready to accept
the performance penalty of Python (or Scala, for that matter). This choice is
very subjective, depending on what you are doing, you may find that the x2 performance
penalty that you pay for using (compiled) CLAIRE over Java / Go is not acceptable
(but I would argue that this is limited to specific low-level system programming)
or you may think – on the opposite side – that the x50 penalty that you pay
with Python is perfectly fine (precisely, if you use Python to write the glue while
relying on lower-level compiled libraries). To make this more concrete, the
following table is the result of my experiments, using simple functions to evaluate
the various programming languages. Performance is “normalized”: it is the
execution time divided by the best time (which varies for each test, since each
language has its strengths and weaknesses). I have regrouped the tests into four
categories (e.g., “function” is a combination of recursive function and problem
solving, “object” means creating / reading / updating 10 million of objects,
etc.). The global score is weighted which is highly subjective since it reflects
my own experience. But you will get a sense of the overall ranking by looking
at the full (preliminary) table.</span></p><p></p><p></p><p class="MsoNormal" style="text-align: left; vertical-align: baseline;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhghZYIC4UHQNbHVupfgPEhtV1bBTwsY_sjpwb7ysyxyHxvP5cHTIPfXD0FlaSgu48Pdx4IjtuEH4DyKptN8rtejXZDxf4H3t4zsJjDm2rSeil5rRcdP9rfGRw_zQGp3xLnixnVosV8DMaKFgJV6L309V9UaozHEDmrSpgUndcUdPRUVzPlFb76EViI=s1280" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /><img border="0" data-original-height="720" data-original-width="1280" height="360" src="https://blogger.googleusercontent.com/img/a/AVvXsEhghZYIC4UHQNbHVupfgPEhtV1bBTwsY_sjpwb7ysyxyHxvP5cHTIPfXD0FlaSgu48Pdx4IjtuEH4DyKptN8rtejXZDxf4H3t4zsJjDm2rSeil5rRcdP9rfGRw_zQGp3xLnixnVosV8DMaKFgJV6L309V9UaozHEDmrSpgUndcUdPRUVzPlFb76EViI=w640-h360" width="640" /></a></div><br /><p></p>
<h2 style="text-align: left;"><b><span lang="EN-US"><span style="font-family: verdana;">4. Conclusion</span></span></b></h2>
<p class="MsoNormal"><br /></p>
<p style="margin: 0cm;"><span style="font-family: verdana;"><span lang="EN-US" style="color: black;">If you are intrigued with CLAIRE, feel
free to visit the <a href="http://claire3.free.fr/">web site</a> and the <a href="https://github.com/ycaseau/CLAIRE4">GitHib
repository</a>. CLAIRE is a “cool language” for many reasons other than was
mentioned earlier:</span></span></p><p style="margin: 0cm;"></p><ul style="text-align: left;"><li><span style="font-family: verdana;"><span lang="EN-US" style="text-indent: -18pt;"><span style="font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span></span><span lang="EN-US" style="text-indent: -18pt;">Knowledge representation in CLAIRE is made
easier, with many “high-level” features that support entity-relationship
modelling.</span></span></li><li><span style="font-family: verdana;"><span style="font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-US" style="text-indent: -18pt;">CLAIRE inherits “old-fashion AI”
capabilities: hypothetical reasoning and production rules. This comes from
CLAIRE background as a “language for combinatorial optimization algorithms”.</span></span></li><li><span style="font-family: verdana;">CLAIRE is self-described, self-compiled
and easily extensible</span>.</li></ul><p></p>
<p style="margin: 0cm;"><span lang="EN-US" style="color: black;"><span style="font-family: verdana;">To give a last example, CLAIRE was designed
so that elaborate algorithms, such as the <a href="https://iq.opengenus.org/hungarian-maximum-matching-algorithm/">Hungarian
Matching Algorithm</a>, could be written in an elegant and concise manner. The following
illustration shows the core of the CLAIRE implementation (complete algorithm
takes less than 50 lines).<o:p></o:p></span></span></p>
<p style="margin: 0cm;"><span lang="EN-US" style="color: black;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<p style="margin: 0cm;"><span lang="EN-US" style="color: black;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh6cXKbCoh6RTq78CEjeB_MEVl9OKltRCnk7eyohrFMG0DjTPoDYOTFE6ryWZXvyjtZzjLl78Bts8Bsti38Yhezc6DSla8TPKRSf9KFBNb0OEVUEqnXcBGaGv7tU0md08i0ildIWaN63yFbB--fcWpD1K4Z_IXo5naT2In2rSmGMqZdaqI3XLS5x4OJ=s960" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="960" height="300" src="https://blogger.googleusercontent.com/img/a/AVvXsEh6cXKbCoh6RTq78CEjeB_MEVl9OKltRCnk7eyohrFMG0DjTPoDYOTFE6ryWZXvyjtZzjLl78Bts8Bsti38Yhezc6DSla8TPKRSf9KFBNb0OEVUEqnXcBGaGv7tU0md08i0ildIWaN63yFbB--fcWpD1K4Z_IXo5naT2In2rSmGMqZdaqI3XLS5x4OJ=w400-h300" width="400" /></a></span></div><span style="font-family: verdana;"><br /></span><p></p>
<p style="margin: 0cm;"><br /></p>
<p style="margin: 0cm;"><span style="font-family: verdana;"><span lang="EN-US" style="color: black;">CLAIRE4 is the new version of this 28ys-old
language. It is an “alpha” release because it will require a few full-sized projects
to be developed with CLAIRE 4 to reach “beta” stability level. I will apply
CLAIRE 4 to “<a href="https://sites.google.com/site/yvesresearchagenda/home/3-year-plan-2019-2021?authuser=0">Global
Warming Dynamic Games</a>”, a GTES project which I left aside more than 10
years ago but which seem highly relevant in 2022.</span><span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p><span style="font-family: verdana;"> </span></o:p></span></p><br /><p></p>Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com3tag:blogger.com,1999:blog-438942112364524044.post-91143679651426176732021-06-06T22:02:00.002-07:002021-06-06T22:02:30.984-07:00To Grow Digital Opportunities, Ask You Developer <h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: verdana; font-size: small;"><br /></span></h2><h2 style="text-align: left;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana; font-size: medium;">1. Introduction</span></span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">API (Application Programming Interfaces) play a key role in our digital world. API are both interfaces, the famous “plugs” that let others connect and use your capacities (data, services) and contracts (service contracts) that brings decoupling and a form of modularity. API have become a buzzword and I must say that I talk about API a lot in my writings, including my</span><a href="https://informationsystemsbiology.blogspot.com/2014/04/software-ecosystems-and-application.html" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">blogposts</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Let me first recall very briefly why API matter so much in our digital VUCA world.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"></p><ul><li><span style="font-family: verdana;"><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">Architecting digital and information systems around API is a strategic necessity. It is a way to foster future reuse and to increase flexibility and agility, thanks to decoupling. It requires to think about capabilities more than functions. Capabilities must be designed and exposed with anticipation (long-term), but functions and services may be assembled both quickly and outside. I love this quote from Chet Kapoor, the former CEO of</span><a href="https://en.wikipedia.org/wiki/Apigee" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Apigee</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">We need API because we do not known the future.</span></span></li><li><span style="font-family: verdana;">“API first” is a complete mindset change, which is necessary to deliver modularity. Designing API requires outside-to-inside thinking: you need to put yourself in the shoes of the API users and to write a piece of code for a final use that you do not know. This leads to co-design with a developer community, which you must learn to grow by thinking in “product mode”, like a software editor</span></li><li><span style="font-family: verdana;">APIs are the lego blocks of innovation. Innovation spurs from the meeting of needs and capacities. APIs enable the construction of a “situation potential” (I refer you to<a href="https://www.amazon.com/Treatise-Efficacy-Between-Western-Thinking/dp/0824828305" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Francois Jullien</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> or to</span><a href="http://informationsystemsbiology.blogspot.com/2020/11/lean-for-digitaltransformation.html" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: black; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">my last book</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">) and the wide distribution of these capabilities. APIs are the lingua franca of innovation software ecosystems. To innovate and to leverage the full potential of software communities, one must speak this language.</span></span></li><li><span style="font-family: verdana;">Last, API are critical tools for software system modernization. Unless you are part of a brand-new company – like a startup –, digital transformation necessarily implies the constant replacement and modernization of your software assets. This is achieved through service-oriented architecture (<a href="https://informationsystemsbiology.blogspot.com/2009/01/soa-is-much-too-young-to-be-dead.html" style="text-decoration-line: none; text-indent: -18pt;"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">SOA</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;">) both for construction and de-construction. To replace or kill the “mammoth” (monolith), one must “slice the mammoth” and leverage APIs to perform a smooth transition from the old to to new. </span></span></li></ul><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">In this list, the technical aspects of API are not critical. One does not need to be a software developer to understand the benefits and the relevance of API-thinking. Indeed, every business leader needs to understand this list, because it describes a new mental model about leveraging software ecosystems, and the contributions of other players to reach your own goals. The “Why API” is first and foremost a business strategy issue. It starts with two simple ideas: (1) the world is changing constantly – especially the landscape of digital opportunities (2) there are more smart people outside your company than inside – to borrow the famous quote of Bill Joy – so one must think as software as a platform.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">However, the “How to API” has to be co-designed with software developers, both inside and outside. The world of telcos (telecommunication companies) is a great example to learn from. In the early 2000s a number of large, worldwide telcos, decided to expose their services through API. Very significant sums of money were spent to create catalogs of web services to lure developers to build new applications on top of the capabilities of the networks. However, nothing big happened; the “software culture” difference produced a service catalog that did not appeal the majority of the web & mobile development community. To develop an API strategy, one cannot pick a “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if you build it, they will come</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">” strategy; on needs to grow a community of engaged developers. Today’s post is about the new book of Jeff Lawson, “</span><a href="https://www.askyourdeveloper.com/" style="text-decoration: none;"><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ask Your Developer: How to Harness the Power of Software Developers and Win in the 21st Century</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. Jeff Lawson is the CEO of</span><a href="https://en.wikipedia.org/wiki/Twilio" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Twilio</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, a unicorn that delivers API to developers, to interface with the various telcos of the world enabling – for instance – the easy delivery of SMS messages. I have decided to share a short review of Jeff Lawson for three reasons:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 12pt; margin-top: 12pt; text-align: justify;"></p><ul><li><span style="text-align: left; text-indent: -18pt; white-space: pre-wrap;"><span style="font-family: verdana;">He is de facto one of the best experts about API, software ecosystems and understanding how to bring value with a platform to a community of developers. All the four points about API that I have briefly outlined in the beginning are clearly explained and illustrated by Jeff Lawson.</span></span></li><li><span style="font-family: verdana;">His great book is about the “Ask Your Developer” mindset, which is a critical requirement to succeed in the 21<span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: super;">st</span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: left; text-indent: -18pt; vertical-align: baseline; white-space: pre-wrap;"> century. This is not a book for technical readers, it is a wide-audience book that should speak to all roles in a company. This is not a naïve praise of software developers but an analysis of how digital innovation works – the foreword is signed by Eric Ries – and a plea for a role distribution that is different from what most companies do today</span></span></li><li><span style="font-family: verdana;">This book is a treasure trove of relevant pieces of advice to companies that need to become “software companies”, which is probably the case of the overwhelming majority of companies. API, cloud, microservices are the software flavors of the moment; the success of Twilio is based on mastering these “new” ways of software development. </span></li></ul><p></p><p><b style="font-weight: normal;"><span style="font-family: verdana;"><br /></span></b></p><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">2. Ask Your Developers</span></span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXNlCY1hfcsSAh7Gvbu-QmPeNnksqjBKUFPNqa5LD69PowSauMZ51HBNIgpUd3u4xPW-S-Mhno65It1ScpaMUl6LEBng-vSDrwLDFV9SkQW4MBtdbXpD-ljmdJNXc8GY171grctRTcNM4/s500/AskYourDeveloper.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="500" data-original-width="340" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXNlCY1hfcsSAh7Gvbu-QmPeNnksqjBKUFPNqa5LD69PowSauMZ51HBNIgpUd3u4xPW-S-Mhno65It1ScpaMUl6LEBng-vSDrwLDFV9SkQW4MBtdbXpD-ljmdJNXc8GY171grctRTcNM4/w272-h400/AskYourDeveloper.jpeg" width="272" /></a></div><p dir="ltr" style="line-height: 1.38; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">As usual, I will not propose here a complete book review; I will focus about the “Ask Your Developer” mindset, which is the backbone of the book. The book is not intended first for developers or for technical persons, but for business managers. The “Ask Your Developer” mindset is about asking the right questions to the right persons, about understanding the software ecosystems that all companies are part of : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Now, a Software Person is not necessarily a developer—it’s anybody who, when faced with a problem, asks the question: “How can software solve this problem?” That’s because being a Software Person is a mindset, not a skill set”; “This book, as well as the Ask Your Developer mindset, isn’t really about software. It’s about people—the software developers and businesspeople who need to work together to hear customers’ needs and answer them</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> I strongly recommend to read “</span><a href="https://www.askyourdeveloper.com/" style="text-decoration: none;"><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ask Your Developer: How to Harness the Power of Software Developers and Win in the 21st Century</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. Jeff Lawson writes about his personal story, his previous positions – including his job at Amazon Web Services – and the fascinating adventure of Twilio. He also gives many examples about companies that get this mindset right, such as Amazon or ING : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">One of those rivals is located just across town—ING, whose roots reach back to the 1700s and which manages more than $1 trillion in assets. It’s about as far from a startup as you can get, and it competes in an industry that is notoriously stodgy, risk-averse, and highly regulated. Yet ING has become one of the most innovative software development organizations in the world”. </span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Because Twilio delivers communication API to many companies in the world, which are at the heard of digital customer relationship and engagement, Jeff Lawson has a great view of Digital Transformation as it happens in his customer companies. His messages are, from my point of view, spot on. As he notices, the current acceleration of digital transformation caused by the COVID crisis makes this message even more urgent than before: </span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">“Customers will become accustomed to these digital experiences, and expectations will just continue to rise quickly. Companies that get this right will have loyal, engaged, productive customers. Those that don’t will struggle even more than before the COVID-19 crisis</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. My short summary of this book will focus on the three key messages that Jeff Lawson underlines in his book: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Company leaders who build industry-changing software products seem to do three things well. First, they understand why software developers matter more than ever. Second, they understand developers and know how to motivate them. And third, they invest in their developers’ success</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">2.1 Software is Eating the World, Hence Digital Transformation is a Mandate</span></span></h3><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><br /></h3><div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;">Readers of this blog know that Marc Andreesen famous quote (<a href="https://a16z.com/2011/08/20/why-software-is-eating-the-world/" style="text-align: justify; text-decoration-line: none;"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">and article</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">) about “software eating the world” is one of my favorite. This is also a starting point for Jeff Lawson: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">Building software has become existential for companies across nearly every industry. Digital transformation has gripped nearly every company as the threat of digital disruption has completely challenged how companies operate</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">”. Thus the theme of the book is not simply about getting more value from you product development or your IT department, it is about succeeding your digital transformation to survive in the 21</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: super;">st</span></span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;"> century: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">so the Ask Your Developer mindset isn’t just a way of making developers feel appreciated, it’s a new way of operating to succeed in the digital economy”. </span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">Following the same thought process that Mik Kersten shares in the beginning of his book “</span><a href="http://organisationarchitecture.blogspot.com/2020/10/conduire-sa-demarche-agile-du-projet-au.html" style="text-align: justify; text-decoration-line: none;"><span style="color: blue; font-variant-east-asian: normal; font-variant-numeric: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Project to Product</span></a><span style="font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">”, there is good news and bad news with the necessary software ambitions for most companies. The bad news is that this is a survival matter – because software is eating the world – the good news is that the tools, the practices and the mindset of the software giants are accessible once a company puts it mind on it : “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;">Every kind of company can become a software company—all you have to do is internalize the value of rapid iteration. You don’t need to be Elon Musk or Jack Dorsey; you just need to believe in the power of iteration, and Darwin will be on your side. But of course, to iterate, you first need to build. You can’t iterate on something you’ve bought off the shelf. That’s why it’s Build vs. Die”.</span></span></div><div style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: verdana; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: justify; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div><p dir="ltr" style="line-height: 1.38; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">This quote shows the strong message of Jeff Lawson about software ecosystems. To succeed in one’s digital transformation, each company must understand and reuse much of the software capabilities that are already here – which is one of the reasons why one should Ask Their Developers – but it must also build its own differentiating capabilities : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">But in fact companies succeed at digital transformation not just by using software but by building software. Startups like Uber, Lyft, Airbnb, and Spotify have become household names because they’re really good at building software</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. The book gives a great testimony about Amazon realization of itself as a software company: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">But Jeff came back with an answer most of us didn’t expect. “Amazon,” he said, “is not a retailer. We’re a software company” … “</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Our business is not what’s in the brown boxes,” he said. “It’s the software that sends the brown boxes on their way”. The success of many startups, Amazon included, comes from their capacity to leverage the new – and constantly increasing – powers of modern software tools : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">These two trends became apparent in the early 2000s. Suddenly startups that were great at building software, and had no legacy infrastructure or storefronts to deal with, began springing up. These digital native companies focused their early energy on creating great customer experiences, and they used their software-building expertise to their advantage. The new playing field was digital, and they brought an A-game</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. Bringing an “A-game” is about talent, bringing in and keeping, the best software skills. So there are two sides to the “Ask Your Developer” mindset: one is about getting more value from your existing talents, the other is about creating an environment that attracts and nourishes these talents : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I’ve talked about why it’s so important, and easier, for companies to become software builders. To do that, you need talent. In the coming decade, the winners will be companies that build the best software—which really means, the companies with the best software developers”. </span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">As mentioned previously, the “Ask Your Developer” transformation is enterprise-wide and needs to reach every position in the company: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ask Your Developer isn’t just a skill set—it’s a mindset. Over the last decade, I’ve met so many people who exhibit this mindset, in every function—from finance to customer support, from marketing to operations, from sales to product—who are building the future of their respective companies as digital businesses</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><h3 style="line-height: 1.38; margin-bottom: 8pt; margin-top: 0pt; text-align: left;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">2.2 Writing Software is a Creative Activity</span></span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">As a software developer myself (I should write amateur software developer these days), I must confess a bias: I was delighted to read about the importance of creativity in software development. Although a Math major, I could not agree more with Jeff Lawson: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Writing software is more similar to making music or writing a book than it is to doing math or science</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. One could write an entire blogpost about this statement because it holds the VUCA key of digital transformation. There are many domains where software development is more like maths than music. I started my career and PhD dissertation on compiler design, where mathematical skills and abstraction is the rule of the game. But as we turn into the 21</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: super;">st</span></span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> century and as we focus on human-centric software where user experience design is the key to success; creativity, experience and aesthetics (the sublimation of practice) become the key success factors, hence the analogy with music. Jeff Lawson offers many quotes from one of the most revered software thinker in the industry: </span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">“I’ve always thought that engineering is one of the most creative jobs in the world,” Amazon’s CTO, Werner Vogels, says. “Every day you get to create something new. Engineering is an extremely creative profession. Not all engineers are trained to become creative players. But it can be taught over time</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. It is important to notice that creativity does not preclude discipline and the use of tools – a statement that I make each time I hear criticism about the “</span><a href="http://informationsystemsbiology.blogspot.com/2017/06/digital-experience-factories.html" style="text-decoration: none;"><span style="background-color: transparent; color: blue; font-style: italic; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">software factory</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">” term – as we shall later see, the book covers in depth the need for automation and the importance of DevOps practices.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Once you understand the importance of creativity, you derive that context is critical: developers must understand the “why” to perform their jobs fully. In my own book, “the lean approach to digital transformation”, I recall our experience at AXA’s digital agency, where we found that it was mandatory for developers to be given not only the user stories, but also the pain points that were detected during the design thinking phase. Good agile practices require user stories to be descriptive and user-centric (hence the name), but the problem that the product is trying to solve should be fully disclosed to the developers: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Enabling the developer to deeply understand what the user needs, and then letting them meet it, is what sharing problems is all about</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. This is one of the main message of this book : </span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">you should bring talents with technical and software skills as early as possible in the design of a product</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I’m convinced the key to building a world-class engineering culture is bringing developers into the big problems you’re trying to solve, and leveraging their full brains. It’s not too hard to tell if that’s happening in your company. When you see a developer, ask what they’re working on, and what customer problem it’s going to solve</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. This mindset, of bringing a technology view early into the business discussion, works both ways: it produces better solutions and it produces better engagement. This is underlined by Werner Vogels: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Engineers sometimes need help to realize that nontechnology companies are filled with important, challenging, and difficult technology problems that would be really cool to work on. “I’m finding there are a lot of very interesting challenges in every large corporation”</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">2.3 Winning the Software Race is Hard, this is a Competitive World</span></span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I have written my recent</span><a href="http://organisationarchitecture.blogspot.com/2021/05/les-leviers-profonds-de-la.html" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">blogposts</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> reviewing</span><a href="http://organisationarchitecture.blogspot.com/2021/01/les-defis-de-la-transformation-digitale.html" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">books</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> that notice that digital transformation is hard and that succeeding with the new “digital offerings” is definitely</span><a href="http://organisationarchitecture.blogspot.com/2020/02/architecture-dentreprise-pour-reussir.html" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">a challenge for most</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. This is not a surprise for Jeff Lawson: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Building software is incredibly hard, and building a culture of digital innovation is even harder</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. On the one hand, this is the good news that we noticed earlier, much is available about how to do software development right, small startups demonstrate this all the time. On the other hand, good software development requires talents, experience (lots) and the proper tools and environment. The 21</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: super;">st</span></span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> century is indeed very competitive, it is not enough to churn good software, you need to do it fast: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Another challenge is speed. Digital natives can turn a great idea into production code in a matter of weeks—or even days. They roll out new iterations every day. For traditional companies, keeping up means speeding up. “You can no longer afford to spend six months or twelve months in development before you launch,” Vogels says</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. Speed is critical, and it requires discipline, skills and practices. There is no quality versus speed trade-off in this new world, both are mandatory: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">As I’ve noted, the cadence of software innovation is faster than ever before. Turning customer insights into products is happening at a lightning speed in this digital era. Yet there’s often this question of whether teams should move quickly to capture opportunities and respond to customer needs, or whether they should move more cautiously, ensuring that everything works properly, scales well, and is bug-free. However, at really good software companies, this is a false dichotomy”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The focus on the developers’ “environment” is critical: the whole company is part of the software development environment. The complexity of our VUCA world means that the idea of “software development in an isolated (organizational) box” is practically over (as noticed earlier, there are still domains where full specifications and waterfall development are practical and deliver value, but they are more the exception than the rule). Becoming a software company is an enterprise-wide transformation: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">If you want to become a software builder, you need to start by changing the mindset of the entire organization. It’s not enough to just hire a bunch of new developers, or to change the way developers do their jobs. None of that will work unless you also change the culture around them”</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Transforming the company is a strategic endeavor because success requires to develop new software capabilities: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">you can’t buy differentiation. You can only build it</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">” ... </span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">“Looking ahead, the companies that harness the power of software to deliver the best digital customer experiences will survive and thrive in the digital age</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. In this post, I will not cover the talent shortage topic although it is today in the top of mind of most CIOs that I know, myself included. However, Jeff Lawson talks about the obvious shortage of talents that the COVID crisis has even worsened: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">There’s a shortage of developers in the world. In 2019, there were four times as many open software jobs as there were new computer science graduates</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. In the spirit of the global advice to link developers and business as much as possible, he sees the recruitment of software talents as a key priority for senior business management: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">when you’re recruiting top technology talent, they should be involved. Ideally your CEO already knows why technology is important to the company, intends to work closely with your top technologists, and therefore already intends to be part of the recruiting process</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><h3 style="line-height: 1.2839972727272726; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> <br /></span></span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">2.4. In the Digital World, Doing and Thinking should be Mixed </span></span></h3><div style="line-height: 1.2839972727272726; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;">The root cause for missing the opportunities that are offered by the exponential development of digital technologies is Taylorism, that is the separation between thinking and doing. The over-emphasis on processes, coupled with specialization and hypertrophy of roles, create segmented development processes where much of the potential value is lost: “<span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">The cold, dispassionate process of software development common in some companies is a tragedy both for the business and the developers. I see it as a failure to fully realize the potential of this amazing talent</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. In the digital world thinking and doing must be mixed, product development is a cross-functional effort. Thinking get constantly enriched and modified by what one discovers while doing; doing must adapt continuously hence thinking is required. This means that the business and the software skills must be applied at the same time, in a iterative manner: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">I think there’s often a false divide between businesspeople and software developers. At many companies, there’s a disconnect between the way businesspeople think, and what they want to accomplish, and what the software developers in those companies think they’re supposed to do</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. Business decisions are intertwined with technical decisions, which is why developers must be involved early on: “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Oftentimes, these decisions to not leverage cloud services are made at the top because . . . strategy. I think this is foolish. Executives should look to their developers and technical talent to help make these decisions</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”. The clear piece of advice of Jeff Lawson is “</span><span style="font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">to let business experts and developers work together, early in the development process, to co-develop the strategy, the design and the product</span><span style="font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></div><p dir="ltr" style="line-height: 1.38; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Breaking the Taylorism in favor of cross-functional teams and adopting the “Ask your developer mindset” is, as we stated above, both a way to unlock more creativity, innovation and efficiency, and also the best way to become attractive to software talents : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">If you’re having trouble hiring great technical talent, or worse yet, you hire them but they’re leaving before they add value—Ask Your Developer can help you create the conditions to attract and retain great developers by unlocking their intrinsic motivation to build</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. Creating cross-functional teams with diversity in skills and profile is better achieved when the team members focus on problems first. Diving onto the solution is probably the most common errors in many companies since it produces second-rate quality products and frustrated teams. The deep exchange about customer problems is the best glue to grow collective intelligence: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">the key to getting businesspeople and developers to work well together is for the businesspeople to share problems, not solutions”. </span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">As you build your software development team, the fundamental ask of your developers, your architects, and your technical leadership is to pick the right areas to build. This is clearly one of the strong points of Amazon: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Business leaders like Andy Jassy provided leadership guidance and wisdom, but really created an environment for technical leaders to flourish and add business value, not just code</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Eventually, this is all about</span><a href="https://en.wikipedia.org/wiki/Tacit_knowledge" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">tacit knowledge</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. People with software development experience can make better and faster decisions not because they bring more knowledge to the discussion, but less. This is a critical trait of complex situations: you cannot summarize everything on the Powerpoint, nor should you. Companies need to rely on experience and delegate the decision closer to the ground. Jeff Lawson uses the term “</span><a href="https://exceptionnotfound.net/bikeshedding-the-daily-software-anti-pattern/#:~:text=Bikeshedding%20occurs%20when%20a%20development,in%20the%20room%20actually%20understands." style="text-decoration: none;"><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">bikeshedding</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">” to characterize those meetings where there is an avalanche of technical details that make it hard to focus on the real issues, something that most of us have seen in our professional lives. This is often the consequence of a lack of experience, and the fear of missing out : “</span><a href="https://thedecisionlab.com/biases/bikeshedding/" style="text-decoration: none;"><span style="background-color: transparent; color: blue; font-style: italic; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Bikeshedding</span></a><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, therefore, is the tendency for nonexperts in charge to expend a lot of calories on unimportant details, because they lack the context to make the most important decisions</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.284; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">2.5. Intrinsic Motivation Rules in the 21st Century</span></span></h3><div><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"><br /></span></span></div><p dir="ltr" style="line-height: 1.38; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGXDiNcRUWAgoaZwYvgRxnkfCvokJCLCK6qX5f4EnMuSzQjyLW0DJCnjz2AZPzBWIa6c7GNkbyMP9YsNfwJDaxgzwXsIVyGfBh08FOXmjrIouQ4cE89i5qx0oIRYbI3aM-VL6g34D5mXs/s280/DrivePink.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="280" data-original-width="180" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGXDiNcRUWAgoaZwYvgRxnkfCvokJCLCK6qX5f4EnMuSzQjyLW0DJCnjz2AZPzBWIa6c7GNkbyMP9YsNfwJDaxgzwXsIVyGfBh08FOXmjrIouQ4cE89i5qx0oIRYbI3aM-VL6g34D5mXs/w206-h320/DrivePink.jpg" width="206" /></a></span></div><span style="font-family: verdana;">Jeff Lawson is a big fan of Daniel Pink and his best-seller, “<a href="https://organisationarchitecture.blogspot.com/2012/11/motivation-lean-et-stress.html" style="text-decoration: none;"><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Drive – The Surprising Truth About What Motivates Us</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. Frankly, I find that everyone should have read this book or at least be familiar with the overwhelming evidence that science has collected about motivation. Still, as Daniel Pink noticed ten years ago, “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">There is a gap between what science knows and business does</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. If you are not familiar with Daniel Pink, you must definitely watch</span><a href="https://www.youtube.com/watch?v=u6XAPnuFjJc" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">this world-famous video</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Fortunately for Twilio members, Jeff Lawson has understood that extrinsic motivations does poorly in a complex world and that, once fair compensation is offered, companies need to focus on intrinsic motivations: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Once you meet the bar of fairness, employees focus on the real reasons for work: autonomy, mastery, and purpose. I believe this is especially true for developer</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. His book recalls the main findings of</span><a href="https://www.danpink.com/books/drive/" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Drive</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, and how they are applied to the management of developers. An original contribution of the book is to introduce us to a collection of highly skilled developers, to help us understand better how they think and how they work. He also speaks a lot about hackathons, one of the easy way to reveal software talents: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">More interesting, from my perspective, is what this reveals about developers themselves. The people who participate in these hackathons often work for companies that treat them like code monkeys. Thorn invites them to spend a weekend trying to solve an important and difficult tech problem—how to wipe out child sex trafficking—and gives them complete freedom. And guess what? They shine. These mild-mannered cubicle dwellers turn into superheroes. Imagine what might happen if their employers knew how much good these people are capable of doing”</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. I will reproduce here a few quotes from Kaya Thomas, as told by Jeff Lawson, since they tell vividly about what motivates software developers: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I don’t want to work in tech to fool around, I want to create amazing things and learn from other smart people. That is the culture fit you should be looking for,” Kaya wrote (italics mine). The statement I’ve italicized is probably the best distillation I’ve ever read of what young developers are looking for in an employer. Those two factors—create amazing things and learn from other smart people—are basically what all of us look for from our work”</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. She then adds: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">There’s a common misconception that you get hired as an engineer just to write code, but communication is a huge aspect of the job. How do you take very technical ideas and make it possible for people who aren’t engineers to understand them? You need to learn about code reviews, how to give a code review and how to receive one, and how to learn from that information. You need writing skills, to create technical documents. You need public speaking, to be able to speak at conferences, or just to get up and disseminate information to other teams</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.”</span></span><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><h3 style="line-height: 1.2839972727272726; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">2.6. Modern Digital Organizations are Continuous Learning Organizations </span></span></h3><p dir="ltr" style="line-height: 1.2839972727272726; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Because technology is constantly changing, a modern software development organization is foremost a place of continuous learning: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">An open, learning environment is one where the organization is receptive to not having all of the answers, is comfortable with uncertainty, and strives to get better every day”</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Jeff Lawson was trained as a lawyer, he is repeatedly promoting in his book the</span><a href="https://en.wikipedia.org/wiki/Socratic_method" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Socratic method of learning</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, through asking many questions : “ </span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">We want to teach employees how to teach themselves. That’s the essence of a learning environment. We’re building a mindset, a way of analyzing and solving problems. The Socratic method is as effective with business problems as it is with complex legal cases”</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Asking questions about customer problems is the easiest way to create a common perspective : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">You can do this, too—it’s easy. Another thing to ask your developers: during product reviews, start the conversation with the customer problem”.</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> This leads naturally to the lean roots of learning through problem solving: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The way you get there is repeatedly asking “Why?</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”” and its “</span><a href="https://en.wikipedia.org/wiki/Five_whys" style="text-decoration: none;"><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Five whys</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">” practice. This is the best way to learn continuously from operations problem, through “</span><a href="https://informationsystemsbiology.blogspot.com/2018/10/from-digital-transformation-to-service.html" style="text-decoration: none;"><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">blameless postmortem</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">We, and many other software companies, do this via a ritual called the “blameless postmortem.” The purpose of the blameless postmortem is to dig below the surface of some kind of bad outcome to the true root cause, and address that as an organization</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. </span></span></p><p dir="ltr" style="line-height: 1.2839972727272726; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The focus on constant and iterative learning is emphasized with the reference to</span><a href="https://en.wikipedia.org/wiki/Lean_startup" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Lean Startup</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> and leads to numerous explanations about how Agile software development is implemented at Twilio: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">While there are many ways to implement Agile development, they all revolve around three main ideas: anticipating change, chunking up work, and maintaining close collaboration between the business and developers”.</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> Anticipating change is clearly the landmark of 21</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="vertical-align: super;">st</span></span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> century development. One should expect changes during the development process and organize oneself to welcome such changes as (differentiation) opportunities. The second agile principle underlined by Jeff Lawson is about small value delivery increments, popularized as sprints: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">chunking up work as you go, into units that are manageable, predictable, and implementable … This process is designed to make each work item predictable in scope and time to implement, giving a high degree of confidence to the work”</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. This is the key ingredient of agility: breaking into small manageable units and not reverting to the fallacy of adding more resources : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Who wouldn’t want more budget and head count!? The reason is that throwing more people at the problem, especially if a project is in progress and running behind, is not likely to help. In fact, it’ll probably further delay the project”.</span></span></p><p dir="ltr" style="line-height: 1.2839972727272726; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">2.7. Innovation Requires Experimentation, Experimentation Requires Best-In-Class Infrastructure.</span></span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnJ2GjS4Uvrqb6qpuhc0ludKXZN-W4H2v_NJ6bR4Q-hGUwaG_62qguDCHEn2aasTO2oUscYnkqvlN5h9yCZPKu4-2hoMdgxdyY-4p_iR047aNuHtgUAAvOTr7rX46AWkIKAGFQmFte-YI/s2048/LeanStartup.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="2048" data-original-width="1339" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnJ2GjS4Uvrqb6qpuhc0ludKXZN-W4H2v_NJ6bR4Q-hGUwaG_62qguDCHEn2aasTO2oUscYnkqvlN5h9yCZPKu4-2hoMdgxdyY-4p_iR047aNuHtgUAAvOTr7rX46AWkIKAGFQmFte-YI/w209-h320/LeanStartup.jpeg" width="209" /></a></span></div><span style="font-family: verdana;"><br />The<a href="https://informationsystemsbiology.blogspot.com/2013/10/lean-startup-lean-innovation-factory.html" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Lean Startup</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> approach is a learning engine that delivers units of learning through controlled experiments. Controlled means that, through innovation accounting, assumptions are made explicit, then validated or invalidated through experiments carried with a minimal viable product. Innovation requires experimentation: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">This is how innovation works: experimentation is the prerequisite to innovation. The more quickly and cheaply you can run experiments, the faster you’ll eventually find something that works”</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Experimentation is required because the world is too complex, and nobody knows what is going to work for the customer or not: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">That’s the essence of experimentation. It’s also the essence of the Lean Startup revolution started by Eric Ries, who wrote the foreword to this book. If you can try things in a low-risk way and quickly learn about your customers’ needs, why wouldn’t you ?“. </span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The unpredictability of digital successes apply to everyone, including Amazon: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">In his 2015 letter to Amazon shareholders, Bezos reminded investors that three of Amazon’s biggest successes—Marketplace, Prime, and Amazon Web Services—began as experiments, and that, when they were conceived, nobody knew whether they would work or not”.</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> Consequently, Jeff Lawson has made Twilio into a very impressive experimentation engine: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">At Twilio we’re always trying to run as many experiments as possible. We ship new versions of our product over 120,000 times per year—more than 300 times per day</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”.</span></span><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Experimentation requires both speed (to run many of them) and discipline (to learn, you need to be clear about your assumptions). It is critical to write your assumptions down:” Having</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> a hypothesis, and a set of assumptions to prove or disprove, is great—but you need it in writing so you can track progress. At Twilio, one of our core values is “Write it down,” and experiments are a great place to exercise such a practice”</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Discipline is a critical: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">You build products for your customers. It’s not like, ‘Let’s go build some technology in the wild and see what happens with it,’” Werner Vogels says. “You need a very strong mechanism to make sure that you know exactly what you’re going to build for your customers</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.”</span></span></p><p dir="ltr" style="line-height: 1.2839972727272726; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Fast and robust experimentation requires to invest into great infrastructure: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">To make your developers successful, you need to invest in infrastructure”. </span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">First-class infrastructure is about capacity and speed of execution, it is also about flexibility and speed of development. Without surprise, Twilio have moved to DevOps: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">This combination was crucial as we started to embrace a methodology called DevOps in building our developer platform. Even if you don’t work directly in technology you might have heard the term DevOps without really understanding what it is”. </span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">There is no surprise because production platforms are the innovation engine, the place where experiments happen, in our digital world. The time of the lab environment is over, you need to build your production infrastructure so that it may be used to run safely the multiple innovation iterations : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">In short, by providing platforms and processes that helped developers build faster while still having guardrails to ensure that customers and the company were protected from truly bad outcomes, Rossi made sure that when developers moved fast, they didn’t break things too much. It turns out, great infrastructure is the foundation of innovation”</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. This is top reason why Google is attractive to software developers and should be looked at as</span><a href="https://informationsystemsbiology.blogspot.com/2018/10/from-digital-transformation-to-service.html" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">a source of inspiration</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ever wonder why engineers flock to companies like Google? Sure, the pay is good. But the support infrastructure is world-class. It’s one thing to coddle developers with free lunch and tricycles, but Google really coddles developers with great infrastructure on which to build. When your tools direct nearly all of your energy toward the task at hand—serving customers and being creative—it’s magical. The opposite is also true—when you’re fighting your tools, it’s a real morale hit</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">2.8. Customer-Centricity for Everyone</span></span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">As stated earlier, customer-centricity is the best way to unite a diverse team around a common and sensible goal: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">For a team to develop the intrinsic drive of a startup, they need organizing principles that articulate their purpose. I typically start by defining the customer they’re serving</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. This applies at all scales in the organization, down to the product development squad: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Defining customer, mission, and metrics is the foundation of the small team</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. Customer-centricity has become a very fashionable buzzword, but it remains a very demanding mindset which requires practice to develop the necessary behaviors : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Customer centricity, as the name implies, is creating an organization that constantly self-corrects to put customers at the center of our decisions. Like a gyroscope that resists being moved off-center, a customer-centric organization resists the many forces that attempt to deprioritize customers. But it’s incredibly hard to do, and that’s where it’s helpful to learn from the masters”</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Because Jeff Lawson works in B2B, he takes customer-centricity to a deep level of customer empathy (“walking in your customer shoes”) which he describes through the concept of hospitality: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Hospitality is the foundation of my business philosophy. Virtually nothing else is as important as how one is made to feel in any business transaction. Hospitality exists when you believe the other person is on your side. The converse is just as true. Hospitality is present when something happens for you. It is absent when something happens to you. Those two simple prepositions—for and to—express it all</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. Hospitality reveals the key concept of customer experience, which is much larger than the service that company is delivering: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Service is the technical delivery of a product. Hospitality is how the delivery of that product makes its recipient feel. Service is a monologue—we decide how we want to do things and set our own standards for service. Hospitality, on the other hand, is a dialogue</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Developing this customer-centric mindset requires to share the “voice of customer” throughout the organization. Customer-centricity cannot be delegated to some department, it is the common soul for all teams : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">But by putting engineers directly into the flow of customer feedback, you achieve two things. First, you humanize your customers. Instead of being a requirements document, the developers get to hear straight from customers not just what they need, but why they need it”.</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> This last quote is especially meaningful for me, because I have witnessed first-hand the power of sharing the customer (issues) testimonies across multiple teams when I was developing set-top boxes at Bouygues Telecom. Earlier in my career, I had witnessed the terrible situation that Jeff Lawson describes when companies overengineer their organization and specialize roles: “ </span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">But in a cruel irony, these are the types of companies that are often most likely to separate customers from the people building the product. Business-to-business companies, for example, typically employ armies of salespeople, customer success advocates, customer support agents, and domain-expert product managers as buffers between customers and the development team”</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Customer-centricity starts with listening and observing. Here also, I find the following anecdote related in the book to hit close to home. I have had the humbling experience to discover, many months after completion, what users were really doing with the piece of software that I had written. Iterative and repeated observations and conversations with users is the only way to avoid this: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Back in the software shop, Ben and the others were writing programs with the assumption that their applications would fill the entire screen on a trader’s terminal. But in fact our application was in this little teeny corner of the window and they had nine other things going. They’re viewing my stuff on this tiny little window, so everything looks terrible and they can’t read it. I realized that things like font size mattered, and contrast mattered. It made me realize that the choices I was making as a developer were wrong. It was really enlightening</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.”</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">2.9. Software as a Service and Software Platforms</span></span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">As told in the introduction, reading this book will also help you to learn about Twilio and how it was born from the desire to simplify the developers’ experience when building software products that embed communication services : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Our software would abstract one hundred years of complexity that the industry had accumulated and present it as a simple API for developers”</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Jeff Lawson explains how he went to call and interview prospective customers – software developers – to find out which kind of API would be useful. He then moves to the software platform development phase at Twilio, and how they had to optimize the delivery through automation. Here is an illustrating example of the search for automation – which is how you achieve the capacity to experiment: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Jason grabbed two platform engineers, and they automated a bunch of steps in our development process. Their work slashed development time in half—from forty days to twenty days. The impact gets magnified because we develop about two hundred new Java services per year. Yes, we spent money on those two platform engineers. But their work saved us four thousand person-days per year</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Thinking your software product as a platform is part of the “new” digital mindset: it tells how you propose your services to others, but also how you integrate other players services into your systems. Platforms plays two critical role in the software ecosystems : they act as market places (interfaces) to support the dynamic interplay of cooperation and they hide complexity by hiding (through service APIs) the underpinning of what is exposed in the platform : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The future of platforms will be allowing software developers to focus only on their features and their customers, and not about all the underlying systems that are required to bring software from somebody’s head to the cloud to a device and to an experience for a customer</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. Jeff Lawson uses the supply chain analogy to emphasize this point : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">As I noted in Chapter 1, I believe every company that’s going to survive and thrive in the digital economy needs to build software. Thus, your supply chain matters. If your digital supply chain is better than your competitors’, you’ll be in a much stronger position to succe</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ed”. The book quotes Amazon Web Services as a perfect illustration of the platform approach: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Its sales have grown from practically zero in 2007 to an annualized $40 billion as of the first quarter of 2020. From zero to $40 billion in twelve years, which is pretty much unprecedented growth. That’s why it’s obvious that this business model—the platform business model—represents the next big thing in software</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">2.10. Modular Architecture, API and micro-services</span></span></h3><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The power of APIs to achieve loose coupling through abstraction (encapsulation of complexity) is why they are so useful to build resilient, future-proof and modular systems, as explained in the introduction. Modular systems aim at being more resilient because the amount of information and knowledge that must be shared decreases. Jeff Lawson emphasizes this point : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I believe the goal isn’t better collaboration; it’s actually less collaboration. Great companies don’t say: “I need better customer support.” They say: “We should reduce the need for customers to contact customer support.” In the same way, great companies reduce the need for teams, and individuals, to collaborate by standardizing or productizing the interactions between the groups”</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. The COVID crisis has shown that modular architectures are more resilient “ </span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The crisis also showed how much faster it has become to build and deploy software. Software building blocks, microservices, and APIs have radically accelerated the process</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. This way of thinking about modularity and API was made famous at Amazon : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">In 2000 Amazon had a giant monolithic mess of engineers and code powering the fast-growing retail business. Engineers were stepping all over each other, and the coordination energy to get anything done was massive. Things were slowing down, so Bezos wrote the “two-pizza team” memo proposing that they divide the company into small teams in order to move faster</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> .. </span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if teams were organized into startup-like sizes, if they owned their road maps and they owned their code so they could move quickly, they could act like startups again, just as they had in the early days of Amazon, when Jeff remembered they could feed the whole team with two pizzas”. </span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> The power of the small team approach it to be able to focus fast on a customer problem (“</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">That’s the power of a small team—there are no proxies; you’re just directly solving customer problems with your code</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”) provided that the modularity of the complete system’s architecture leaves enough autonomy to the team.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">This quest for small team autonomy has led to the concept of microservices. The team runs its own system, from development to operations (hence, with DevOps practices), to deliver its own units of value through APIs: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">These microservices were delivered not as a pile of code, nor as a website, but as a web-based API. APIs are well-defined interfaces that enable code to talk to other bits of code. Once a team builds and exposes an API to others, it’s important that they teach other teams how to use it via documentation that’s accurate and up to date. So at Amazon, an internal culture of API documentation arose. One team could find another team’s API documentation and start using their services, often without even needing to talk. This enabled the teams to effectively work together, solving the coordination problem”. </span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Once the SOA (service-oriented architecture) patterns emerges, it is a great blueprint to separate between what you build and what you source : “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">My rule of thumb is that for anything that gives you differentiation with customers, you should build. Software that faces your customers, you should build. … But for most back-end operations, and for things that won’t give you any differentiation with customers, you should buy. You aren’t going to build your own email. Or your own database software</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”.</span></span></p><p dir="ltr" style="line-height: 1.2839972727272726; margin-bottom: 8pt; margin-top: 0pt; text-align: justify;"><span style="font-family: verdana;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The development of microservices is not the result of planed and careful design, it emerges from a Darwinian process of experiment and usage consolidation. This means that duplication of effort is a temporary byproduct: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">This may be part of why I’m often asked how we prevent duplicate work in our small, empowered teams culture. My answer is: we don’t</span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">”. The key insight is that sharing/ reuse /</span><a href="https://en.wikipedia.org/wiki/Mutualization" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">mutulization</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> emerges from experience, not from design. To focus too early on reuse at the design phase places too strong a complexity burden on the teams’ journeys: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">We allow our teams to charge ahead and lead the way. Then, as technical leaders and architects, we watch for the patterns to emerge. When we see multiple teams all inventing similar things you can step in, observe the trend, and staff a team to go solve that problem for everybody—thus achieving efficiency. That’s the essence of platforms. But instead of trying to perfectly plan it out from the top, let teams organically show you the path”. </span><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> This the reason why system architecture is a</span><a href="http://continuous-architecture.com/" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: blue; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">continuous process</span></a><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Notice that Twilio inherited this view from Amazon, as stated by Werner Vogels: “</span><span style="background-color: transparent; color: black; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Amazon also prefers speed and doesn’t obsess about duplication, … We allow teams to just do a lot of things themselves, even if that duplicates some functionality. We’re willing to exchange that for moving fast”.</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><h2 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">4. Conclusion</span></span></h2><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;">I will conclude this book review with the emphasis about three key ideas:</span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: verdana; text-indent: -18pt; white-space: pre-wrap;"><br /></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"></p><ol style="text-align: left;"><li><span style="text-indent: -18pt; white-space: pre-wrap;"><span style="font-family: verdana;">Taylorism is counter-productive, diversified roles must collaborate and thinking and doing are mixed in the development process.</span></span></li><li><span style="font-family: verdana;">Ask your developer does not mean “leave it to your developer” – it means: (a) to grow cross-functional teams (b) to ask the doers as early as possible in the product lifecycle.</span></li><li><span style="font-family: verdana;">Micro services are both a system architecture pattern (about modularity and API) and an enterprise organization pattern (about networks of autonomous teams). It is not something that you design, it is something that you grow. It grows from usage, but it requires constant care (refactoring) similar to gardening.</span></li></ol><p></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><p></p><p dir="ltr" style="line-height: 1.2839972727272726; margin-bottom: 8pt; margin-top: 0pt;"><span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: verdana;"> </span></span></p><div><span style="background-color: transparent; color: black; font-family: Calibri,sans-serif; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;"><br /></span></div>Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com0tag:blogger.com,1999:blog-438942112364524044.post-87736932537372870102021-03-14T00:01:00.000-08:002021-03-14T00:01:27.144-08:00What does “doing agile” mean ?<p></p><p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><br /></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span style="color: black; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<p class="MsoListParagraph" style="line-height: normal; margin-bottom: 0cm; mso-add-space: auto; mso-list: l4 level1 lfo7; text-indent: -18.0pt;"><!--[if !supportLists]--></p><h2 style="text-align: left;"><span style="font-family: verdana;"><b><span style="color: black;"><span style="mso-list: Ignore;">11<span style="font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">. </span></span></span></b><b><span style="color: black;">Introduction</span></b></span></h2><span style="font-family: verdana;"><b><span style="color: black; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">
<!--[if !supportLineBreakNewLine]--><br style="mso-special-character: line-break;" />
<!--[endif]--><o:p></o:p></span></b></span><p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: justify;"><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">Agile methods have clearly won the software development popularity contest and
Agile ways of working have become a necessary component of ever modern company’s
strategy; Everyone want to “do agile”. Agile is no longer an IT topic, it has
become an organization method that applies to the whole enterprise. Most companies
claim to “do agile” or to have started an “agile transformation”. This is actually
not a surprise since Agile actually works and delivers value in a VUCA world.
Each letter of the VUCA acronym (Volatile, Uncertainty, Complexity and Ambiguity)
represents a challenge for the traditional (Taylor-influenced, planned, decide-then-execute,
specialize activities, …) ways of working in general, and the waterfall software
development process in particular. Agile methods are iterative, based on
continuous feedback from the environment and the collaboration of multiple
viewpoints (design, development, operations,<span style="mso-spacerun: yes;">
</span>…) that brings solutions to the VUCA challenges. You may read the BCG
article “<a href="https://www.bcg.com/publications/2019/why-agile-works">Why
Agile Works</a>” by David Ritter and Linsay Chim to get some additional arguments.
They explain that “agile organizations establish an unbroken chain of Why”,
between purposes, outcome and work, that makes the outcome much more robust to
the VUCA uncertainties: “one of the most powerful benefits of agile is the
ability to quickly recognize when things are going off course and to adjust on
the basis of learning”.</span></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: justify;"><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">Agile in a VUCA world has many flavors because it may focus on different goals.
First, it may mean to better innovate, to better satisfy the customer, in an <b>ambiguous</b>
and <b>uncertain</b> world. What matters then is the iterative nature to co-develop
with the customer. It may also mean to achieve a difficult outcome in a <b>complex</b>
world (digital transformation is not always about innovation, it also means to
do the things that your customer expect right). In that way, what matters is the
short cycle time, the “fail fast” capability. Agile may also be about constant adaptation
to your <b>volatile</b> environment (<a href="https://organisationarchitecture.blogspot.com/2014/03/entreprises-numeriques-et-homeostasie.html">digital
homeostasis</a>). In that case, agility is not simply about mindset or ways of working,
it is also a characteristic of your digital systems. As Arnaud Lemaire points
out in his wonderful “Let’s reset Agile” <span style="mso-spacerun: yes;"> </span><a href="https://www.youtube.com/watch?v=sZbmP0JZHBs">talk (in French</a>), if adaptability
is your goal, what matters is how much time it takes to change a component … which
is definitely as much a property of your code (how elegant your code is, how
modular your architecture, …) as a property of your process.</span></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: justify;"><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">Today’s post is a review of “Doing Agile Right”, a book that explore what how
companies should adopt the agile approach to innovate and deliver more value to
their customers. Learning to “do agile right” takes time, hence this is a book
about agile transformation. Agile transformation is a bigger challenge as soon
a scale kicks in, when the legacy of existing systems and operations has to be
factored in. Agile software development for a small independent team developing
a new product has never been a challenge. The challenge starts when a company
needs to increase the rate of change to its existing organization (people and
systems). This is the topic of this book and, therefore, the topic of this blog
post.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><br /></p>
<h3 style="line-height: normal; margin-bottom: 0cm; text-align: left;"><b><span style="color: black;"><span style="font-family: verdana;">2.<span style="mso-spacerun: yes;"> </span>Doing Agile Right</span></span></b></h3>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><b><span style="color: black; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: verdana;"> </span></o:p></span></b></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;"></span></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdJX0DGidR_L5SrGrkiIE3clveUJykZZ7QjHo5TLsiyC2c5Fj5e4ioCTLbj9fjfiYfYxjvxkF8M_2M0AHsIZEpMq1ruS9xRwkyWQh6z8j5skL4oWbxzKa028TSw5V8TDC6pOBtplEUfvo/s2048/DoingAgileRight.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="2048" data-original-width="1378" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdJX0DGidR_L5SrGrkiIE3clveUJykZZ7QjHo5TLsiyC2c5Fj5e4ioCTLbj9fjfiYfYxjvxkF8M_2M0AHsIZEpMq1ruS9xRwkyWQh6z8j5skL4oWbxzKa028TSw5V8TDC6pOBtplEUfvo/s320/DoingAgileRight.jpg" /></a></span></div><span style="font-family: verdana;">“ <a href="https://www.bain.com/insights/books/doing-agile-right/">Doing Agile Right :
Transformation Without Chaos</a>” is a book written by three Bain partners,
Darrell Rigby, Sarah Elk and Steve Berez. This is first and foremost a book about
Agile transformation. It is based on two key ideas : Agile works and the
transformation towards agile ways of working is long and difficult. A good part
of the book provides with example that show that agile delivers value and more
precisely, agile helps companies to deliver innovation in a VUCA word. For the
authors, agile is a business mindset change, much broader than the software
development aspect of innovation. Since the book is written by Bain partners
with a lot of combined experience assisting large companies, this book focuses
on such companies. Hence this book contributes to the testimony that agile can
scale (even if it is difficult) and that “agile at scale” works for many companies.
However, and this is what gives the title to the book, to deliver value at
scale, one must understand “deeply” how agile works and, therefore, “do Agile
right”. It is important to “do Agile right” because, according to the authors –
and many other observers – many companies are “doing it wrong”, generating
frustration and lack of significant and long-lasting results.</span><p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">This book
holds a great review of the history of agile, starting with a reference to <a href="https://vdocuments.mx/the-new-new-product-development-game-nonaka-and-takeuchi.html?fbclid=IwAR1t2_LYWWt4vuC53yjK-jVQSjPjBmGz30G4aRuEnY9nlLib1j-_g-Wl2ds">the
paper that is recognized as the seed in agile development methodology</a> : <span style="mso-spacerun: yes;"> </span>“ <i>In 1986, Ikujiro Nonaka and coauthor
Hirotaka Takeuchi published an article in Harvard Business Review called “The
New New Product Development Game.” Studying manufacturers that were releasing
successful innovations far faster than competitors, the authors identified a
team-oriented method that had changed the design and development process</i>”. I
am grateful to the authors of “Doing Agile Right” to have prompted me to read this
seminal article. Reading this 1986 paper in 2021 is fascinating, because so
many of the key ideas about Agile are already in the paper, with deep insights
about why this “new way of (software) product development” has become necessary
in a VUCA world. Teams play a key role; they are described as autonomous, with
cross-fertilization (cross-functional) and self-finality. Some of the major
traits of the Agile-to-become method are the multi-learning, the overlapping of
design and development, and the chaos-friendly “subtle” control (because the goal
is to orchestrate a group of teams, not to manage a single one). Some of the
key ideas about the role of the product generations as support for transfer
learning that I learned in 2012 thanks to my experience with set-top box design
are already there, beautifully articulated. Let me last mention a great quote –
to fill you with the desire to read for yourself – about the role of products: “<i>Third,
management should assign a different mission to new product development. Most
companies have treated it primarily as a generator of future revenue streams.
But in some companies, new product development also acts as catalyst to bring about
change in the organization</i>.”</span></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">As usual, the
following is not a proper book review, it is a curated selection of the eight
topics/ideas that I found most relevant. <span style="mso-spacerun: yes;"> </span>I encourage you to put your hands on your own
copy of the book, it is an entertaining as well as educating read.</span></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<h3 style="line-height: normal; margin-bottom: 0cm; text-align: left;"><b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">2.1<span style="mso-spacerun: yes;"> </span>Agile is a method that has a
proven track record to help companies to innovate</span></span></b></h3>
<p class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;"><br /></span></span></p><div style="text-align: justify;"><span style="font-family: verdana;">The first key message of the book should come as no surprise to the readers of
this blog : Agile way of working is well suited to our VUCA world and delivers value. The authors give multiple examples of companies
that have switched to agile approaches to better innovate: “<i>The reasons for agile’s rapid spread are
neither obscure nor surprising. Most big companies find it difficult to
innovate. They are weighted down by the structures and procedures of
bureaucracy</i>”. As the readers of <a href="https://www.oreilly.com/library/view/accelerate/9781457191435/">Accelerate</a>
know, this is not a matter of opinion, there today enough studies to
demonstrate that claim : “<i>These are grand claims, but the data support them.
Study after study find conclusively that agile teams are far more successful at
innovation than teams that work in traditional fashion</i>”. Companies are adopting
the agile way of building new products, services, and software systems and this
helps them deliver more value in volatile and uncertain world. In a world that changes
constantly, adapting your products, services and systems is a necessity,
innovation becomes a rule : “<i>Insufficient focus on innovation leads to a
static enterprise that will fail to adapt to changing conditions. Insufficient
emphasis on operations creates chaos—poor quality, high costs, and dangerous
risks to customers and to the business</i>.” Last, if Agile transformation has
statistically proven track record of delivering customer value, it is a deep
transformation that takes time : “<i>Organizations embarking on a
transformation to an agile enterprise are like triathletes in training. It’s an
ambitious project. There is an optimal pace. It’s likely to take years to come
to fruition. But successful companies will be able to do things that few others
can even contemplate</i>”.</span></div><span style="font-family: verdana;"><o:p></o:p></span><p></p>
<p class="MsoNormal" style="line-height: normal; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">Agile is foremost a mindset, a business attitude towards your context and
your environment. To be agile means mostly to recognize that your environment
changes constantly in a way that you cannot foresee, so you replace planning
with a regular and deep pattern of observation, then you take a corrective
action and you iterate. This has nothing to do with technology to start with : “<i>Agile
innovation works in situations beyond IT. As we noted earlier, many people
believe that agile began in IT and works only there. They are wrong on both counts</i>”.
The authors give multiple accounts of companies who have adopted agility as a
business attitude, such as NPR: “<i>It’s common to hear, for example, that
agile is great but only for technology-based innovations and the IT departments
that generate those innovations. This will come as news to National Public
Radio, which used agile methods to create new programs</i>”. Because the agile
mindset is focus on adapting, hence observing the environment, the agile approach
is “outside-in” and requires team autonomy and the reversal of the traditional top-down
chain of command : “<i>Agile teams work differently from chain-of-command
bureaucracies. They are best suited to innovation—that is, the profitable
application of creativity to improve customer solutions, business processes,
and technology</i>”.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<h3 style="line-height: normal; margin-bottom: 0cm; text-align: left;"><b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">2.2<span style="mso-spacerun: yes;"> </span>Doing Agile Right, as opposed to
“faux-agile” </span></span></b></h3>
<p class="MsoNormal" style="line-height: normal; text-align: justify;"><span style="font-family: verdana;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">In his famous article </span><span lang="EN-US" style="background: #F6F6F6; color: black; mso-ansi-language: EN-US;">« </span><span class="MsoHyperlink"><span style="background: #F6F6F6; color: black; text-decoration: none; text-underline: none;"><a href="https://martinfowler.com/articles/agile-aus-2018.html"><span lang="EN-US" style="color: #6728b2; mso-ansi-language: EN-US;">The State of Agile Software </span></a></span></span><span lang="EN-US" style="background: #F6F6F6; color: black; mso-ansi-language: EN-US;">»</span><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">, Martin
Fowler describes what he calls “faux-agile”, the abuse of the form of agile
over substance: “<i>Our challenge at the moment isn't making agile a thing that
people want to do, it's dealing with what I call faux-agile: agile that's just
the name, but none of the practices and values in place</i>”. Faux-agile is a
plague because it fits the need for control that is still common in many organizations:
it is based on procedures and tools, with an emphasis on structure and organization
to the detriment of team’s autonomy. This creates a static (and heavy) framework
– one size fits all – where software development methods should adapt and evolve
continuously. Faux-agile downgrades technical skills which is critical to build
agile systems (agility is also a property of the systems that are built) and the
focus on processes tend to stick companies with a project mindset where most often
a “<a href="http://organisationarchitecture.blogspot.com/2020/10/conduire-sa-demarche-agile-du-projet-au.html">shift
from project to product</a>” is required. “Doing Agile Right” proposes a description
of “Agile without meaning” which is very similar to “faux agile”. The authors
have tracked and observed the persistence of the Taylorist mindset (planning
over observation, thinking over execution) that produces “faux agile”: “<i>But
his approach caught on, and indeed it has long outlived him—even today, many
companies have plenty of managers and executives who are Taylorists at heart.
And when Taylorists try to implement agile, bad things happen</i>”. The thirst
to be in control, what <a href="https://organisationarchitecture.blogspot.com/2015/03/entreprise-30-comment-sadapter-un.html">Frederic
Laloux</a> calls “<i>the beautiful illusion of control</i>”, means that every
random incident that is the signature of a VUCA world will create the strong
desire to return to “the safe ground of command and control” : “<i>It’s a
version of <a href="https://en.wikipedia.org/wiki/Gresham%27s_law">Gresham’s
law</a>: bad agile drives out good. If that happens too often, agile will be
discredited—and the business world will be back where it started, with top-heavy
bureaucratic corporations struggling hopelessly to keep up with brash upstarts
and rapidly changing markets</i>”. <o:p></o:p></span></span></p>
<p class="MsoNormal" style="line-height: normal; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">I strongly recommend this part of the book since the authors propose their
insights about what causes the “rise of faux agile” : managers being out of touch
with the reality. This is why Lean is so insistent on “<a href="https://en.wikipedia.org/wiki/Genchi_Genbutsu">Genchi gembutsu</a>” and “<a href="https://kanbanize.com/lean-management/improvement/gemba-walk">gemba walks</a>”,
if you do not walk out to see by yourself and if you manage according to PowerPoints,
the VUCA nature of the world is guaranteed to escape you. The disconnect from
reality can be surprisingly strong : “ <i>At first we thought the executives
must be lying, but we soon discovered they are merely out of touch. They are so
distant from the agile work that they only know what subordinates tell them,
and subordinates tell them only what they want to hear</i>”. The next quote is
so close to situations that I have seen in my previous professional lives that I
applaud the audacity: “<i>Instead of responding to change, program management
offices build complex Gantt charts with bright red dots to flag people who
deviate from plans</i>”. I will conclude this section with another quote from
Martin Fowler : “<i>A team should not only choose its process, but continue to
evolve it</i>”.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<h3 style="line-height: normal; margin-bottom: 0cm; text-align: left;"><b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">2.3<span style="mso-spacerun: yes;"> </span>Agile where it matters</span></span></b></h3>
<p class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;"><br /></span></span></p><div style="text-align: justify;"><span style="font-family: verdana;">This book sends a strong message that you need to understand how agile works to
succeed with your agile transformation, but also to understand when and where
it is needed. Agile is not a panacea that replaces “the errors of waterfall approach”
: “<i>Agile, Agile, Everywhere Some agile gurus pitch the approach as a panacea
that must replace bureaucracy everywhere—in every company, in every business
unit, in every function”</i>. Traditional project management has an amazing
track record of success for very large and complex projects of the past century.
System engineering, detailed specifications, proven specifications, simulation
for validation are still very relevant in this century and many situations ask
for the same level of forecasting and analysis, especially when machines and
protocols are involved with no human insides. When a domain is stable (as
opposed to VUCA), hierarchical decomposition and specialization (the signature
of bureaucracies - “<i>A bureaucracy works when its organizational tasks—what
to deliver and how to deliver it—are clear, stable, and predictable</i>”), waterfall
project management is still appropriate. “<i>The challenge, in short, is not to
replace bureaucracy with agile everywhere but to find the right balance between
the two. Every company must run its businesses. It must be good at operations.
Every company must also change the business, continuously introducing not just
new products and services but new operating methods and procedures</i>”… “<i>More
agile is not always better agile. There is an optimal range of agility for every
business and for every activity within a business”</i>.</span></div><span style="font-family: verdana;"><o:p></o:p></span><p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<h3 style="line-height: normal; margin-bottom: 0cm; text-align: left;"><b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">2.4<span style="mso-spacerun: yes;"> </span>Agile for VUCA</span></span></b></h3>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;"><br /></span></span></p><div style="text-align: justify;"><span style="font-family: verdana;">As told in section 2.1, Agile is an iterative method that constantly validates
and invalidates hypotheses made previously from how the “real world” (the enterprise’s
environment) react: “<i>Agile is founded on empiricism and the scientific
method. It stresses that hypotheses should be tested against real-world results
rather than trusting alluring theories or intuitions</i>”. This is the heart of the “small steps” principle:
“<i>So agile favors small batches, produced in time-limited (less than a month)
work cycles called sprints</i>”. From an <a href="https://en.wikipedia.org/wiki/Optimal_control">optimal control</a> viewpoint,
we look to reach <b>digital homeostasis</b>, that is adapting the internal rate
of change of the enterprise to the environment’s rate of change: “<i>Ideally,
an agile business system would operate at the golden mean between change
deficiency—leading to a static business system that adapts too slowly to
survive—and change excess, creating a chaotic business system that constantly
risks spinning out of control</i>”.</span></div><span style="font-family: verdana;"><o:p></o:p></span><p></p>
<p class="MsoNormal" style="line-height: normal; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">This is not a static or stable problem; it requires a continuous and
adaptive transformation. This is why “faux agile” is such a bad service to companies:
“<i>Agile practitioners also know that solutions, processes, and technology
must continually adapt as customer needs change. They believe that agile teams are
the tools best suited to develop innovative solutions when what to deliver, how
to deliver it, or both, are vague and unpredictable—the typical situation when
addressing customer needs</i>”. Although this book focuses mostly on
innovation, it is worth underlying the deep match between agile as a complex
system optimal control process and the nature of the VUCA world:</span></span></p><p class="MsoNormal" style="line-height: normal; text-align: justify;"></p><ul><li><span style="font-family: verdana; text-indent: -18pt;">Agile matches </span><b style="font-family: verdana; text-indent: -18pt;">Volatile</b><span style="font-family: verdana; text-indent: -18pt;">: iteration and small
steps are here to constantly adapt to volatile (frequent) changes. This is
precisely the point made in the first paragraph about homeostasis.</span></li><li>Agile matches <b style="font-family: verdana; text-indent: -18pt;">Uncertainty</b><span style="font-family: verdana; text-indent: -18pt;">: Not only
changes are frequent but they are hard to forecast. The heart of agility is frequent
observation of your environment. High frequency sampling replaces planning.</span></li><li>Agile matches <b style="font-family: verdana; text-indent: -18pt;">Complexity</b><span style="font-family: verdana; text-indent: -18pt;">:</span><span style="font-family: verdana; text-indent: -18pt;"> </span><span style="font-family: verdana; text-indent: -18pt;">complexity produces “unforeseen consequences”.
Small steps and frequent adjustments are a great tool to master the pains of
complexity. The principle of continuous integration (to rebuild as frequently
as possible, so that if you have made a mistake, you find out before you may
cause too much damage) is a perfect illustration.</span></li><li><span style="font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">Agile matches <b>Ambiguity</b>: agile replaces the
specification of the results (how to achieve the desired goal) by user-centric
user stories that describe outcomes.</span></li></ul><p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<h3 style="line-height: normal; margin-bottom: 0cm; text-align: left;"><b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">2.5<span style="mso-spacerun: yes;"> </span>Agile can scale</span></span></b></h3>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;"><br /></span></span></p><div style="text-align: justify;"><span style="font-family: verdana;">“Doing Agile Right” is a book about the agile transformation for large companies.
It addresses the issue of “<a href="http://informationsystemsbiology.blogspot.com/2020/05/agility-at-scale-and-lean-software.html">agility
at scale</a>”, that is, how does one
adapt agile methods with a large number of teams that needs to collaborate on a
common goal (product, service, etc.). My own experience matches what the authors
report: agility at scale is necessary, it can be achieved – even though it is
clearly a much more difficult task because collaboration and synchronization
require communication – and many companies have found ways to make this work : “<i>Large-scale
agile teams of teams also improve results. Despite concerns that agile was
designed for individual teams and can’t scale effectively, research shows
otherwise</i>”. The book contains a discussion about scaling framework that is
not so different from <a href="http://informationsystemsbiology.blogspot.com/2020/05/agility-at-scale-and-lean-software.html">my
own review</a> (of SAFe, LeSS and Disciplined Agile): “ <i>The latest entrants
include the Spotify Model, Disciplined Agile Delivery (DAD), Large Scale Scrum
(LeSS), Enterprise Scrum, Lean Management, Agile Portfolio Management (APM),
Nexus, and Recipes for Agile Governance in the Enterprise (RAGE). … About 30
percent of companies scaling agile say they use the SAFe framework. It is by
far the most detailed and prescriptive approach”</i>. If you understand that now framework will substitute
from a deep understanding of how agile works, and even more importantly if you understand
that any framework places your company at risk to converting to faux-agile,
then either SAFe or Scrum@Scale (Scrum of Scrums) are interesting choices that bring
value : “<i>SAFe’s strengths include the depth and breadth of its prescriptions,
its training programs, its big-picture view of performance beyond the team
level, its appeal to control-oriented executives, and its ability to coordinate
interdependencies among teams”</i>; “ <i>Scrum@Scale’s strengths include its
ambition to improve the agility of the entire organization; the complete
consistency of the framework with successful Scrum values, principles, and
practices</i>”.</span></div><span style="font-family: verdana;"><o:p></o:p></span><p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><br /></p>
<h3 style="line-height: normal; margin-bottom: 0cm; text-align: left;"><b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">2.6<span style="mso-spacerun: yes;"> </span>Agile Teams … and Squads</span></span></b></h3>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;"><br /></span></span></p><div style="text-align: justify;"><span style="font-family: verdana;">Teams are the foundation unit of the agile approach. Teams must be autonomous,
small, cross-functional and empowered: “<i>To tackle an opportunity, the
organization forms and empowers a small team, usually three to nine people,
most of whom are assigned full time. The team is multidisciplinary”. </i>Empowerment
is critical, the book gives many examples about companies that have undergone
this transformation and tells how to recognize when this is the case: <i>“I
want to walk into an auditorium and ask, ‘Who owns the member’s change-of-address
experience?’ And I want a clear and confident response from a team that owns
that experience, whether a member is calling us, logging into our website on a
laptop, or using our mobile app”. </i>Empowerment means that the role of
manager changes, as is now abundantly clear: “<i>In an agile environment,
leaders take a different approach. They may tell a team what to focus on, but
never how to do it. Figuring out the how is up to team members themselves</i>”.
There is a dual synergy between agile
teams and agile way of working, you need teams to deliver agile value, but agile
ways of working also produces a better work environment for team: “<i>Compared
with traditional management approaches, agile offers a number of major
benefits, all of which have been studied and documented. It increases team productivity
and employee satisfaction. It minimizes the waste inherent in redundant
meetings, repetitive planning, excessive documentation, quality defects, and
low-value product features</i>”.</span></div><p></p>
<p class="MsoNormal" style="line-height: normal; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">The team is multi-disciplinary (cross-functional) with no boundary between “business”
and “technology” (for digital products and services, the boundary is very blurry,
anyhow): “<i>Having the business and technology people work together as one
team is essential to success.”</i> The authors have collected a number of
testimonies about the necessity of merging the business and technology viewpoints:
“<i>Having these groups work separately, even with the best efforts at
alignment, would not have given us anything close to the speed and product
quality we require</i>”. Talent matters very much in agile teams. The following
is one of the critical feedbacks from companies that have embarked on their
agile transformation: “<i>I wish our company had started work on talent
earlier.” We can scarcely count the number of times we have heard that regret
from executives whose companies are launching agile</i>”. <span style="mso-spacerun: yes;"> </span>“Doing Agile Right” is a very practical book:
each chapter ends with a clear summary and a few questions that you should ask
yourself as a maturity assessment of your own practices. For instance, here are
two of the questions that you should ask your agile teams: “<i>How can people
collect more feedback from customers?</i>” and “<i>How can employees minimize
work in process?</i>” <o:p></o:p></span></span></p>
<p class="MsoNormal" style="line-height: normal; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">The term “Squad” has been introduced by Spotify and I have regularly used
it as a short-cut: a squad is a team that fits the agile ways of working: size,
cross-function, autonomous and empowered. This book makes a few references to
the “Spotify model”: “<i>The Spotify model is intuitive and easy to understand;
it works well in Spotify’s engineering department, though it is not a
significant factor in areas such as strategic planning or finance</i>”. I will
conclude this section with a few personal remarks about this agile model. Like many
people I liked the “Spotify model” when it came up 10 years ago because I found
value in:</span></span></p><p class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"></p><ul style="text-align: left;"><li><span style="font-family: verdana;"><span lang="EN-US" style="text-indent: -18pt;"><span style="font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span></span><span lang="EN-US" style="text-indent: -18pt;">The use of “squad” as shorthand for
cross-functional and autonomous.</span></span></li><li><span style="font-family: verdana;"><span style="font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-US" style="text-indent: -18pt;">The squads / tribe (teams of teams) model which was
a good fit for my own challenges.</span></span></li><li><span style="font-family: verdana;">The concept of chapters and guild to add a matrix
dimension for skill capitalization.</span></li></ul><p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">Since then,
there have been many warnings saying that taken literally, the “Spotify model”
does not work. For instance, you may read the strong critics of Jeremiah Lee in
“<a href="https://www.jeremiahlee.com/posts/failed-squad-goals/">Failed Squad
Goals: Spotify does not use the spotify model and neither should you</a>”. I
actually still appreciate the value that I found in the Spotify papers in 2011,
and I have applied successfully some of its ideas. Furthermore, I dislike this kind
of after-the-fact criticism (sure, we understand scaling agile better in 2020 than
we did in 2010 and nobody is forced to take ideas illustrated in a position
paper as rules), but I would definitely agree with the three following warnings
from Jeremiah Lee:</span></span></p><p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"></p><ul style="text-align: left;"><li style="text-align: justify;"><span style="text-indent: -18pt;"><span style="font-family: verdana;">Team autonomy is good but there is such a thing
as “too much autonomy”. Teams must collaborate to build “one system” and
orchestration of squads is a tough (architecture, to start with) topic.</span></span></li><li style="text-align: justify;"><span style="font-family: verdana;">Scaling requires more structure, management and
tools than what was outlined in the first Spotify papers. Tools such as PI planning
are probably SAFe most useful contribution.</span></li><li style="text-align: justify;"><span style="font-family: verdana;">The “Tech lead” role is critical. Software
products need a “chief” (in the Toyota sense) who embody the technology vision
and mindset, as much as they need a product manager.</span></li></ul><p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: verdana;"> </span></o:p></span><span style="font-family: verdana;">You may think
that this debate about taking a paper or a book literally is unsignificant, but
it is not. In a VUCA world, for the very same reasons that make managing throw PowerPoint
impossible (</span><i style="font-family: verdana;"><a href="https://en.wikipedia.org/wiki/Map%E2%80%93territory_relation">the map is not
the territory</a></i><span style="font-family: verdana;">), you should not take a document (this blog post, the book
that I am commenting, the SAFe framework or the Spotify papers) as </span><a href="https://en.wikipedia.org/wiki/Caveat_emptor" style="font-family: verdana;">rigorous guidelines to be
followed</a><span style="font-family: verdana;">.</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<h3 style="line-height: normal; margin-bottom: 0cm; text-align: left;"><b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">2.7<span style="mso-spacerun: yes;"> </span>Customer focus</span></span></b></h3>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;"><br /></span></span></p><div style="text-align: justify;"><span style="font-family: verdana;">An agile approach should always start with the customer: “ <i>So how should
agile teams go about innovating processes? In some ways, process innovation is
much like any other agile innovation. You start with the customer and work
backward to solve their needs in an incremental, iterative way</i> … <i>As a
philosophy, agile focuses intently on customers</i>”. This why user stories a critical
role in the agile approach. The book gives interesting examples, such as Dell, about
how agile companies gather extensive customer input and let the customer be the
best judge on what they want. This is not so easy, as is illustrated by a number
of anecdotes such as this one: “<i>He realized that simply putting together
cross-functional teams and giving them a mission wasn’t enough. He had been
hearing for some time about agile innovation from colleagues inside and outside
the bank, and realized that a broader set of agile practices could make the
teams more effective and better sustain their success. After learning more, he
decided to embark on a customer-focused agile transformation, beginning with
the home mortgage business</i>”. Once
the customer voice is onboarded, the importance of design, from user experience
design to interface design, becomes critical: ”<i>Led by the designers, people
on the team conducted customer research to gather feedback. Team members with
operations and customer service backgrounds then designed new digital and
people-based processes to create the experience that customers wanted, and the
team’s software engineers wrote the code to enable these new processes,
assisted by data engineers and data analysts who ensured the availability and
maintenance of accurate data</i>”.</span></div><span style="font-family: verdana;"><o:p></o:p></span><p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<h3 style="line-height: normal; margin-bottom: 0cm; text-align: left;"><b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">2.8 Lean & Agile, Flows and Metrics</span></span></b></h3>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;"><br /></span></span></p><div style="text-align: justify;"><span style="font-family: verdana;">This book touches many times the topic of Lean & Agile relationships and
the importance of flow, as Mik Kersten did in his great book “<a href="http://organisationarchitecture.blogspot.com/2020/10/conduire-sa-demarche-agile-du-projet-au.html">Project
to Product</a>”. Flow efficiency is a critical concept for large organization,
especially in the context of a large transformation. Without flow efficiency,
local progress may be totally hidden and the agile transformation may stop : “<i>But
the most difficult problem—and one that is likely to be counterintuitive—is
this: even though agile teams may develop innovations better and faster than
ever before, leaders are likely to find that the company’s overall innovation
velocity is not improving. When they investigate that problem, they uncover the
concept of flow efficiency</i>”.</span></div><p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: justify;"><span style="font-family: verdana;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Another
important part of the book discusses metrics, which is a hot topic for agile
methods, and strikingly difficult when one starts an agile transformation in a
controlled-obsessed company (<i>which is both an oxymoron and a statistically
significant occurrence</i>). The authors propose an in-depth analysis based on
five kinds of metrics: inputs, activities, outputs, outcomes and purposes. The
two salient ideas are that, first, companies need to understand the difference
between the five (<a href="https://organisationarchitecture.blogspot.com/2017/05/grec-et-chinois-anticipation-et-agilite.html">as
the Chinese proverb says</a>: <i>one does get a plant to grow faster by pulling
the stem</i>). Second, each team should be left responsible with the way it organizes
input, activity and output metrics to be organized towards continuous improvement,
whereas outcome and purposes metrics are meant to be shared: “<i>Agile teams
set clear goals for themselves. They try to understand what goes well and what
doesn’t go well as they pursue those goals</i>”. This is where reading the
seminal paper <i>“The New New Product Development Game”, </i>referred to in the
introduction, is enlightening. Some metrics should be used as KPI because of
their capacity for alignment and because they define the share strategy. Some
metrics should be used to better understand performance and efficiency and
should be left to the teams since turning them into goals is counterproductive.</span></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">I would end
with a word of caution about one of the best practices proposed by the authors:
“ <i>They Tie Funding to Outcomes”. </i>Although there is a systemic elegance
in the idea to replace budget funding with a adaptative flow that is linked to the
outcome (give more money to agile products when they have achieved the desired
outcome), it is very important to discuss the “timescale” for this piece of advice.
On a long timescale, this is obvious: one should not keep funding a team who
does not deliver. On a shorter timescale, it becomes much more subtle: digital
companies do make bet and invest funding for a while before they see outcome. <span style="mso-spacerun: yes;"> </span>The funding should definitely follow an agile
iterative process of its own, but the frequency should be different from the system
delivery cycles and the logic reflects the principle of “<a href="https://innovationenglish.sites.ku.dk/model/sarasvathy-effectuation/">affordable
loss</a>”.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<h2 style="line-height: normal; margin-bottom: 12pt; text-align: left;"><span style="font-family: verdana;"><b><span lang="EN-US" style="color: black;">3.<span style="mso-spacerun: yes;"> </span></span></b><b><span style="color: black;">Conclusion<o:p></o:p></span></b></span></h2>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 12pt; text-align: justify;"><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">The most important conclusion that one may draw from reading this book is
that agility matters. Agility matters since it helps companies to deliver more
value – better innovations – in a VUCA world. Agility is a tool for constant adaptation
to the environment, when <a href="https://info.thoughtworks.com/rs/199-QDE-291/images/Chapter3.pdf">enterprises
are seen as living organisms</a>. Agility as an active pillar of digital
homeostasis – constant adaptation to the fast rate of change of the digital world
– is a key principle of my own book, “<a href="https://informationsystemsbiology.blogspot.com/2020/11/lean-for-digitaltransformation.html">The
Lean Approach to Digital Transformation</a>”. “Doing Agile Right” is a great
contribution to the better understanding of how agile works in large compagnies.
There is now a broad consensus. I have started with a BCG paper in the
introduction, I will refer to a McKinsey article in this conclusion, “<a href="http://www.mckinsey.com/business-functions/organization/our-insights/the-five-trademarks-of-agile-organizations?cid=eml-web">The
five trademarks of agile organizations</a>”. A quick summary of these five traits
should come as no surprise to you, at this point in your reading : (1) network
of empowered teams, (2) autonomy but a shared “North star” goal – a common
finality that is embedded and embodied (we are still humans) across the
organization, (3) rapid decisions and learning cycles, (4) Passion and mindset –
the focus of “Doing Agile Right”, (5) Next-gen enabling tech.<span style="mso-spacerun: yes;"> </span>The last item is important, because in a digital
world, technology matters. <o:p></o:p></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 12pt; text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: verdana;">“Doing Agile
Right” is not a book about IT, nor is it a book about software or software architecture.
IT is mentioned a couple of times, to point out that IT departments have to be
a part of the solution rather than being part of the problem: “<i>Sad to say,
IT departments and the software they develop are notorious for creating such
difficulties. A common issue for some companies is spending millions on
customized software when standard off-the-shelf solutions would meet their needs</i><span style="color: black;">”. A few pages talk about the importance of modularity and
service-oriented architectures – with the expected reference to microservices: “</span><i>Design
Operations as Modular Capabilities Today’s software systems are typically built
as microservices—small, modular units of functionality with clearly defined
interfaces</i><span style="color: black;">”; “</span><i>A modular arrangement
like this allows an agile team to improve the functioning of the capability
without worrying about interfering with other parts of the organization</i>”.
Although there is nothing wrong with these two statements, they represented a simplified
and somehow naïve view of information systems architecture.<span style="color: black;"> I refer you to the excellent </span>“<span style="color: black;"><a href="https://mitpress.mit.edu/books/designed-digital">Designed
for Digital</a>” book – in addition to my <a href="https://informationsystemsbiology.blogspot.com/2016/05/exponential-information-systems.html">own</a>
- to get deeper insights about this. If you are familiar with the <a href="https://en.wikipedia.org/wiki/Kano_model">Kano diagrams</a>, you may
easily understand the paradoxical importance of IT/software/technology in the
success of digital transformation. Success, as defined by customer satisfaction
and value creation, is much more a matter of mindset and culture than it is a matter
of technology. However, if the technology capabilities are not there, failure is
the most probable outcome. In terms of the Kano model, IT and software capabilities
are a “basic need” of digital transformation.<o:p></o:p></span></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p><br /><p></p>Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com0tag:blogger.com,1999:blog-438942112364524044.post-85443075514638470012020-11-29T06:50:00.002-08:002020-11-29T06:52:17.952-08:00Lean for Digital Transformation<p><span style="font-family: verdana;"> </span></p>
<h2 style="text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: verdana; font-size: large;">1.
Introduction</span></span></h2>
<p align="left" class="MsoNormal" style="margin: 0cm; text-align: left;"><span lang="EN-US" style="font-family: verdana;"></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTM1XFLAwzCL7hxpAYFPMZ_NqDEVEHwrwogTRqj3zUIUuzzWgUFlPkxpbXqRjJcXK1LFeRj4TcqAeJ8lZ1HUTbTLQ63yClSeQ7PIpIqUxEtT8nf_8JzMgTe_Ltyuhk6SeHIXo9G6SPtyg/s2048/ApprocheLeanTransfoDigitale.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="2048" data-original-width="1434" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTM1XFLAwzCL7hxpAYFPMZ_NqDEVEHwrwogTRqj3zUIUuzzWgUFlPkxpbXqRjJcXK1LFeRj4TcqAeJ8lZ1HUTbTLQ63yClSeQ7PIpIqUxEtT8nf_8JzMgTe_Ltyuhk6SeHIXo9G6SPtyg/s320/ApprocheLeanTransfoDigitale.jpg" /></a></div><p align="left" class="MsoNormal" style="margin: 0cm; text-align: left;"><span lang="EN-US" style="font-family: verdana;"><br /></span></p>A few months ago, my last book “<a href="https://www.amazon.com/Lapproche-transformation-digitale-Collection-French-ebook/dp/B08CNKVSKZ/ref=sr_1_1?dchild=1&keywords=L%27approche+lean+de+la+transformation+digitale&qid=1606630174&sr=8-1">The
lean approach to Digital Transformation</a>” got published by <a href="https://www.dunod.com/livres-yves-caseau">Dunod</a>.<span lang="EN-US" style="font-family: verdana;"> </span><span lang="EN-US" style="font-family: verdana;">This book is built in response to paradoxes and
situations of frustration and misunderstanding, which I often observe as a
senior executive. Here are the three examples that I quote in the book
introduction:</span><p></p><p align="left" class="MsoNormal" style="margin: 0cm; text-align: left;"></p><ul style="text-align: left;"><li style="text-align: justify;"><span style="font-family: verdana;">Many
large companies complain about the low return on investment from their digital
service development programs. After a period of strong enthusiasm, when you
look at the business numbers, you realize that usage remains low and that these
projects have generated only a small part of additional revenue. In addition,
quite often, recent and small players - startups - have interfered in this
scope of digital services, to step into the digital relationship with the
customer. “</span><i style="font-family: verdana;">We have the means, the talents, the customers, the brand
awareness… and we are being overtaken by startups</i><span style="font-family: verdana;">”.</span></li><li style="text-align: justify;"><span style="font-family: verdana;">The
speeches on digital transformation, the creation of value through data,
reinvention with artificial intelligence are so numerous and deafening that
there is not a company that has not decided to adopt "exponential
technologies" : cloud, machine learning and data science, artificial
intelligence. Yet adoption of the data-driven ambition is slow, and value
creation does not replicate what is found in leading digital companies, what
Salim Ismail calls "Exponential Organizations." You can find POCs
everywhere (proofs of concept) but the scaling up is long and laborious.</span></li><li style="text-align: justify;"><span style="font-family: verdana;">Enthusiasm
for digital transformation has coincided with a massive adoption of new IT
project development “agile” approaches. Many companies have hoped that this
change of method would bring them closer to the software performance of the
"Web Giants", yet progress in terms of reliability, speed of
deployment, and even more speed of adaptation to the market and to competitors
( what managers associate with "agile") are weak and disappointing.
The creation of new digital platforms has not succeeded to erase the slowness
and the frustrations that many managers express about their IT departments.</span></li></ul><p></p>
<p align="left" class="MsoNormal" style="margin: 0cm; text-align: left;"><span lang="EN-US" style="color: black;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify;"><span lang="EN-US" style="color: black;"><span style="font-family: verdana;">I am mostly writing this blog post because some
of my readers do not read French. Half of the material of the book may probably
be found in this blog, but the other half will have to wait for an English
edition. I am working on it, but the outcome is not clear, while I have
received many requests for a translation. This summary will not replace reading
the book, but at least it should give you a fair idea what this book is about. In
a nutshell, the book develops the three capabilities that are essential for a
successful digital transformation:</span></span></p><p align="left" class="MsoNormal" style="margin: 0cm; text-align: left;"></p><ol style="text-align: left;"><li style="text-align: justify;"><span style="font-family: verdana;">To know how to co-create
digital services with users, whether they are customers or future customers.
This ability combines observation, dialogue, and iterative experimentation. The
approach proposed in this book is based on the </span><a href="https://en.wikipedia.org/wiki/Lean_startup" style="font-family: verdana;">Lean Startup</a><span style="font-family: verdana;"> approach,
according to an extended vision that combines Design Thinking and Growth
Hacking. Companies must become truly "customer-centric", from
observation, listening to co-development.</span></li><li style="text-align: justify;"><span style="font-family: verdana;">To
develop an information system (IS) which is the backbone of the digital
transformation – which I call</span><span style="font-family: verdana;"> </span><span style="font-family: verdana;">“</span><b style="font-family: verdana;">exponential
information system</b><span style="font-family: verdana;">” in this book to designate an open IS (in particular on
its borders), capable of interfacing and combining with external services,
positioned as a player in software ecosystems and built for processing scalable
and dynamic data flows.</span></li><li style="text-align: justify;"><span style="font-family: verdana;">To
build software “micro-factories” that produce service platforms, which I call
“Lean software factories”. This “software factory” concept covers the
integration of agile methods, tooling and continuous integration and deployment
practices, a customer-oriented product approach and a platform approach based
on modularity, as well as API-based architecture and openness to external
stakeholders.</span></li></ol><p></p>
<p align="left" class="MsoNormal" style="margin: 0cm; text-align: left;"><span lang="EN-US" style="color: black;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm; text-align: justify;"><span lang="EN-US" style="color: black;"><span style="font-family: verdana;">The other
reason for writing this blog post is to address <b>the lean foundations that
give the title to the book</b>. Part of it is rather obvious: the book is
organized, as its subtitle says, <i>from customer to code and from code to customer</i>.
The first direction is covered by the <a href="https://informationsystemsbiology.blogspot.com/2017/09/hacking-growth-when-lean-management.html">Lean
Startup approach</a> – though my own filter of applying Lean Startup in a large
company – while the second direction matches the <a href="https://informationsystemsbiology.blogspot.com/2012/07/lean-software-factory.html">Lean
Software factory</a>. <span style="mso-spacerun: yes;"> </span>But the influence
of <b>lean thinking</b> is much deeper and is better captured by the “<i>love
of customer</i>” and the “<i>love of code</i>” that this book tries to
advocate. Thus, this post organization is quite simple. Section 2 provides a summary
of the book content. Section 3 is a short essay about the deep relevance of
lean to succeed with your digital transformation.<o:p></o:p></span></span></p>
<p class="Textecourant1er"><span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<h2 style="text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: verdana; font-size: large;">2.
Book Outline</span></span></h2>
<p class="Textecourant1er" style="text-align: justify;"><span style="font-family: verdana;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">This book
is organized in three parts</span></b><span lang="EN-US">. The first part
deals with </span><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">digital
transformation</span></b><span lang="EN-US">, that is, the
transformation of the company in the face of the acceleration of the digital
revolution. This part lays the foundations for the rest of the book, since it
describes the objectives of this transformation: continuous adaptation,
innovation, and better intimacy with customers. It deepens the analysis of
Designed for Digital and extends it with a complete presentation of the Lean
Startup approach to building digital services.</span></span></p>
<p class="Textecourant1er" style="text-align: justify;"><span style="font-family: verdana;"><span lang="EN-US">The second part
deals with </span><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">information
systems</span></b><span lang="EN-US"> and the central role they play with digital
transformation. Software "is eating the world", in the words of Marc
Andreesen, and digital transformation affects all activities and businesses of
the company, beyond the more restricted perimeter of information systems. But
the information system is the backbone on which new software activities are
grafted. It must carry an ambition of openness, agility, and continuous
modernization, necessary for the digital transformation.</span></span></p>
<p class="Textecourant1er"></p><div style="text-align: justify;"><span lang="EN-US" style="font-family: verdana;">The third part
describes </span><b style="font-family: verdana;"><span lang="EN-US">software
factory</span></b><span lang="EN-US" style="font-family: verdana;"> and </span><b style="font-family: verdana;"><span lang="EN-US">platform</span></b><span lang="EN-US" style="font-family: verdana;"> principles. It
focuses on understanding how to use best practices in software development,
from tooling to automation, agile methods to lean practices, to transform
software development. The concept of the software factory also applies, but in
a different way, to the heart of the information system and to its borders, to
produce the "digital platforms" mentioned in Designed for digital.</span></div><span style="font-family: verdana;"><span lang="EN-US"><br /><o:p></o:p></span></span><p></p>
<h3 style="text-align: left;"><span style="font-family: verdana; font-size: medium;"><a name="_Toc31539490"><span lang="EN-US">2.1</span></a><span lang="EN-US"> Digital Transformation</span></span></h3>
<p class="Textecourant" style="text-indent: 0cm;"><span lang="EN-US"><span style="font-family: verdana;">The first
chapter is entitled "<b>Why a digital transformation?</b>". Our
starting point is the radical change in the relationship between the enterprise
and its customers in the digital world. In a world of abundance, the company
must build conversations with its customers and develop an intimacy that
legitimizes the relevance of the solutions it offers. The digital world is made
up of ecosystems and platforms that demand more openness and cooperation with
partners, letting the customer become the architect of her experiences. The
company is therefore approaching its digital transformation to better meet the
expectations of its customers and to better produce the products and services
that its customers expect. Digital transformation affects the entire value
chain, from R&D and solution design, to the marketing and operation of
these solutions, including the production of hardware or software components.
The digital revolution - the ubiquity of connectivity, the abundance of data
and the exponential power of processing - is driving itself into design and
manufacturing, for example through artificial intelligence applications.<o:p></o:p></span></span></p>
<p class="Textecourant" style="text-indent: 0cm;"><span lang="EN-US"><span style="font-family: verdana;">The
second chapter, "<b>Homeostasis: Continuous Adaptation to Change</b>",
deals with the profound change in the organization of the company which is
necessary to adapt to the continuous and accelerated change that characterizes
the digital world. The company must become an "exponential
organization", a network of autonomous and reactive teams, organized
around a common objective, capable of absorbing and benefiting from the
continuous flow of technological innovations linked to the digital domain, from
connected objects to machine learning. The digital transformation of the
company consists in developing, over the long term, the potential of the
situation - the digital capacities - which will allow it to act quickly and
agile in the face of an opportunity. Today's digital world is complex and
uncertain, the agility of responding to its opportunities requires "letting
go" in action. The field of strategy shifts from forecasting actions to
developing capacities. The first skill of a digital company is its ability to
continuously learn from its environment, technology, and customers. The role of
managers is changing, as the voice of the customer and that of technology take
more space, and this change deserves to be supported.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="font-family: verdana;">The third chapter, "<b>Lean-Startup: lean applied to digital
innovation</b>", is devoted to the first of the three capabilities, the
co-construction of digital solutions with its users. The <i>Lean Startup</i>
approach can be broken down into three phases. The first, which corresponds to
the application of <i>Design Thinking</i>, consists of observing, then
formulating and testing hypotheses about the needs, latent or not, of future
users. This step, which is the most important, results in formulating a promise
to the customer, that of responding to a real need. The second step iteratively
selects the different elements of solutions that contribute to solving the
problem, in the form of a minimal product. This minimal product, the MVP, is
updated frequently and iteratively, based on explicit and implicit customer
feedback. The MVP is instrumented to make it possible to discover the uses and
validate, or invalidate, the elements of the solution. The third step, often
referred to as "<i>Growth Hacking</i>", continues this iterative
tuning to make the experience simpler, compelling, and viral. The digital
product becomes a support element of its own marketing and commercialization. The
development of virality is based on building a community of enthusiastic users
who become ambassadors of this new experience.<o:p></o:p></span></span></p>
<h3><span style="font-family: verdana;"><a name="_Toc31539491"><span lang="EN-US"><span style="font-size: medium;">2.2 </span></span></a><span lang="EN-US"><span style="font-size: medium;">Exponential
Information Systems</span><span style="font-size: small;"><o:p></o:p></span></span></span></h3>
<p class="Textecourant1er" style="text-align: justify;"><span lang="EN-US"><span style="font-family: verdana;">Chapter 4 is entitled "<b>The
Information System as a Foundation for Digital Transformation</b>". Its
theme is the construction of an IS capable of frequently renewing itself and,
therefore, of being able to use the continuous flow of software progress, such as
artificial intelligence and machine learning which will be the subject of the
following chapter. There is a clear parallel with "exponential
organizations" and we find similar ideas in the architecture of the
exponential information system: importance of interfaces, openness to the
outside, modularity. The information system is the backbone of the management
of the company and the development of digital platforms that serve as interfaces
with the outside world, whether they are customers or partners. The digital
information system must therefore be responsive and agile, while guaranteeing a
flawless quality of service that is expected by customers in today's digital
world. A constantly evolving information system that absorbs new functions must
be designed, and above all maintained, to limit its complexity. This chapter
deals with design techniques and management methods to limit technical debt,
guarantee resilience, and optimize quality of service.<o:p></o:p></span></span></p>
<p class="Textecourant1er" style="text-align: justify;"><span lang="EN-US"><o:p><span style="font-family: verdana;"> </span></o:p></span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsHFfC34b2JHqXoLM455m9UEIKkkxAi9bTUjgaJTq9CVm10SALlIkahqwYmUqqq6asaageWwLjLscXKyDBYxesD_m_TEruxqwmFSTJrmKjPb_VP7yBSThzKKrTRcTatQ5iEwr1FhOmeog/s1280/ExponentialISschema.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsHFfC34b2JHqXoLM455m9UEIKkkxAi9bTUjgaJTq9CVm10SALlIkahqwYmUqqq6asaageWwLjLscXKyDBYxesD_m_TEruxqwmFSTJrmKjPb_VP7yBSThzKKrTRcTatQ5iEwr1FhOmeog/w640-h360/ExponentialISschema.jpg" width="640" /></a></span></div><span style="font-family: verdana;"><br /></span><p></p>
<p class="Textecourant1er" style="text-align: justify;"><span lang="EN-US"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<p class="Textecourant" style="text-align: justify; text-indent: 0cm;"><span lang="EN-US"><span style="font-family: verdana;">The next
chapter, “<b>Taking advantage of exponential technologies</b>”, is devoted to
artificial intelligence in the broad sense, a family of computational methods
and techniques that give software significant capacities, from the processing
of knowledge to the automation of data-driven complex tasks. The digital
revolution - the abundance of data, the ubiquity of connectivity and the
dramatic increase in computing power - has led to spectacular advances in
artificial intelligence techniques. Chapter 5 deals with the implementation of
these exponential technologies in the enterprise, and the conditions for
success from the point of view of host technology systems, such as the
information system. This implementation relies primarily on the architecture and
data infrastructure of the enterprise. Developing solutions that take advantage
of advances in artificial intelligence is a lifelong learning loop, which
simultaneously improves data, algorithms, and usage. The role of human
operators in the development of this virtuous cycle is fundamental, artificial
intelligence is a skill to be developed, not a magic technology that should be acquired.<o:p></o:p></span></span></p>
<p class="Textecourant" style="text-align: justify; text-indent: 0cm;"><span lang="EN-US"><span style="font-family: verdana;">Chapter 6
focuses on the systemic conditions for building an exponential information
system and is entitled "<b>Governance, architecture and situational
potential</b>". The first section looks at the conditions, in terms of
culture and organization, for <i>lean</i> and <i>agile</i> software development
practices to develop harmoniously. The lean approach strengthens agile
practices to better address the complexity and the size of information systems.
The two keywords of the necessary governance are flexibility and responsiveness,
especially in decision-making. This approach also applies to system
architecture, to combine long-term durability, performance, and agility of
systems. The role of architects evolves with the implementation of lean and
agile approaches, but the importance of service-oriented architecture (SOA),
modularity and reusability of APIs only intensifies in the context of digital
transformation. Furthermore, a system that constantly evolves through
incremental approaches runs the risk of continual increase in complexity.
Governance must be established to master complexity in order to produce
sustainable development of the company's digital capabilities<o:p></o:p></span></span></p>
<h3 style="text-align: left;"><span style="font-family: verdana;"><a name="_Toc31539492"><span lang="EN-US"><span style="font-size: medium;">2.3 Software Platforms and Digital Services
Factories</span></span></a><span lang="EN-US" style="font-size: medium;"><o:p></o:p></span></span></h3>
<p class="MsoNormal"><span lang="EN-US"><span style="font-family: verdana;">Chapter 7, “<b>DevOps and Software Factories</b>,” addresses the third capability
that is essential for successful digital transformation: to organize software
micro-factories using the DevOps approach. This chapter develops an integrated
vision called “<i>lean software factory</i>” in successive stages. The first
step is to automate the software product development process, to achieve
continuous integration and deployment (CICD). The second step is to place this
CICD process in a product loop organized around cross-functional teams that
combine development and operation responsibilities, hence the name DevOps. The
DevOps approach is both a collaborative approach (development improves the
automation of operations, and continuous feedback from operations improves
development), a technological approach (using tools that treat infrastructure
as a scriptable resource in order to increase automation) and a “product”
approach (unlike an IT project, there is not a beginning and an end, but a
constant cycle of delivery and improvement). Adding lean practices to the agile
approach takes on its full meaning through the product approach. The Lean
Software Factory is a learning factory, which develops both the love of the
customer and the love of code that we mentioned in the introduction.</span></span></p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFmcRTpBK1uw2C0xNv6_gXtzoo2GdXimwrKCyBWY0lZTbpLEPqAtrk4DurpljMV4VsnnANKPUshAKIUf7_Hdj_w0C23QH85724RiKBM5D7ZGTbnTJTRNq4f-QP-Xeko46MUL1v3BKVaZk/s1280/LeanSoftwareFactories2020.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFmcRTpBK1uw2C0xNv6_gXtzoo2GdXimwrKCyBWY0lZTbpLEPqAtrk4DurpljMV4VsnnANKPUshAKIUf7_Hdj_w0C23QH85724RiKBM5D7ZGTbnTJTRNq4f-QP-Xeko46MUL1v3BKVaZk/w640-h360/LeanSoftwareFactories2020.jpg" width="640" /></a></div><p class="MsoNormal"><br /></p>
<p class="Textecourant" style="text-align: justify; text-indent: 0cm;"><span lang="EN-US"><span style="font-family: verdana;">The next
chapter is entitled "<b>Stable Platforms for Changing Services</b>".
It deepens the contribution of the platform concept to digital transformation,
as highlighted in <i>Designed for Digital</i>. The platform is both an
extraordinary value accelerator, thanks to the power of network effects, and an
intermediation tool with an open ecosystem of partners. Knowing how to build
digital platforms is therefore a necessity to achieve the ambitions of openness
and of leveraging the capacities of digital ecosystems. The platform approach
can also be developed more locally, as a "product platform", to
accomplish some of the objectives described in Chapter 4: to increase
modularity, reuse, and the development of internal user communities. This
chapter highlights the adequacy between the construction method developed in
the previous chapter, (<i>software micro-factories</i>) and the operating
requirements of a digital platform. The third part is, therefore, an
illustration of the principle of this book: the skills and the manufacturing
methods determine the speed and the quality of the execution, which are the
essential conditions for the success of the strategy. This applies both to the
entire digital transformation or to the construction of a single digital
platform, materialized by the emergence of its ecosystem of partners.</span></span></p><p class="Textecourant" style="text-align: justify; text-indent: 0cm;"><span lang="EN-US"><span style="font-family: verdana;"><br /></span></span></p>
<h2 style="text-align: justify;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: verdana; font-size: large;">3.
Why is Lean Relevant to Digital</span></span></h2>
<h3 style="text-align: left;"><span lang="EN-US"><span style="font-family: verdana; font-size: small;"><br /></span></span></h3><h3 style="text-align: left;"><span lang="EN-US"><span style="font-family: verdana;"><span style="font-size: medium;">3.1 Lean
Roots: Continuous Learning and Continuous Adaptation</span><span style="font-size: small;"><o:p></o:p></span></span></span></h3>
<p class="Textecourant" style="text-indent: 0cm;"><span lang="EN-US"><span style="font-family: verdana;">The <b>lean
roots</b> are the principles that are common to the four components of the book
: new organization patterns (Enterprise 3.0) to match the VUCA world and its
digital transformation; the Lean Startup approach to co-creating digital
services; exponential information systems; and Lean software <span style="mso-spacerun: yes;"> </span>factories. The four following principles are a
common thread for the book, which appears in every page: <o:p></o:p></span></span></p><p class="Textecourant" style="text-indent: 0cm;"></p><ul style="text-align: left;"><li><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">The VUCA nature of the world requires <b>continuous
adaptation</b> to the environment. Lean organization principles, from Kanban to
just-in-time (pull vs push), are designed to create a flow of value creation
that adapts continuously to what the environment expects.</span></li><li><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">In this complex world, the first differentiation
that companies must build is the collective skills and knowledge that comes from
<b>continuous learning</b>. Especially critical
in a VUCA word is the “meta-skills” (capability) to learn from misfits or
errors. This is precisely the antifragile behavior that was mentioned earlier: successful
companies in a VUCA world are not designed, they grow from the collective
knowledge accumulated when the enterprise reacts to unforeseen situations. The
famous “<a href="https://en.wikipedia.org/wiki/A3_problem_solving">A3</a>” of
the lean practices is a cornerstone of the antifragile continuous learning
behavior. </span></li><li><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">“<b>Collective learning</b>” is critical :
although most learning is actually individual, in a complex world, we need both
to learn as a team from each other (from lean practices such as kaizen, or the team
crafting iteratively its work standard) and to learn collective behaviors that
make collaboration more effective. </span></li><li><b style="font-family: verdana; text-indent: -18pt;"><span lang="EN-US">Innovation is everyone’s job </span></b><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">: everyone
is called to improve and innovate, because it would be a waste not to benefits
from every single brain in the company but mostly because innovation opportunities
are everywhere. The only way to adapt fast enough in a VUCA world is to make
innovation (smart adaptation) a fully distributed process. Toyota’s famous motto
- “to build people before they build cars” – is even more relevant in the digital
world.</span></li></ul><p></p>
<h3 style="text-align: left;"><span lang="EN-US"><span style="font-family: verdana;"><span style="font-size: medium;">3.2 Lean Mindset:
Focus on Customer</span><span style="font-size: small;"><o:p></o:p></span></span></span></h3>
<p class="Textecourant" style="text-align: justify; text-indent: 0cm;"><span lang="EN-US"><span style="font-family: verdana;">The book’s
subtitle is “<i>From customer to code, from code to customer</i>”. Customer-centricity
is the most salient trait of companies that succeed in the digital world.
Expressed with a short paragraph, “customer-centricity” may sound shallow or
weak, so I will only focus on four traits of customer-centric companies : <o:p></o:p></span></span></p><p class="Textecourant" style="text-indent: 0cm;"></p><ul style="text-align: left;"><li style="text-align: justify;"><b style="font-family: verdana; text-indent: -18pt;"><span lang="EN-US">Customer satisfaction</span></b><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;"> is the
polar star of the company’s strategy and goals; hence it may be used as to
unify conflicting goals when different teams work together to fix a problem. You
may remember from the <a href="http://www.scholarpedia.org/article/Theory_of_Constraints">Theory of
Constraints</a> that when multiple goals create a conflict, one should at
higher level goals until a common factor is found. Focusing on the user, and more specifically the
user experience (a more global view of customer satisfaction) help teams to
resolve their conflicts when their “ways of working and designing” do not
match.</span></li><li style="text-align: justify;"><b style="font-family: verdana; text-indent: -18pt;"><span lang="EN-US">Listening</span></b><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;"> to the
user is critical, it must happen frequently in a VUCA world (this is the root
of agile methods). A large part of the book deals with this listening, since
the digital world offers many ways of listening, even though the most classical
form is still required.</span></li><li style="text-align: justify;"><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">The <b>voice of customer</b> must be
shared and made available to all workers. Once more, this is especially
important in the world of digital services. Everyone in the product team must
have access to the customer feedback loop.</span></li><li style="text-align: justify;"><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">« <b>Love of the product</b> » feeds
customer-centricity. This may sound counter-intuitive since focusing on the
product and the consumer are often seen as different directions. However, the
lean way of thinking tells that you must love the product that you build to
fully satisfy your customer. This is true in general, as is expressed by many
testimonies about the love of the product from Toyota teams, but is especially
relevant for digital (software) products that are both “knowledge accumulators”
and “customer interfaces”.</span></li></ul><p></p>
<h3 style="text-align: left;"><span lang="EN-US"><span style="font-family: verdana;"><span style="font-size: medium;">3.3 Lean System
Thinking </span><span style="font-size: small;"><o:p></o:p></span></span></span></h3>
<p class="Textecourant" style="text-align: justify; text-indent: 0cm;"><span lang="EN-US"><span style="font-family: verdana;">The lean approach
is strongly related to system thinking. A key tenet of lean is to help people understand
the system that they are contributing to. It includes long-term thinking, which
is why lean brings additional value to agile methods for software development.
Without going into the details that are covered in the book, I want to emphasize:
<o:p></o:p></span></span></p><p class="Textecourant" style="text-indent: 0cm;"></p><ul style="text-align: left;"><li style="text-align: justify;"><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">The importance of <b>visual management</b>
to develop a shared system understanding. Visual management in the lean practice
is not only for managing backlogs and kanbans, but it must also be used to
visualize everything that is complex, from problems to architecture.</span></li><li style="text-align: justify;"><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">System thinking, which is necessary to adapt
the system (in the digital world, this translates into <a href="https://www.sciencedirect.com/topics/computer-science/continuous-architecture">continuous
architecture</a>). Complex system thinking focuses on <b>delays</b> (a major
source of mismanagement – think of the COVID crisis) or <b>reinforcement loops</b>.
The book is full of practices that are mostly the management of negative loops (technical
debt, weight of software) or positive ones (developing today’s skills for
tomorrow’s agility).</span></li><li style="text-align: justify;"><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">The necessity to keep time for regular <b>clean-ups</b>,
exemplified by lean 5S practices. Lean advocates for clarity by removing what
is not necessary, as part of regular work practices. The applicability to
software development is just obvious.</span></li><li style="text-align: justify;"><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">The importance of keeping “<b>buffers</b>”
to operate below capacity level. This is one of the most important <a href="https://www.amazon.com/Principles-Product-Development-Flow-Generation/dp/1935401009">lean
systemic principle</a> – a direct consequence of queuing theory. Activity chains
are more agile, adaptative and resilient when the utilization rate is kept under
control and <a href="https://www.amazon.com/Making-Work-Visible-Exposing-Optimize/dp/1942788150">far
from the “full occupancy” mode</a>.</span></li></ul><p></p>
<p class="Textecourant" style="text-align: justify; text-indent: 0cm;"><span lang="EN-US"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<h3><span lang="EN-US"><span style="font-family: verdana;"><span style="font-size: medium;">3.4 Lean Software
Development </span><span style="font-size: small;"><o:p></o:p></span></span></span></h3>
<p class="Textecourant" style="text-indent: 0cm;"><span lang="EN-US"><span style="font-family: verdana;">As I have
told many times in this blog, the concept of “lean software factory” has been strongly
influenced by “lean software development” references, such as <a href="https://www.amazon.com/Implementing-Lean-Software-Development-Addison-Wesley-ebook/dp/B00HNB3VQE">Mary
and Tom Poppendieck’s books</a>. Here I will pick four major traits, where I
see the influence of “<a href="http://informationsystemsbiology.blogspot.com/2012/12/lean-scrum-agile-and-extreme-programming.html">lean
thinking</a>” in software, that I have chosen to develop in the book : <o:p></o:p></span></span></p><p class="Textecourant" style="text-indent: 0cm;"></p><ul style="text-align: left;"><li><b style="font-family: verdana; text-indent: -18pt;"><span lang="EN-US">Software craftmanship</span></b><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">, which
is the importance of the right way of working, the elegance of the solution,
the insights drawn from experience, the know-how from the community, applied to
software. The idea that there exists a “better way of doing things” is
expressed with the lean concept of the “work standard”. This is not a “best practice”,
it is the continuous and relentless pursuit for excellence. Writing software for the digital world
requires skills and knowledge, which must be valued, recognized and developed
(the reverse order is on purpose).</span></li><li><b style="font-family: verdana; text-indent: -18pt;"><span lang="EN-US">Right on the first time</span></b><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;"> is the
proper way to develop software in a digital world because the complexity and
the expected rate of delivery make it too hard and expensive to fix errors
later. Part of this focus on software quality is addressed through craftmanship,
but it also means that we want to detect errors as early as possible – a TQM
principle made a lean principle. Hence lean software development heavily relies
on TDD (test-driven development) and CICD (continuous integration and
continuous development). Continuous integration may be seen as applying lean
principles to reduce the “integration debt” (keeping future possible
integration issues without seeing them).</span></li><li><b style="font-family: verdana; text-indent: -18pt;"><span lang="EN-US">Constantly care for and improve your work environment</span></b><span lang="EN-US" style="text-indent: -18pt;"><span style="font-family: verdana;"> so that
you can work more efficiently. The lean practice for this is « <a href="https://en.wikipedia.org/wiki/5S_(methodology)">5S</a> » and it
applies to software development as well. </span></span><span style="font-family: verdana;">“Sort” in the context of software development means to clean-up dead code and
to re-factor; “Systematize” tells about modular organization, from classes to
packages to microservices. It also represents the application of coding
standards and the organization of tests in a test-driven approach. “Shine” is about
making one’s code more readable and elegant, through coding standards, code
reviews, improving the scores from qualimetry tests. “Standardize”, in the lean
sense, is the continuous improvement of the team way of working.<span style="text-indent: -18pt;"> </span><span style="text-indent: -18pt;">“Sustain” is about making these “standard”
practices a regular behavior for the team, so that long-term benefits may be
reached.</span></span></li><li><b style="font-family: verdana; text-indent: -18pt;"><span lang="EN-US">Code that is required to be changed regularly
and shared for collaboration needs to be loved</span></b><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">. The use
of “love” here emphasizes the subjectivity of what “elegant” or “good” code is,
but the business benefits are very tangible, from agility (ease of
modification) and software quality (fewer bugs) to cost effectiveness (code that
is easier to share, hence to reuse). One could say that the love a complex task
well done is part of the lean ambition towards excellence (for anyone in the
company), but this is intensified by the collaborative and ever-changing nature
of software in a VUCA world. Agile methods won’t help if you own an ugly code
repository full of technical debt.</span></li></ul><p></p>
<p class="Textecourant" style="text-indent: 0cm;"><span lang="EN-US"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<h2 style="text-align: justify;"><span lang="EN-US"><span style="font-family: verdana; font-size: large;">4. Conclusion</span></span></h2>
<p class="Textecourant" style="text-align: justify; text-indent: 0cm;"><span lang="EN-US"><span style="font-family: verdana;">To
conclude this post, I would like to emphasize three key ideas from the “<a href="https://www.amazon.com/Lapproche-transformation-digitale-Collection-French-ebook/dp/B08CNKVSKZ/ref=sr_1_1?dchild=1&keywords=L%27approche+lean+de+la+transformation+digitale&qid=1606630174&sr=8-1">Lean
Approach to Digital Transformation</a>” book: <o:p></o:p></span></span></p><p class="Textecourant" style="text-indent: 0cm;"></p><ul style="text-align: left;"><li style="text-align: justify;"><span style="font-family: verdana;"><span lang="EN-US" style="text-indent: -18pt;">Exponential Information Systems play a key
role to support </span>the digital transformation of companies,
they act as a backbone for the growth of digital services. This statement is shared
with many recent excellent books such as “<a href="http://organisationarchitecture.blogspot.com/2020/02/architecture-dentreprise-pour-reussir.html" style="text-indent: -18pt;">Designed
for Digital – How to architect your business for sustained success</a><span style="text-indent: -18pt;">” or “</span><a href="https://www.thedigitaltransformersdilemma.com/" style="text-indent: -18pt;">The Digital Transformer
Dilemma</a><span style="text-indent: -18pt;">”.</span></span></li><li style="text-align: justify;"><span lang="EN-US" style="text-indent: -18pt;"><span style="font-family: verdana;">Systems Engineering has never been so exciting,
the constant flow of technology innovation and practices brought by the “digital
leaders” creates a new playground. The “Exponential revolution” described in “<a href="https://www.amazon.com/Exponential-Organizations-organizations-better-cheaper/dp/1626814236">Exponential
Organizations</a>” is happening now, which creates multiple opportunities that
companies may leverage if they adopt the tools and methods from the best software
companies, as Mik Kersten points out in the introduction of “<a href="http://organisationarchitecture.blogspot.com/2020/10/conduire-sa-demarche-agile-du-projet-au.html">Project
to Product</a>”.</span></span></li><li style="text-align: justify;"><span lang="EN-US" style="text-indent: -18pt;"><span style="font-family: verdana;">“<i>From customer to code, from code to
customer</i>”: These are the two capabilities that companies must develop to
succeed their digital transformation. This transformation is “grown, not
designed” to <a href="https://informationsystemsbiology.blogspot.com/2006/11/welcome-message.html">paraphrase
Kevin Kelly</a>. Exponential Information
Systems grow from a <i>lean</i> mindset and culture, geared towards customer
satisfaction and software craftsmanship.</span></span></li></ul><p></p>
<span style="font-family: verdana;"><span lang="EN-US"><br clear="all" style="mso-special-character: line-break; page-break-before: always;" />
</span>
</span><p class="Textecourant" style="text-indent: 0cm;"><span lang="EN-US"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p><span style="font-family: verdana;"> </span></o:p></span></p>Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com2tag:blogger.com,1999:blog-438942112364524044.post-57130878154379723252020-08-21T00:12:00.000-07:002020-08-21T00:12:24.330-07:00Exponential Information Systems for a Data-Driven World<p> </p><p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: verdana;">Today’s
post is very short because I decided last month to publish this <a href="https://blogit.michelin.io/exponential-information-systems-for-a-data-driven-world/">article</a>
under our new <span style="mso-spacerun: yes;"> </span><a href="https://blogit.michelin.io/">Michelin public blog about IT</a>. <span style="mso-spacerun: yes;"> </span>This blog post talks about <a href="http://informationsystemsbiology.blogspot.com/2016/05/exponential-information-systems.html">Exponential
Information Systems</a> and Data-Driven Enterprise Architecture. <span style="mso-spacerun: yes;"> </span>The pitch about Data Strategy, Architecture
and Infrastructure is very similar to what I said in the “<a href="https://www.snowflake.com/rise-of-the-data-cloud-podcast/#:~:text=Rise%20of%20the%20Data%20Cloud%20is%20an%20original%20podcast%20hosted,innovation%20and%20disrupt%20their%20industries.">Rise
of the Data Cloud</a>” podcast episode that was <a href="https://www.snowflake.com/podcast/yves-caseau/">just released</a>. <o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: verdana;">To give you
a preview, here are some of the ideas that I develop in this <a href="https://blogit.michelin.io/exponential-information-systems-for-a-data-driven-world/">article</a>:</span></span></p><p class="MsoNormal"></p><ul style="text-align: left;"><li><span style="text-indent: -18pt;"><span style="font-family: verdana;">A
target data infrastructure must follow the lambda architecture principles and support
both data lakes for cold analytics and event-driven data flows for hot analytics.</span></span></li><li><span style="font-family: verdana;">Hot
analytics is more resilient and agile, thus better suited to crisis situations
such as COVID, when models trained with past data are no longer relevant.</span></li><li><span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">AI
and Data Engineering should be embedded into system thinking : there are no
obvious quick wins (at least they are very rare) while most successes are built
on reinforcing loops. Data, algorithms, usage and business value are
co-developed simultaneously and continuously.</span></li><li><span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-US" style="font-family: verdana; text-indent: -18pt;">Advanced
AI is most often hybrid AI; the most powerful integration paradigm is the “system
of intelligent systems” approach.</span></li></ul><p></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: verdana;">I encourage
you to visit our <a href="https://blogit.michelin.io/">Michelin IT blog</a> regularly, we see it as a platform for
continuous learning, to share ideas and a passion for building the next
generation of software systems.</span><o:p></o:p></span></p>Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com0tag:blogger.com,1999:blog-438942112364524044.post-66959140666897125002020-05-03T01:24:00.002-07:002020-05-03T01:24:39.732-07:00Agility at Scale and Lean Software Development<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; vertical-align: baseline;">
</div>
<h2 style="text-align: left;">
<b><span lang="EN-US" style="color: black;"><span style="font-family: Verdana, sans-serif;">1. Introduction</span></span></b></h2>
<b><span lang="EN-US" style="color: black;"><span style="font-family: Verdana, sans-serif;">
<!--[if !supportLineBreakNewLine]--><br style="mso-special-character: line-break;" />
<!--[endif]--><o:p></o:p></span></span></b><br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">I have just finished writing a
new book about <b>the lean approach to digital transformation</b>, where lean
and agile software development methods receive a fair amount of attention. This
has led me to read about SAFe and revisit my opinions about the best ways to
perform Agile at scale. SAFe (</span><a href="https://en.wikipedia.org/wiki/Scaled_agile_framework"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Scaled Agile Framework</span></a><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">) has become the de facto standards for agile at scale, but there exists a
large amount of controversy and debates about SAFe. On the one hand, SAFe
addresses a real complex question, which is how to scale the Agile Manifesto’s
principles, with software development programs of more than 100 or 1000 team
members. SAFe has been around for more than ten years, with constant enrichment
and improvement. </span><a href="https://blog.maxos.ai/how-safe-agile-kills-innovation-514673f6855e"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Most large
companies that are not software product companies</span></a><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"> are using either
SAFe or something similar for their Agile practices. On the other hand, there
has been a lot of warnings and </span><a href="https://kenschwaber.wordpress.com/2013/08/06/unsafe-at-any-speed/"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">quite
negative opinions</span></a><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">, such as the famous quote
from Martin Fowler who sees SAFe as </span><a href="https://www.slideshare.net/BerndSchiffer/comparing-ways-to-scale-agile-at-agile-product-and-project-manager-meetup/9-Shitty_Agile_For_Enterprises_Martin"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">a poor and
dysfunctional version of Agile</span></a><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"> for companies who do not have
an agile mindset. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">I do not have much first-hand
experience with SAFe (and keep in mind that SAFe is fast evolving so early
opinions need to get revised), but I have been trying to address agile at scale
for close to two decades. Like most in the “large-companies agile community”, I
have looked at </span><a href="https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Spotify</span></a><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"> for sources of inspiration. Over the years, I have experimented with
“scrums of scrums”, “multi-squad planning meetings”, “chapters and guilds”,
“backmaps” (hybrid between roadmaps and backlogs) and many tools or rites that
could be easily replaced today with those from SAFe.<span style="mso-spacerun: yes;"> </span>When I read comments from Agilists that there
is no reason to scale, I find myself clearly in the “SAFe camp”: large
companies do manage large programs, large information systems or large
products, with many external stakeholders, that make all the questions found in
the SAFe introductory books very relevant. At the same time, I have evolved my
vision of </span><a href="http://organisationarchitecture.blogspot.com/2018/11/comment-promouvoir-linformatique-lean.html"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">agile
development with lean roots</span></a><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"> over many years of practice
and observations, but I have a hard time qualifying the overall SAFe philosophy
of software development as “Lean Agile”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">SAFe is a development
framework which, in my opinion and those expressed in “<a href="https://www.smharter.com/blog/safe-a-collection-of-comments-from-leading-experts/">SAFe
: A Collection of Comments from Leading Experts</a>”, fights the <a href="https://en.wikipedia.org/wiki/Volatility,_uncertainty,_complexity_and_ambiguity">VUCA</a>
nature of the world and proposes a very structured, detailed and rigorous
method to deliver value through software development. The need to constantly
learn from the (user) environment and to adapt is here, but it is nicely “boxed
into steps”. There are iterations everywhere, but they fit squarely into a big sequential
and hierarchical design. SAFe claims inspiration from almost all recent product
development frameworks, from Lean Startup and Lean UX Design to DevOps,
including all kinds of Agile and Lean software practices. These are all great
sources of inspiration, but the result may be overloaded, with a loss of sight
about what really matters for a “Lean Agile” approach: customer satisfaction
and continuous learning. From a “Scaled Lean & Agile” perspective, SAFe
gives you the bones, but not the flesh for your software development culture.
If you read SAFe books with a digital product perspective, the intricacy of
learning </span><a href="https://informationsystemsbiology.blogspot.com/2017/06/digital-experience-factories.html"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">from
observing and listening to your users</span></a><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"> seems lost, the
critical role of </span><a href="https://organisationarchitecture.blogspot.com/2016/03/lean-user-experience-et-lean-analytics.html"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">user
experience design</span></a><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"> is not tangible.<span style="mso-spacerun: yes;"> </span>If you read them with a </span><a href="https://informationsystemsbiology.blogspot.com/2012/07/lean-software-factory.html"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Lean
software perspective</span></a><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">, you find surprisingly few
mentions of software realities and issues. Somehow, my opinion in this debate about
SAFe is closer to Ron Jeffries post “<a href="https://ronjeffries.com/xprog/articles/safe-good-but-not-good-enough/">SAFe-
Good But Not Good Enough</a>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">This post is organized as
follows. The main topic is the review of “<a href="https://www.scaledagileframework.com/blog/download-the-free-supplement-to-safe-distilled-whats-new-in-safe-4-6/">SAFe
4.5 Distilled: Applying the Scaled Agile Framework for Lean Enterprises</a>”.
Because SAFe is a very rich and complex framework, this section only provides
an overview. SAFe is a framework designed to address scale and flow when
developing in an “agile mode” for large products, projects and program. It
proposes a multi-scale decomposition with the relevant vocabulary, tools and
rites, such as the famous “PI (Product Increment) planning”. I will address the
depth of the lean roots in SAFe, as well as the influence of Lean UX Design or
Lean Startup. The third section talks about two other approaches for scaling
Agile : <a href="https://less.works/less/framework/index">LeSS</a> and <a href="https://www.pmi.org/disciplined-agile/process/introduction-to-dad">Disciplined
Agile</a>. I will also use two short book reviews to support these simpler
analyses of alternate scaling methods. Interestingly both approaches also
portray themselves as “Lean Agile” methods. LeSS is mostly about scaling Scrum
and is rich with insights and practical considerations about customer
satisfaction. LeSS is the most visibly “product oriented” approaches of the
three. Disciplined Agile is strongly focused on the integration of Agile,
DevOps and scaling with … discipline, which makes it a close cousin of SAFe. I will
conclude this post with a short comparison with my own approach of “</span><a href="https://www.lean-digital-summit.com/4043-lean-software-factory-applying-the-toyota-way-to-the-continuous-crafting-of-embedded-evolving-software"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Lean
Software Factories</span></a><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">”, which is more focused on
what “Lean Agile” means for the software development squads (i.e., without
scaling).<span style="mso-tab-count: 1;"> </span><br />
<br style="mso-special-character: line-break;" />
<!--[if !supportLineBreakNewLine]--><br style="mso-special-character: line-break;" />
<!--[endif]--><o:p></o:p></span></span></div>
<h2 style="line-height: normal; margin: 0cm 0cm 0.0001pt; text-align: left; text-indent: 0cm; vertical-align: baseline;">
<span style="font-family: Verdana, sans-serif;"><b><span lang="EN-US" style="color: black;"><span style="mso-list: Ignore;">2.<span style="font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span></span></b><b><span lang="EN-US" style="color: black;">A Short Glance at SAFe<o:p></o:p></span></b></span></h2>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW0WUysjTpVfUvc6R6oTj0JLOOVCNaxO6f0-vx1ykI_Nj_ML_WqyYkOpLJMhddPXWiWh_zf_YVTzEq5Fawzo3p7v9aSmYxSK-9XFwj_HddgZ78Fp7xWuoKLoE2-WRgzF58ESqX5YlT3o8/s1600/SAFeDistilled.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="256" data-original-width="197" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW0WUysjTpVfUvc6R6oTj0JLOOVCNaxO6f0-vx1ykI_Nj_ML_WqyYkOpLJMhddPXWiWh_zf_YVTzEq5Fawzo3p7v9aSmYxSK-9XFwj_HddgZ78Fp7xWuoKLoE2-WRgzF58ESqX5YlT3o8/s400/SAFeDistilled.jpg" width="307" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">As told in the introduction, SAFE (<a href="https://www.scaledagileframework.com/">Scaled Agile Framework</a>) is a rich
and complex framework that has evolved through the years. I have decided to use
the book from Richard Knaster and Dean Leffingwell, “<a href="https://www.amazon.com/SAFe-4-5-Distilled-Framework-Enterprises/dp/0135170494">SAFe
4.5 Distilled : Scaled Agile Framework for Lean Enterprises</a>” because it proposes
a comprehensive presentation of the framework, because it is one of the most popular
book about SAFe and also because it addresses the relation with <i>lean</i> in
its title. <span style="mso-spacerun: yes;"> </span>The latest edition, SAFE 5.0,
was released this year, while SAFE 4.5 was released in June 2017, however this does
not matter much since I will only brush the surface of SAFe principles and ambitions.
SAFe was developed “by and for” practitioners, with the intent to “scale lean
and agile software development practices”. <span style="mso-spacerun: yes;"> </span>As the title of the section says, this blog post
cannot deliver a summary of SAFe : not only is the book long, but it is very
often shallow and points out to further readings, because SAFe is a syncretic
collection of practices. I will only give you a personal summary of the key
tools and principles, together with my own understanding, trying to address the
questions stated in the introduction. Obviously, I want to be very clear here,
this summary is biased with my own opinion, which is that SAFe is a useful
framework for scaling, and a poor software development methodology (so you
should bring your own). As you will notice, the first three sub-sections are
very positive about SAFe and the next three are definitely more critical,
although what you plan to do with SAFe really matters here : there are many
kinds of programs and products for which my own interrogations are less
relevant. <o:p></o:p></span></span></div>
<h3 style="line-height: normal; margin-bottom: 12pt; text-align: left;">
<b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">2.1 Scale
& Flow</span></span></b></h3>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">SAFe is foremost a framework designed to address
scale issues and to maintain flow while the scale grows : “<i>The secret to
successfully implementing SAFe is to establish a continuous flow of incremental
value delivery based on continuous fast feedback and adjustment. Continuous
flow enables quicker value delivery, effective built-in quality practices,
constant improvement, and evidence-based governance</i>”. As a lean practitioner,
I applaud the recognition of the importance of flow and I fully subscribe to
the introductory principles : “ <i>The principles of flow are an important part
of the Lean-Agile mindset: Understanding the full value stream Visualizing and
limiting Work in Process (WIP), Reducing batch sizes, Managing queue lengths </i>”.
It should also be stated that SAFe is NOT a strict set of processes, rules and methods.
It claims the lean definition of a <i>standard</i> that the team, the organization,
the company (remember the “at scale” approach) must appropriate and revisit and
customize if necessary : “<i>Agile processes in frameworks like Scrum, Kanban,
and SAFe do matter. However, a process is only a means to an end. When you’re
captive to a process that isn’t working, then you may know what you’re doing,
but ‘what you are doing’ may not be working. So, favor individuals and
interactions, then modify processes accordingly</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Scaling Agile starts, quite logically, by
reviewing the <a href="https://agilemanifesto.org/">Agile Manifesto</a> principles
and wondering if these principles scale, that is, keep being practical when the
software organization grows. The position of the authors is largely positive: “<i>The
conclusion from this exercise is that the Agile Manifesto does indeed scale.
However, many principles require increased emphasis at scale, while others
require a more expanded perspective</i>”. The principles that are identified as
being the most “scale sensitive” are: (2) <i>Welcome changing requirements,
even late in development</i>. <i>Agile processes harness change for the
customer's competitive advantage</i>, (6) <i>The most efficient and effective
method of conveying information to and within a development team is
face-to-face conversation</i> and (11) <i>The best architectures, requirements,
and designs emerge from self-organizing teams</i>.<span style="mso-spacerun: yes;"> </span>Welcoming changing requirements does indeed
require more discipline and method when it applies to a large software organization.
The practice of <a href="https://en.wikipedia.org/wiki/Change-advisory_board">Change
Review/Advisory/Control Board</a> has been around for a long time, for good
reasons. Building large systems that support the agile philosophy of welcoming
changes requires modular architectures (to simplify the infamous <a href="https://en.wikipedia.org/wiki/Feature_interaction_problem">feature interaction
problem</a>) and disciplined practices, which is what SAFe addresses.
Similarly, face-to-face interaction is a key agile practice, that requires
method to scale. Frameworks such as SAFe are born from practitioners who have
experimented with methods and tool to conduct large-scale synchronization
meetings, such as the PI planning events. It is also clear that the need for
constant feedback does not fit easily with scaling: “<i>Most are certainly
willing to comply with the spirit of this concept. However, there are
limitations on the economic practicality and convenience of daily onsite
feedback from customers of large programs, though we fully agree with the
sentiment</i>”. I would actually disagree with the authors, although it more
complex to organize, user feedback is required to breed lean & agile development.
The last question identified here, the scaling of continuous architecture, is
indeed hard to solve. SAFe at the same times advocates for continuous, emergent
architecture that co-evolves with the development process, but uses a multi-scale
hierarchical decomposition that may seem both too rigid and traditional for a
VUCA world.</span><b><span lang="EN-US"><o:p></o:p></span></b></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><br /></span></span></div>
<h3 style="line-height: normal; margin-bottom: 12pt; text-align: left;">
<b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">2.2 Multi-scale
approach</span></span></b></h3>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">A foundation for SAFE is the multi-scale approach, with three separate levels:
the teams, <a href="https://www.scaledagileframework.com/agile-release-train/">the
agile release trains</a> (ART) and the <a href="https://www.scaledagileframework.com/large-solution-safe/">large
solutions</a>. This is a classical hierarchical decomposition (multiple agile teams
organize into a train, multiples trains organize into a solution), with a <span style="mso-spacerun: yes;"> </span>strong emphasis on decentralized decision making
: “<i>As Kennedy notes, and as decentralized decision-making (Principle #9)
implies, centralized planning for significant solution initiatives is
problematic. Simply put, the complexity is too great, and the facts change too
quickly for a centralized planning function to be effective. In its place, SAFe
provides for routine, cross-domain, face-to-face planning</i>”. There are multiple
claims that SAFe is influenced by “system thinking” throughout the book. As
told in the introduction, I strongly recognize scaling as an issue that most companies
must face, as is described in Robert Sutton and Ruggy Rao’s book : “<a href="https://organisationarchitecture.blogspot.com/2014/11/changement-grande-echelle.html">Scaling
up Excellence</a>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">Because the first level of the multi-scale decomposition is meant to
reproduce the “Lean Agile squad” without the scaling issues, the contribution of
SAFe is foremost the second level : “ <i>The Agile Release Train (ART) is a
long-lived team of Agile teams, which, along with other stakeholders, develops
and delivers solutions incrementally, using a series of fixed-length iterations
within a Program Increment (PI) timebox</i> … <i>Each ART is typically a
virtual organization (50–125 people) that plans, commits, and executes together</i>”.
The size of this second level is no surprise : there is a clear consensus about
two sizes that matter with human organization:<span style="mso-spacerun: yes;">
</span>the team size (the famous two-pizza rule) and the tribe size, which is
linked to the army (starting with the <a href="https://romanmilitary.net/strategy/structure/">Roman army</a>) and the <a href="https://en.wikipedia.org/wiki/Dunbar%27s_number">Dunbar number</a>. The
right size for the second-level organization should stay below Dunbar’s number
(150) so that everyone really knows each other at this second level (from an
emotional connection perspective). We shall see the same scaling pattern in the
next section.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">The third level, of large solutions, is another
level of difficulty (precisely because members cannot know each other anymore)
: “<i>Building large-scale and complex systems is one of the most difficult and
challenging endeavors today</i>”. The heterogeneity of the workforce roles, as
well as the (almost all the time at this scale) combination of enterprises and
suppliers make for a different type of challenge : “<i>Building these solutions
may require hundreds, thousands, or even tens of thousands of mechanical,
electrical, and software engineers, not to mention physicists, scientists,
medical professionals, and other experts, along with the integral contributions
of an extensive network of external suppliers</i>”. <span style="mso-spacerun: yes;"> </span>Large solutions are made of multiple ART,
which contributes to multiple value streams. SAFe organizes large solutions
with <a href="https://www.scaledagileframework.com/epic/">solution epics</a>: “
<i>Solution epics are initiatives large enough in scope and cost to warrant
analysis and a Lean business case. Unlike capabilities, which can be split to
fit inside a single PI, solution epics usually take several PIs to develop</i>”.
I will not address much this level of organization in this post, because of my
lack of personal experience building software products with a thousand or more
participants (this is not the same as running a thousand-plus organization delivering
many hundreds-sized products or projects, which is what I am currently doing).<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<h3 style="line-height: normal; margin-bottom: 12pt; text-align: left;">
<b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">2.3 PI Planning</span></span></b></h3>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">The heart of SAFe is how to apply the agile
principles, including small steps, face-to-face communication and feedback to level-two
organizations (ART). As told by Robert Sutton in Scaling Excellence, this
requires synchronization. The most important SAFE Rite is the PI (<a href="https://www.scaledagileframework.com/program-increment/">Program Increment</a>)
planning : “<i>This event is essential to SAFe: If you aren’t doing PI
planning, then you aren’t doing SAFe</i>”. The PI planning is a synchronization
event for the different teams from the same train, so that they can work out
their dependencies and synchronize their deliveries. This is the cornerstone of
“agile at scale”: “<i>the development of large-scale systems is fundamentally a
social activity</i>”. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">The scaling from teams to train requires cadence
(a common clock) and synchronization (leveraging to common clock to communicate
and re-align ambitions). This is a key SAFe principle : “ <i>Apply Cadence;
Synchronize with Cross-Domain Planning</i>”, following the advice from <a href="https://organisationarchitecture.blogspot.com/2011/08/lean-startup-et-lean-product.html">Donald
Reinertsen</a> : “<i>Cadence and synchronization limit the accumulation of
variance</i>”. <span style="mso-spacerun: yes;"> </span>PI planning are critical
rites, which require <a href="https://www.infoq.com/articles/making-scaling-agile-work-4/">careful
organization</a> (because of the large attendance) but delivers lots of value
(as anyone who has experienced a successful PI planning event can testify): “<i>Whenever
possible, attendees include all members of the ART. After all, the people on
the teams do the work, so only they can design the system, plan, and then
commit to that plan</i>”. One of the famous SAFE tools for PI planning is the <a href="https://www.perforce.com/blog/hns/safe-program-board-good-practices-successful-pi-planning">program
board</a> : “ <i>Typically, the RTE creates a program board in advance of
planning and teams update it during planning. The board highlights the feature
delivery dates, milestones, and dependencies among teams and with other ARTs</i>”.
<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">The only word that should get our attention in a
VUCA world is “planning”. On the one hand, coordination at the ART level (level
2) requires planning and synchronization. Teams must say what they will do and,
mostly, do what they said to their “train team-mates”. With the proper agile
tools and concepts, the time horizon of a Program Increment (e.g, eight sprints)
is short enough that planning works from a capacity view: “ <i>Trains are
predictable and can reliably estimate how much cargo (new features) can be
delivered in a PI</i>”. On the other hand, this does not tell the story of
value creation, nor does it capture the possible complexities that may arise
from developing a user story. To simplify (a complex issue), scaling does require
planning of capacities and efforts, but the root of Agile which is to adapt
constantly the delivery to the feedback of the environment still prevails (planning
is not a tool to fight against volatility and uncertainty). For instance, the following
quote: “<i>The primary evaluation tool of the ART is a predictability measure
that tracks the percentage of business value achieved for each PI objective in
the plan</i>” is a departure from agile principles.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<h3 style="line-height: normal; margin-bottom: 12pt; text-align: left;">
<b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">2.4 Focus on
Value and Lean Startup</span></span></b></h3>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">The previous point is where most agilists start
to disagree, as told in the introduction : the reliance on value creation as a
control metric is a departure from the agile mindset and a return to last-century
thirst for control (what Frederic Laloux calls “<i>our beautiful illusion of
control</i>”). This contradiction is expressed with what the authors call “<i>the
economic view</i>”: “<i>Therefore, SAFe’s first Lean-Agile principle is to take
an economic view, which is founded on two basic concepts: Deliver incrementally,
early, and often. Sequence jobs for maximum benefit</i>”. The idea that the future
benefits are known well enough, with a reliable estimate, so that they can
guide prioritization and decisions is too narrow for most VUCA situations. The
authors quote Reinertsen about scheduling for maximum benefits: “<i>Reinertsen
describes an algorithm for job sequencing called Weighted Shortest Job First
(WSJF). WSJF is calculated by dividing the Cost of Delay (CoD) for a job (i.e.,
the value not achieved while waiting) by the duration of the job</i>”. <span style="mso-spacerun: yes;"> </span>This works for lean manufacturing but is much
harder to apply to lean software, because the cost of delay is most often unknown.
For instance, this approach does not work for digital products and services,
where value creation emerges continuously from usage. The discovery of value through
usage and iteration is the heart of the Lean Startup approach, which makes the
constant references to <a href="https://informationsystemsbiology.blogspot.com/2015/10/lean-startup-and-lean-software-factory.html">Lean
Startup</a> in SAFE confusing. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">The authors make multiple reference to innovation
accounting in their book : “<i>Apply innovation accounting to establish early,
nonfinancial, actionable metrics that provide fast feedback on the important
elements of the solution’s new concepts, features, and its associated business
model</i>”. They quote Eric Ries on this topic : “<i>Innovation accounting
refers to the rigorous process of defining, empirically measuring, and
communicating the true progress of innovation—such as customer retention and
usage patterns—whether for start-up companies, for new productions, or business
units within established companies</i>.” In my opinion, and according to my previous
experience of applying innovation accounting to digital products, <a href="https://www.scaledagileframework.com/guidance-applied-innovation-accounting-in-safe/">the
reference to innovation accounting</a> is misleading : innovation accounting is
a tool for managing the macro-iterations (at the PI levels) not for sequencing
the backlogs “according to the economic view”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">An idea that is central to the book is that development
(at all scale) should focus on value. No one could dispute this but understanding
and considering the fact that value is hard to characterize and even harder to
predict is what makes agility so relevant (versus waterfall approaches). Saying
that all resource allocation decisions, at all scales starting from the portfolio
down to the backlog prioritization, should be made from the value creation
hypotheses, is definitely misleading. In a VUCA world, all value creation assumptions
made before the product or the service is delivered … are just hypothesis (which
is precisely the point of the Lean Startup approach).<b><o:p></o:p></b></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<h3 style="line-height: normal; margin-bottom: 12pt; text-align: left;">
<b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">2.5 Lean
& Agile</span></span></b></h3>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">SAFe claims to be a framework to scale Lean Agile,
so it is fair to ask how much of the “<a href="https://organisationarchitecture.blogspot.com/2018/11/comment-promouvoir-linformatique-lean.html">Lean
Agile mindset</a>” is here. Deciding if <a href="https://info.qentinel.com/blog/is-safe-lean-or-is-lean-safe">SAFe is truly
a lean approach</a> is difficult. On the one hand, there is a strong lean “system
thinking” influence, and many references throughout the book, such as “<i>The
foundation of Lean is leadership, the starting point of team success. The
enterprise’s managers, leaders, and executives are responsible for the adoption
and success of the Lean-Agile paradigm</i>”. As said earlier, there are many lean
principles stated in the book, such as “<i>Operating a product development
process near full utilization is an economic disaster</i>” or “<i>Faster
Learning Through Faster Cycles</i>”. On the other hand, for someone like myself
who defines “<a href="https://en.wikipedia.org/wiki/Lean_software_development">Lean
Software</a>” from the reading of Mary and Tom Poppendieck’s books, there is
surprisingly little software (software issues, software practices, software
principles) mentioned in the book. SAFe offers a vision of lean which is very much
system-based and lacks the relationship with the <i>gemba</i> (the code and the
people). One could say that the « software » dimension of lean is
what is done at the team level (hence visual management, kaizen or 5S are not
covered here) … but I think that learning and system thinking practices need to
scale. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">The same comment applies to the agile roots of
SAFe. As shown earlier, the principles of the Agile Manifesto are quoted
multiples time in the book, with a deep appreciation : “<i>The first phrase of
the manifesto deserves emphasis: “We are uncovering better ways of developing
software by doing it and helping others do it</i>.” . Many practical pieces of advice,
such as “<i>favor working software. And document only what’s necessary</i>”,
tell of the SAFe’s agile heritage. At the same time, I see two potential problems
(depending on your activities and what kind of software products you are building).
First, there is a pregnant scale-hierarchy built into the roles: those who
manage the bigger-size items are (or sound) more important than those doing unit
elements. This is very visible with the over-emphasis about architecture and
the small recognition given to technical excellence and software craftmanship
(the influence of hierarchical system engineering is obvious). I would strongly
recommend the reading of “<a href="https://informationsystemsbiology.blogspot.com/2013/07/follow-up-on-lean-architecture.html">Lean
Architecture</a>” from James O. Coplien & Gertrud Bjørnvig as way to balance
the SAFe vision: “<i>The SAFe concept of the architectural runway provides the
means by which Agile architecture is implemented</i>”. Second, there is the “control
illusion” described in the previous section: the emphasis on planning, forecast,
value creation … that can quickly become a burden when one wants to lead a true
agile transformation, such as a digital transformation. To illustrate with a precise
example, the book advocates for parallel design (set-based versus point-based)
where experience shows that this really depends on the complexity of the environment
(innovation accounting does not mix well with feature interaction).<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<h3 style="line-height: normal; margin-bottom: 12pt; text-align: left;">
<b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">2.6 One Framework
to Rule them All ? </span></span></b></h3>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvEzrMFJ4khBklOlOB7MGY1nhxr8O895kBcITh4pZMU65ZPBdCtZI8SXhvsULP6Kn9VvVlkSDT_dtj-9Gfd_NsjiKUY7SGqPtFQ5ij3Fghed_3EkkWZ-tegY2eEoULEzh-b1sglWwRqOs/s1600/Accelerate.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="276" data-original-width="183" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvEzrMFJ4khBklOlOB7MGY1nhxr8O895kBcITh4pZMU65ZPBdCtZI8SXhvsULP6Kn9VvVlkSDT_dtj-9Gfd_NsjiKUY7SGqPtFQ5ij3Fghed_3EkkWZ-tegY2eEoULEzh-b1sglWwRqOs/s1600/Accelerate.jpg" /></a><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">What is striking, when one reads this book or look at the <a href="https://www.scaledagileframework.com/">framework schemas</a>, is that SAFe
claims inspiration from most product/project methodologies, such as Agile,
Lean, DevOps, LeanUX, Lean Startup … as well as many management tools, from
Daniel Pink’s motivation foundations or Kotter change management framework to
servant leadership. Some of the complexity of SAFe comes from trying to
reconcile a very structured, step-by-step, managed and controlled linear vision
with the recognized need for iteration and adaptation : “ <i>Even though Figure
9-2 seems to indicate a linear process, in reality, the pipeline doesn’t
operate that way. Rather, it’s an overlapping learning cycle that occurs within
every PI, which allows teams to establish a number of hypotheses, build and
deliver against them, measure results, and learn from that work</i>”. As a <a href="https://informationsystemsbiology.blogspot.com/2011/11/lean-it-devops-and-cloud-programming.html">proponent
of DevOps for many years</a>, I welcome <span style="mso-spacerun: yes;"> </span>statements
such as “<i>DevOps is the cornerstone of continuous delivery and enables the
enterprise to economically develop and release small batches of functionality
to the business or end user, providing faster feedback and time-to-market</i>”,
but the book does not tell much about scaling DevOps. The book to read on this
topic remains “<a href="https://organisationarchitecture.blogspot.com/2018/06/la-transformation-numerique-emerge-de.html">Accelerate
– Building and Scaling High Performing Technology Organizations</a>” by Nicole
Forsgreen, Jezz Humble and Gene Kim. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span style="font-family: Verdana, sans-serif;">It leads naturally to the opinion, expressed by some of the experts that I
mentioned in the introduction, that “SAFE is too big, with too much content”.
The attempt to squeeze approaches such as design thinking, lean UX or </span><a href="https://informationsystemsbiology.blogspot.com/2013/10/lean-startup-lean-innovation-factory.html" style="font-family: Verdana, sans-serif;">Lean
Startup</a><span style="font-family: Verdana, sans-serif;"> is not convincing. This yields an explorative, divergent, iterative
step called “continuous exploration”, that fits into the large ART schedule : “</span><i style="font-family: Verdana, sans-serif;">Continuous
exploration is the process of continually exploring market and user needs, and
defining a vision, a roadmap, and a set of features that propose to address
them</i><span style="font-family: Verdana, sans-serif;">.” Trying to fit everything on the same schedule does not convince me: I
see the benefit of cadence and synchronization for software delivery, not for
value delivery. I have written many time about the need for </span><a href="https://organisationarchitecture.blogspot.com/2017/05/grec-et-chinois-anticipation-et-agilite.html" style="font-family: Verdana, sans-serif;">multiple
time horizons</a><span style="font-family: Verdana, sans-serif;"> and </span><a href="https://informationsystemsbiology.blogspot.com/2017/09/hacking-growth-when-lean-management.html" style="font-family: Verdana, sans-serif;">nested
loops</a><span style="font-family: Verdana, sans-serif;"> (as opposed to micro iterations within a linear process). Similarly,
the books talks a lot about “building quality in”, which is fitting to the lean
approach: “ </span><i style="font-family: Verdana, sans-serif;">Built-in quality is one of the four core values of SAFe. The
enterprise’s ability to deliver new functionality with the fastest sustainable
lead time, and to react to rapidly changing business environments, depends on
solution quality</i><span style="font-family: Verdana, sans-serif;">”. However, the book contribution on how to improve
software quality is shallow at best. Similarly, the reference to </span><a href="https://organisationarchitecture.blogspot.com/2016/03/lean-user-experience-et-lean-analytics.html" style="font-family: Verdana, sans-serif;">lean
UX</a><span style="font-family: Verdana, sans-serif;">, “</span><i style="font-family: Verdana, sans-serif;">In short, the Lean UX cycle provides the knowledge that Agile teams
need to adjust and redesign—or even pivot to abandon a feature—based solely on
objective data and user feedback, enabling them to iterate toward a successful
outcome</i><span style="font-family: Verdana, sans-serif;">”, does not bring much and one wonders why lean UX is invoked here. It
actually highlights the fact that customer-centricity, a key principle both for
lean and agile way of working is poorly represented here. Customer satisfaction
does not receive much attention here, it is over-shadowed by value creation.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<h2 style="line-height: normal; margin: 0cm 0cm 0.0001pt; text-align: left; text-indent: 0cm; vertical-align: baseline;">
<span style="font-family: Verdana, sans-serif;"><b><span style="color: black;"><span style="mso-list: Ignore;">3.<span style="font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span></span></b><b><span style="color: black;">LeSS and Disciplined Agile<o:p></o:p></span></b></span></h2>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<h3 style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">3.1 LeSS : Scaling Scrum to develop software products</span></span></b></h3>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;"><book picture=""><o:p></o:p></book></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">I will now complement the analysis
of SAFe with two other competing frameworks. The first one is LeSS (<a href="https://less.works/less/framework/index">Large Scaled Scrum</a>), a
multi-team scrum framework designed to scale <a href="https://en.wikipedia.org/wiki/Scrum_(software_development)">Scrum</a> with
teams of hundreds or even thousands contributors working on the same software
product. <a href="https://kendis.io/largescalescrum/how-less-works/">The name
also tells the intention to scale with less</a> rules, less guidelines, less methodology
than SAFe. To deliver my short introduction to LeSS, I will propose a short
book review of “<a href="https://less.works/resources/learning-resources/books">Large-Scale
Scrum: More with LeSS</a>” by Craig Larman and Bas Vode. Since this post is already
quite long, I will simply focus on <b>five key areas</b> and attempt to compare
LeSS with SAFe. “<a href="https://www.infoq.com/articles/book-review-large-scale-scrum/">Large-Scale
Scrum: More with Less</a>” is a beautiful book, well-written and full of insights
about scaling Agile, so I urge you to get your copy and give it your full
attention.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Less is Large-Scale Scrum. </span></b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Since Scrum is the de facto standard practice for Agile in most companies,
it makes adapting LeSS a much easier proposition: “</span><i><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Large-Scale Scrum is Scrum—It
isn’t new and improved Scrum. Rather, LeSS is about figuring out how to apply
the principles, rules, elements, and purpose of Scrum in a large-scale context,
as simply as possible</span></i><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">”. The framework aims at keeping what makes
Scrum easy to understand and to adopt. The emphasis is on transparency (using
things that everyone can see as beacons), short cycles, working together and
common definitions. There is a strong will to keep the framework simple and to
avoid adding many roles to take scale into account: “<i>We don’t want more
roles because more roles leads to less responsibility to Teams. We don’t want
more artifacts because more artifacts leads to a greater distance between Teams
and customers. We don’t want more process because that leads to less learning
and team ownership of process. Instead we want more responsible Teams by having
less (fewer) roles, we want more customer-focused Teams building useful
products by having less artifacts, we want more Team ownership of process and
more meaningful work by having less defined processes</i>”. LeSS is a Lean
Agile methodology as is expressed, for instance, with two funding principles: “System
thinking” and “empirical process control”. These principles, or should I say these
words, are part of the SAFe book as well, but they have a different flavor
here. System thinking is more concrete and applied to the product: “<i>See,
understand, and optimize the whole system (not parts), and use systems modeling
to explore system dynamics. Avoid the local sub-optimizations of focusing on
the efficiency or productivity of individuals and individual teams. Customers
care about the overall concept-to-cash cycle time and flow, not individual
steps, and locally optimizing a part almost always sub-optimizes the whole</i>”.
Empirical process control captures the heart of agility, which is, in my
opinion, to constantly adapt to the customer environment: “<i>Continually
inspect and adapt the product, processes, behaviors, organizational design, and
practices to evolve in situationally-appropriate ways. Do that, rather than
follow a prescribed set of so-called best practices that ignore context, create
ritualistic following, impede learning and change, and squash people’s sense of
engagement and ownership</i>”. Although this is out for scope for this blog
post on scaled agile, it is worth telling that “<a href="https://www.agilecentre.com/large-scale-scrum-more-with-less/">Large-Scale
Scrum</a>” is a great book about Scrum, scrum masters, scrum communities and
scrum tools.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 103.8pt; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">LeSS proposes a
scaling methodology with three levels. </span></b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">The first level is
clearly, as was the case with SAFe, the SCRUM agile team. There are two
additional levels (LeSS and LeSS Huge): groups of up to 8 teams, and assembling
a large number of such groups : “ </span><i><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Large-Scale Scrum has two frameworks: LeSS for
2–8 Teams, and LeSS Huge for 8+ Teams</span></i><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">”. The two levels, with a
similar cut-over, should not be a surprise since we explained earlier that the
difference between managing less than 100-150 people and more seems to be
deeply rooted into our sociology and anthropology. The heart of scaling comes
from the product structure: one product (one product owner team) and many product
development teams (up to 8 teams). This works for LeSS and changes at the “LeSS
Huge” scale where the product is divided into requirement areas (“<i>Customer
requirements that are strongly related from a customer perspective are grouped
in Requirement Areas</i>”) that are managed with a LeSS structure : “<i>Each
Requirement Area works as a (smaller framework) LeSS implementation, each
working in parallel in one overall Sprint. We sometimes summarize a Sprint in
LeSS Huge as a stack of LeSS</i>”. Each requirement area follows the “four to
eight teams” rule : “<i>why does a Requirement Area have a suggested upper
limit of eight teams? See The Magic Number Eight. What about the lower limit of
four teams? Why not one or two teams? Naturally, four isn’t a magic number, but
it strikes a balance so that the product group is not composed of many tiny
Requirement Areas</i>”. To manage the set of teams in the product structure, at
all scales, LeSS uses a <a href="https://less.works/less/scrum/sprint-planning">Sprint
Planning</a> which is not very different from the SAFe approach in its form, even
though some of the intents are different because of the product focus. The
planning belongs to the teams : <span style="mso-spacerun: yes;"> </span>“<i>Especially
at scale with myriad different contexts and the need to improve, how Sprint
Planning meetings are done in LeSS must be left up to the teams”.</i> Sprint
planning work very well when everyone can gather in the same space, but it can
also be adapted to remote teams : “<i>Multi-site—Use video, and offer items,
using a virtual shared space. If questions, the simplest solution is to just
talk together. If there are many teams and lots of items to discuss, try a
diverging technique such as a chat tool with one window per item</i>”. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 103.8pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">LeSS is a product development framework.
</span></b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">The move from project to product is a key
transformation of software development methodology; it is a key foundation for <a href="https://www.planview.com/resources/articles/lkdc-principles-lean-development/">Lean
Software as defined by Mary Poppendieck</a>. The authors tells how Scrum has
also embraced this paradigm shift in the past years : “</span><i><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Luckily,
this confusion is resolved. The Scrum Guide now states, “Scrum is a framework
for developing and sustaining complex products” and eliminated projects. Does that
matter? Hugely!</span></i><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">”. <span style="mso-spacerun: yes;"> </span>The focus on product is everywhere
in the book, as the product is a key part of what defines the team : “<i>Whole-product
focus—One Product Backlog, one Product Owner, one shippable product, one
Sprint—regardless if 3 or 33 teams. … </i><span style="mso-spacerun: yes;"> </span><i>Your product definition determines the
scope of your adoption, the content of the Product Backlog, and who makes a
suitable Product Owner. Broader product definitions are advantageous, but your
definition has to be practical enough to start”.</i></span><span lang="EN-US" style="mso-ansi-language: EN-US;"> The focus on product leads to long-term engagement,
<b>long-lived teams</b> and patience. LeSS promotes technical expertise over
project management skills: “</span><i><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">LeSS requires technical excellence. Technology,
team, and organizational decisions are strongly related and your coach needs to
have this broad and deep perspective. Avoid people with no or limited technical
expertise. These are often ex-PMI-project managers</span></i><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">”. This is quite different
from a project culture of assembling the right people for a short time and
letting them go, it bears repeating and is illustrated by the LeSS requirement for
the initial teams : “<i>dedicated—each person is a member of one and only one
team stable—the members of the team aren’t changed frequently long-lived—the
team isn’t a temporary project team but stays together for years</i>”. As told
in the previous paragraph, the product organization scales with <a href="https://less.works/less/structure/feature-teams.html">feature teams</a>
(and Requirement Area at the “huge” level). One product owner (either a person
or a small team depending on the size) work with a set of feature teams, as
peers (there is no hierarchy between the product team and the features teams). All
feature teams operate in a continuous integration mode: “<i>The continuous
integration of all code across all teams creates the opportunity to cooperate
by checking who else made changes in the component being worked on</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">LeSS is a customer-centric framework</span></b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">. The importance of customer-centricity – a key component of Agile – is much
more visible in this book than the SAFe one. Many pieces of advice are given to
enable customer-centricity and achieve better </span><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">prioritization: “ <i>Focus on
learning the customers real problems and solving those. Identify value and
waste in the eyes of the paying customers. Reduce wait time from their
perspective. Increase and strengthen feedback loops with real customers.
Everyone understands how their work today directly relates to and benefits
paying customers”. </i>LeSS acknowledges that customer-centricity is hard to
scale (“<i>In a small one-team product, organizing by customer value is
trivial. The more teams, the more they become like cogs in the large
development machine</i>”). The feature team organization is designed as a tool
to scale the focus on customers.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 103.8pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">LeSS is a Lean Agile software
development framework with clear lean roots</span></b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">. It makes “Lean Thinking”
one of the founding principles: “</span><i><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Create an organizational system whose foundation
is managers-as-teachers who apply and teach lean thinking, manage to improve,
promote stop-and-fix, and who practice Go See. Add the two pillars of respect
for people and continuous challenge-the-status-quo improvement mindset. All
towards the goal of perfection</span></i><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">”. As explained in the previous section, some of
this could be found in the SAFe book (we find the same references to queues and
work in process), but the importance of the <i>gemba</i> (people and code) is more
visible. The same remark applies to the importance of continuous improvement: “<i>A
LeSS adoption ends only when you’ve achieved perfection and world domination.
Without that, there are always things to improve. The job of managers is to
build an environment in which teams continuously deliver and continuously
improve. Preferably the teams themselves do most improvements, but managers and
Scrum Masters are often involved for organizational and environmental
improvements … </i>—<i>Here’s a perfection goal: Create and deliver a product
almost all the time, at almost no cost, with no defects, that delights
customers, improves the environment, and makes lives better. Do endless humble
and radical improvement experiments toward that goal</i>”. The guidelines that
are provided to managers are deeply influenced by lean thinking : “<i>Create an
organizational system whose foundation is managers-as-teachers who apply and
teach lean thinking, manage to improve, promote stop-and-fix, and who practice
Go See. Add the two pillars of respect for people and continuous challenge-the-status-quo
improvement mindset</i>”. Even with the small set of quotes that I have included
here, one can see that the LeSS emphasis is not on the framework or its methods,
but on the product that is being build. LeSS coaches needs to be former doers: “<i>Prefer
hands-on experience. Ensure that your trainer/coach has hands-on experience in
LeSS from both inside (as a team member) and outside (as coach). Avoid training
providers who don’t care about who teaches, and avoid trainers with only
theoretical knowledge. … </i><span style="mso-spacerun: yes;"> </span><i>De-emphasize
certification. Most certification of people and courses is almost meaningless.
It probably doesn’t hurt, but certification is not a reliable guide</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt;">
<br /></div>
<h3 style="line-height: normal; margin-bottom: 12pt; text-align: left;">
<b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">3.2 Discipline
Agile : Scaling and improving agile development processes</span></span></b></h3>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaSZCiJ-TreItH4ErTzmVLAk9jUDmWydeKGoN_8841XMdTb9-HWxE0XgCdZ6OGdeyJjdkoJNESh8w_EEaC4eR3WzqWfESEwYk1nGtb4tKfiSJZScqPuy3W3u1tcjNw55r8CKGYPZ7pFnQ/s1600/ExecutiveGuideDisciplinedAgile.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="275" data-original-width="183" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaSZCiJ-TreItH4ErTzmVLAk9jUDmWydeKGoN_8841XMdTb9-HWxE0XgCdZ6OGdeyJjdkoJNESh8w_EEaC4eR3WzqWfESEwYk1nGtb4tKfiSJZScqPuy3W3u1tcjNw55r8CKGYPZ7pFnQ/s400/ExecutiveGuideDisciplinedAgile.jpg" width="266" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">I will now turn to <a href="https://disciplinedagileconsortium.org/">Disciplined
agile</a>, which is often considered <a href="https://techbeacon.com/app-dev-testing/large-scale-agile-frameworks-compared-safe-vs-dad">as
the most natural competitor to SAFe</a>. Disciple Agile started in 2015 and has
scaled, with successive versions, to incorporate “disciplined DevOps”, then “Disciplined
IT” and later “Disciplined Agile Entrerprise”. Disciplined Agile focus on
people first and acknowledges the diversity of development life cycles. In a way
that is similar to SAFe, Disciplined Agile claims inspiration from many sources
such as Scrum, extreme programming (XP), SAFe, Spotify, agile modeling (AM),
Unified Process (UP), Kanban, outside-in software development, and agile data
(AD). Following the same principle as the previous section, I have selected “<a href="https://www.pmi.org/disciplined-agile/books/exec-guide-to-da">An
Executive’s Guide to Disciplined Agile : Winning the Race the Business Agility</a>”,
by Mark Lines and Scott Ambler, as my path to describe DAD (Disciplined Agile
Delivery) shortly in this blog post. Since I only selected four themes to feed
my comparative analysis with SAFe, it is clear that I will not do justice to
Disciplined Agile or to Mark Lines and Scott Ambler’s book. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Disciplined Agile is a “process improvement toolkit”, that is, a framework
that can be used on many software development processes: </span></b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">“<i>In many
ways Disciplined Agile (DA) is very different from other process offerings. DA
is a process improvement toolkit, not a process or methodology</i>”. In a way
that is very similar to <a href="https://blog.agilityscales.com/@jurgenappelo">Jurgen
Appelo</a>’s writing (cf. his great book “<a href="https://organisationarchitecture.blogspot.com/2014/09/respect-lean-et-innovation.html">Management
3.0 – Leading Agile Developpers, Developing Agile Leaders</a>”), complexity theory
and system thinking play an important role in the proposed approach to scaling.
Organizations are seen as complex adaptative systems, for which DAD uses to <a href="https://en.wikipedia.org/wiki/Cynefin_framework">Cynefin framework</a> to
identify the “unknown unknowns”. I applaud the reference to complex system thinking,
but I find the application to stay too much on the conceptual side. There are
many pages about how to organize you governance, without mention of what kind
of issues this governance should resolve. Similarly, the part about
architecture is very generic. In a lean spirit, it would make sense to describe
which problems architecture is trying to solve (such as modularity, open-ness
with API, reactiveness, high availability and resilience, extensibility and
unified data semantics, etc.). DAD is a transformation framework; it proposes a
long journey towards continuous improvement. I quote here a long fragment from
the conclusion that I like very much: <o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
</div>
<ul style="text-align: left;">
<li><i><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">Solution delivery is complex. DevOps is complex. IT is complex. Your
overall organization is complex. What makes it even more challenging is that
your people, teams, organization, and the world around them is constantly
learning and adapting.</span></span></i></li>
<li><i><span lang="EN-US"><span style="font-family: Verdana, sans-serif;">No silver bullet. There are no quick fixes, no silver bullets, no one
process or scaling framework to rule all regardless of the marketing rhetoric
surrounding them. Every person, every team, and every organization is unique.</span></span></i></li>
<li><i><span lang="EN-US"><span style="font-family: Verdana, sans-serif;">It will take time. This is a multi-year journey. And when you have achieved
what you perceive to be true business agility you will need to evolve to a
long-term continuous improvement approach as everything around you will
continue to change.</span></span></i></li>
<li><i><span lang="EN-US"><span style="font-family: Verdana, sans-serif;">It requires sustained investment. Achieving your transformation goals will
take a material investment.</span></span></i></li>
<li><i><span lang="EN-US"><span style="font-family: Verdana, sans-serif;">It requires courage and commitment.
Every single success story, every single one, starts with the organizational
decision to do the hard work to get better. And every single one eventually
recognizes that improvement is a way of life, not a project.</span></span></i></li>
<li><i><span lang="EN-US"><span style="font-family: Verdana, sans-serif;">Change must be pulled not pushed. You need to pull agility and discipline
into your organization, you can’t push change onto people and hope it will
stick.</span></span></i></li>
</ul>
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Disciplined Agile is organized around seven principles</span></b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">: “<i>Delight
Customers, Be Awesome, Pragmatism, Context Counts, Choice is Good, Optimize
Flow, and Enterprise Awareness</i>”. <span style="mso-spacerun: yes;"> </span>These
principles reflect the pragmatism of the framework authors, the agile and lean
heritage and a focus on system thinking. DAD embraces the preference for long-lived
stable teams: “<i>A very common trend in the agile community is the movement
away from projects, and the project management mindset in general, to
long-lived teams”</i>. The fact that “Delight Customers” is the first principle
is a good indication that customer-centricity received more attention than it gets
with SAFe : “<i>In 2001 the writers of the Agile Manifesto told us that “Our
highest priority is to satisfy the customer through early and continuous
delivery of valuable software.” This is a good start, but disciplined agilists
prefer the lean philosophy that to succeed it isn’t sufficient to simply
satisfy the customer but instead we must regularly delight them if we wish to
keep them as a customer.” </i>However, the customer-centricity claim stays as a
principle and does not lead to the practical focus that is found in the LeSS
book.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Disciplined Agile is a Lean Agile framework with many sources of inspiration</span></b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"> : “<i>DAD
is an agnostic hybrid approach that puts proven strategies from Scrum, Agile
Modeling (AM), Extreme Programming (XP), Unified Process (UP), Kanban, Lean
Software Development, SAFe and several other methods into context”</i>. Similar
to SAFe, DAD also claims inspiration from Lean Startup: “<i>The toolkit
includes support for multiple delivery lifecycles, including but not limited to
a basic/agile lifecycle based on Scrum, a lean lifecycle based on Kanban, two
modern agile lifecycles for continuous delivery, and an exploratory lifecycle based
on Lean Startup</i>”. Notice that there is no attempt to create a hybrid
monster lifecycle that includes everything (including <a href="https://informationsystemsbiology.blogspot.com/2013/10/lean-startup-lean-innovation-factory.html">Lean
Startup</a> in a “continuous exploration” mode), which is definitely a good
thing. Lean is often quoted as a source of inspiration for principles: “<i>The
10th principle behind the Agile Manifesto suggests that “Simplicity – the art of
maximizing the amount of work not done - is essential”. Similarly, Lean
advocates regard any activity that does not directly add value to the finished
product as waste”</i>. However, when it comes to practical guidelines, such as
those for the “Lean Change management cycle”, any lean practitioner will cry
for the absence of any mention about the “<i>gemba</i>” (people and code). It
is hard to imagine a lean software development practice without deep diving into
what people do and which issues they meet. The authors explain that enterprise
culture and organization need to evolve to match Disciplined Agile ways of
working – this is definitely true, as was pointed beautifully by Jurgen Appelo
or by Steve Dunning in his great post “<a href="https://www.forbes.com/sites/stevedenning/2015/07/22/how-to-make-the-whole-organization-agile/?utm_source=dlvr.it&utm_medium=twitter#4cea47415841">How
To Make The Whole Organizations Agile</a>”. They use the wonderful book for
Frederic Laloux, “<a href="https://organisationarchitecture.blogspot.com/2015/03/entreprise-30-comment-sadapter-un.html">Reinventing
Organizations</a>”, as a guideline: “ <i>There are several important
observations we’d like to make about Laloux’s organizational maturity scale:
Green and teal align well with agile. For your organization to support
Disciplined Agile it should at least be (mostly) Green, with a participative
and values-based culture, or better yet Teal with a truly adaptive and aware
strategy</i>”. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">Disciplined Agile is a framework for Agile DevOps. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">The
integration of DevOps is what makes this book stand apart from the other two : many
thoughts have been given to scaling DevOps practices, and this shows in the
book organization, with a collection of schemas that will be useful to agile
practitioners at scale. The emphasis on “discipline” becomes the vehicle to
promote the scaling of unified development methods (something that my own experience
confirms: the <i>laissez-faire</i> spirit about what “agile really means to you”
works beautifully at a team level, but does not scale) and the fierce promotion
of automation (hence DevOps). The larger the organization, the larger the
benefits of constant, relentless and continuous automation. I mention in the
introduction that the software giants such as Google, Facebook or Netflix do
not use SAFe, but they do use DevOps and very large amounts of scripting and
automation. Disciplined DevOps is a valuable framework for large enterprises: “<i>Disciplined
DevOps is the streamlining of IT solution development and IT operations
activities, along with supporting enterprise-IT activities such as Release
Management, Support, Security and Data Management, to provide more effective
outcomes to an organization</i>”.<span style="mso-tab-count: 1;"> </span>
<br style="mso-special-character: line-break;" />
<!--[if !supportLineBreakNewLine]--><br style="mso-special-character: line-break;" />
<!--[endif]--><o:p></o:p></span></span></div>
<h2 style="line-height: normal; margin: 0cm 0cm 0.0001pt; text-align: left; text-indent: 0cm; vertical-align: baseline;">
<span style="font-family: Verdana, sans-serif;"><b><span lang="EN-US" style="color: black;"><span style="mso-list: Ignore;">4.<span style="font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span></span></b><b><span lang="EN-US" style="color: black;">Conclusion <o:p></o:p></span></b></span></h2>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify; vertical-align: baseline;">
<span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">Before I conclude
with what I take from these different reviews, it is worth telling briefly
where I come from. As you may have found if you clicked on the URL links, the
divergence of opinions about scaled agile is quite wide. You cannot have an opinion
that is independent from your own experience as a software practitioner. I
discovered the agile manifesto in its early day because of my past as an object-oriented
language designer and my interest with software development methodologies in
the previous century. I moved to Scrum in 2005-2008 when I had to scale my
agile practices. I then moved from Scrum to DevOps when faced with the
challenge of developing software for internet gateways and set-top boxes. The
practice of Scrum+DevOps has led me to look into Lean Software development around
2010 and progressively define the “<a href="https://informationsystemsbiology.blogspot.com/2012/07/lean-software-factory.html">Lean
Software Factory</a>” ambition, which I refined progressively when I moved to
digital products development at AXA Digital Agency. I have covered this <a href="https://informationsystemsbiology.blogspot.com/2017/06/digital-experience-factories.html">lean
agile software approach</a> many times in my blog, but I have never written
about scaling before this post.<span style="mso-spacerun: yes;">
</span>Interestingly, there are two separate topics: what does lean & agile
software development mean? and how do you scale this approach? I have given the
first question a lot of consideration, but not much to the second although I
have been faced with scaling challenges since 2005.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify; vertical-align: baseline;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify; vertical-align: baseline;">
<span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">The short version
of my conclusion is that SAFe is an interesting toolkit for scaling but should
not be used as a lean agile development methodology. If you know what you are
doing, you may derive great value from SAFe rites and practices, but If you
follow the guide/books too closely, your are likely to get yourself back into
20<sup>th</sup> century software development (not always a bad thing …). If I
try to expand my concluding thoughts about these three books, here is what I
would propose: <o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify; vertical-align: baseline;">
</div>
<br />
<ul>
<li><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;"><span style="text-indent: -18pt;">I really liked the LeSS book, and the LeSS framework,
but not everything is here. The lean (kaizen) and DevOps angles are missing
from my perspective. The good news is that there are no incompatibilities
between LeSS and the </span><a href="https://informationsystemsbiology.blogspot.com/2014/06/12-principles-of-lean-software-factories.html" style="text-indent: -18pt;">Lean
Software Factory Principles</a><span style="text-indent: -18pt;">, so using LeSS as a scaling framework works for
me. What makes LeSS the best book of the three is the focus on software products.
As told earlier, I believe that moving from projects to products is the center
of lean software transformation.</span></span></span></li>
</ul>
<ul>
<li><span style="font-family: Verdana, sans-serif;">I liked Disciplined Agile for its DevOps integration.
I also appreciate the flexibility to support multiple kinds life cycles.
However, to me, this is only a companion book since it says too little about software
development and stays at a “meta” descriptive level on too many topics.</span></li>
</ul>
<ul>
<li><span style="font-family: Verdana, sans-serif;">I would recommend SAFe for the practices at scale,
such as PI planning, but definitely not as a development methodology. In my
opinion, SAFe and DAD suffers from the same drawback of trying to integrate too
many ideas and concepts from other methodologies. DAD does it with more grace,
while SAFe tries <a href="https://medium.com/serious-scrum/shaming-agile-frameworks-misses-the-point-we-can-all-learn-from-failure-3dda52ebb68b" style="text-indent: -18pt;">forcefully</a><span style="text-indent: -18pt;">
to fit all the pieces together.</span></span></li>
</ul>
<ul>
<li><span style="font-family: Verdana, sans-serif;">None of these books do a compelling job to
explain the value of <a href="https://thehypertextual.com/2017/12/15/agile-ce-que-la-pensee-lean-apporte-aux-methodes-agiles/" style="text-indent: -18pt;">combining
lean and agile</a><span style="text-indent: -18pt;">, nor how does it really work at the squad level … but this
is not the topic of this post.</span></span> </li>
</ul>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: Verdana, sans-serif;">I will end with a COVID-related
note. There used to be a debate whether agile development required co-location.
It is very clear to anyone who has experienced both, that colocation – of all team
skills, but mostly of the product owner with the developers – works better. Multi-site
agility requires more experience, more discipline, a strong set of common
language, concepts and tools. “<b>Remote agile</b>”, however, has become a necessity
for large-scale organizations because of geographic constraints. What we see
currently is that “remote agile” may become a standard practice in a more general
sense, when most software workers are required to work from home.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal">
<br /></div>
<br /></div>
Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com0tag:blogger.com,1999:blog-438942112364524044.post-85030076051517326112020-03-29T22:18:00.002-07:002020-03-29T22:18:17.679-07:00Re-inventing the Product : From Industry 4.0 to Digital Experiences<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div align="center" class="MsoNormal" style="text-align: center;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<h2 style="text-align: left;">
<b><span lang="EN-US" style="line-height: 107%;"><span style="font-family: Verdana, sans-serif;">1. Introduction</span></span></b></h2>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">This blog post will talk about product development,
digital manufacturing and the necessary integration between software and
hardware engineering. This topic is dear to my hear because of the many years
that I have spent at Bouygues Telecom developing new internet gateways and set
top boxes. I will talk today about Eric Schaeffer and David Sovie’s book, “<b>Reinventing
the Product</b>”, which is one of the important sources for my own new book, to
be published in the month to come. The focus on product makes this book a great
companion to the larger vision of the Industrie 4.0 transformation, as described
in the <a href="https://en.wikipedia.org/wiki/Acatech">Acatech</a> document
« <i><a href="https://www.acatech.de/wp-content/uploads/2018/03/acatech_STUDIE_Maturity_Index_eng_WEB.pdf">Industrie
4.0 Maturity Index - Managing the Digital Transformation of Companies</a> </i>»
from Günther Schuh, Reiner Anderl, Jürgen Gausemeier, Michael ten Hompel and
Wolfgang Wahlster.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">Re-inventing the product is clearly about smart
products, but it is also about new products built in smart, connected factories.
It is driven by technology and the introduction of digital tools throughout the
lifecycle, from design to usage and operations. It is also a transformation of mindset,
culture and organizations. As a part of the larger digital transform, re-inventing
the product starts with the customers, since the digital world allows to re-invent
the customer relationship from listening to supporting. Physical products still
require a strong emphasis on manufacturing and product lifecycle, but software engineering,
software ecosystems and the power of platforms have become equally important ingredients
of the product success. Because software moves fast, because “AI is eating
software”, the role of software strategy plays an ever-increasing role with
product differentiation and innovation.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">I had the pleasure to invite Eric Schaeffer to give
a talk at the <a href="https://www.academie-technologies.fr/en/">NATF</a>. He
has been a keen observer of the manufacturing industry for many years, leveraging
key positions at Accenture. His previous book “<a href="https://www.amazon.com/Industry-X-0-Realizing-Digital-Industrial/dp/0749481463">Industry
X.0 : Realizing Digital Value in Industrial Sectors</a>” was already dedicated
to the digital transformation of the manufacturing world. “<a href="https://www.accenture.com/us-en/insights/industry-x-0/product-reinvention-book">Re-inventing
the product</a>” tells the story about what happens when companies have deployed
digital tools and connected product architectures, to transform these products
into platforms and start selling outcomes and experiences instead of products
and services (a simplistic but useful characterization being that B2B companies
are now selling outcomes and B2C companies are selling experiences). Digitization
transforms the value chain and moves value to the edges: the few who are the
world best-in-class with technology and the companies that control the
experiences. As always, digital transformation is about speed: Eric Schaeffer
quotes Haier, who is about to move from the capture of a new customer need to
the delivery of a new product in 30 days. This capacity is illustrated with a
wonderful story about understanding from failure analysis that customers in
Asia were using their washing machine to clean sweet potatoes, which lead to
the design and delivery of a new specialized – and more robust – product for
this very use.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<h2 style="text-align: left;">
<b><span lang="EN-US" style="line-height: 107%;"><span style="font-family: Verdana, sans-serif;">2. Reinventing the Product</span></span></b></h2>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_ee4GFIh7nqUYjDelL7DQYRoj0KbxnIj4wyXDJMQeZcI18iDg4VQV4I8UrhfYGjuZ2PR-7wsnohZ0fTqxb9aabmlxEJGoZspPtkDWOFtepVchuZHAVGvrfpscaGfGH3U7vq_z6gIhin8/s1600/ReinventingProduct.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="270" data-original-width="187" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_ee4GFIh7nqUYjDelL7DQYRoj0KbxnIj4wyXDJMQeZcI18iDg4VQV4I8UrhfYGjuZ2PR-7wsnohZ0fTqxb9aabmlxEJGoZspPtkDWOFtepVchuZHAVGvrfpscaGfGH3U7vq_z6gIhin8/s400/ReinventingProduct.jpg" width="277" /></a></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">This blog post is structured about “<a href="https://www.amazon.com/Reinventing-Product-Transform-Business-Digital/dp/0749484640">Reinventing
the Product – How to transform your business and create value in the digital</a>”.
<span style="mso-spacerun: yes;"> </span>I have sorted the key take-aways in six
subsections, that reflects both the relevance with my own product experience
and how well suited these principles and examples are to the challenges that I
can observe today. Thus, this is as usual a subjective and personal summary of
this book. “Re-inventing the product” is especially rich with figures and
diagram, which I will only describe briefly and will not reproduce. Therefore,
I strongly advise you to get your own copy of this book after reading this summary.
The authors have collected a very, very rich set of testimonies and quotes from
key industry players. I have selected a few in this blog post (which is,
therefore, not as short as I would have wished) but there is no way that I
could do justice to the breadth of scope of the work assembled by Eric
Schaeffer and David Sovie. This does not mean that the book covers all the
possible aspects of smart product design (it is much too large a scope). The
authors spend a lot of energy covering the interaction between software and
hardware design, but only mention briefly the “systems of systems” aspect of
modern products. In many cases, the “smart behavior” of a product is not the sum
of the embedded intelligent software components, but the emergent consequence
of “system of smart system” design.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<h3 style="margin-left: 18pt; text-align: left; text-indent: -18pt;">
<span style="font-family: Verdana, sans-serif;"><b><span lang="EN-US" style="line-height: 107%;"><span style="mso-list: Ignore;">2.1<span style="font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span></span></b><!--[endif]--><b><span lang="EN-US" style="line-height: 107%;">Products
in the digital age<o:p></o:p></span></b></span></h3>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The authors start their analysis of smart and
connected product design with a useful two-dimension framework that illustrate
the rising importance of experience design and contextual intelligence of
products, thanks to the combination of connection to the environment and artificial
intelligence. They propose to name IQ and EQ the two axes of this analysis : “<i>Developing
smart connected products is a journey … we have boiled down this journey into
two key dimensions that are show on the Product Reinvention Grid … a product’s
Intelligence Quotient (IQ) – the level of smartness, connectedness and
cognitive intelligence – and it’s Experience Quotient (EQ), reflecting the
quality of experience it can offer</i>”.<span style="mso-spacerun: yes;">
</span>Smart connected products are more than the combination of embedded intelligence
and better design. The book proposes ten traits to characterize them : always
on, sensorized for awareness, AI-smart, hardware value amplified by software,
evergreen via update, digital age UI (user interface), Hyper-personalized, A
platform for multiple parties, embedded in ecosystems, digital continuity throughout
lifecycle (from design to recycling/grave). Evergreen is a critical concept here,
it means that the connected product keep constantly up-to-date and in synch
with its support software ecosystem, which is critical for cybersecurity. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">Digital continuity</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;"> is a key principle of Industry 4.0: it means
that the digital data that represents, and with associated with, a product will
follow the product throughout the product lifecycle, from design and
manufacturing to delivery and usage. This makes the digital framework a
collaborative platform for all company functions to work together, using the
digital representation as a shared object. This digital continuity is described
by the authors as “digital thread as an eternal umbilical cord”: “<i>The
brother, if you will, of the digital twin is the digital thread. It is the
umbilical cord of a smart connected product that is never cut once a device, coming
from complex multi-sourced delivery, has been released into the market</i>”. <a href="https://www.youtube.com/watch?v=SYH-cMuL7Y8">Olivier Ribet</a>, from Dassault
Systems, talks about the use of Digital Twin as a collaborative platform: “<i>The
technology used to model and simulate an experience end-to-end makes you fast
as creator and manager of a product. It orchestrates every step and weeds out
processes that you do not need. It also can cut out a lot of linearity. So,
designers, engineers, factory workers, distributors and marketers all work with
one single version of the truth</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">When they become smart and connected, products become
parts of large software ecosystems, a key idea that I will explain further
later on. This makes the choice of ecosystem a strategic decision for product companies:
“<i>In fact, a large part of the business leader’s management skills will be about
building or joining the right ecosystems. Businesses have two basic options
here: they suggest and create a partner ecosystem defining the way they work,
or they join an existing ecosystem that is already well established with widely
accepted software or hardware standards</i>”. The fact that software becomes a
critical part of product development means that the product development process
must evolve and adapt parts of software development methodologies, such as
agile development. The authors quote Steve Myers, the CEO of <a href="https://mindtribe.com/about-us/">Mindtribe</a> : “<i>Today there is still
a big gap between engineering and product development. Product development is
not taught in engineering schools and most engineers are developing products in
ways that seem rational and logical, but that don’t benefit from the many
lessons learned … my dream is to share what we have learned applying agile techniques
to hardware to enable every team developing a product to spend more of their time
developing things that matter to people and less time on things that don’t</i>.”<span style="mso-tab-count: 1;"> </span><br style="mso-special-character: line-break;" />
<!--[if !supportLineBreakNewLine]--></span></span></div>
<span style="font-family: Verdana, sans-serif;"><br style="mso-special-character: line-break;" /></span><br />
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">
<!--[endif]--><o:p></o:p></span></span><br />
<h3 style="text-align: left;">
<b><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">2.2 Start
with the customer</span></span></b></h3>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">Focusing on customer experience is a critical
landmark of digital transformation. As the authors point out, thinking about
experience is a quantum leap beyond designing for features and services. The
principle of experience design forces to become user centric and to focus on
the emotional aspect of the outcome, a combination of the perceived value
(valence) and the expected satisfaction (arousal) : “The perception of an
experience is formed by the interaction of the human with their environments
and consists of two emotional qualities, arousal and valence”. The focus on experience
design is critical to leverage the capabilities of digital to deliver
personalized journeys. The analysis of customer journeys deliver the context
that is necessary for successful experience design: “<i>The way products are designed,
engineered, manufactured and supported when in use will change. The work of
research and development teams will be less and less predictable as
manufacturers will be forced to embed new and not yet fully mature technologies
to keep up with fast moving consumer markets</i>”. Tesla is quoted as an
example of experience focus: “<i>one of the most important tasks for the car-maker’s
designers is the development of the user interfaces integrating the vehicle
capabilities to a unique experience from the user”.</i><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><i><br /></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">This no longer a requirement for B2C companies
only, B2B companies need to embrace customer journeys and experience design: “<i>It
has long been well known that customer experience is top priority for consumer-facing
businesses. Now business-facing companies have started taking this seriously
too … This is clearly because they know mere product features and functions are
losing traction and the capacity to create traction in the marketplace</i>”. As
the authors point out, the product companies’ missions have moved from “understand
consumer usage & expected product attributes to design and live customer
experience journeys”. The book uses many concepts, principles and techniques
that one would find in digital service design methods such as <a href="https://informationsystemsbiology.blogspot.com/2017/09/hacking-growth-when-lean-management.html">growth
hacking</a>. For instance, tracking “<a href="https://www.appcues.com/blog/aha-moment-guide">aha moments</a>”: “<i>Leading
companies identify what we refer to as the key ‘moments that matter” across the
customer journey</i>”. Experience design now applied to B2B companies: “<i>This
has created a new and special discipline – experience engineering – focused on
designing, creating and managing products while they are in use – with the
single goal to create an experience for maximum user satisfaction</i>”. Experience
design for B2B companies it is actually harder: “<i>In the B2B world the
experience happens at enterprise levels. There are multiple touchpoint in parallel,
which makes the experience much more complex to manage</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The “<a href="https://informationsystemsbiology.blogspot.com/2017/06/digital-experience-factories.html">Customer
Feedback Learning Loop</a>” (CFLL) is a key concept linked with the digital transformation.<span style="mso-spacerun: yes;"> </span>CFLL is about learning from the customers, using
three paths: the explicit (conversation), implicit (analytics) and social
(communities) ways. There are multiple examples of CFLL described in this book,
especially at Tesla. A Tesla manager says: “<i>Continuous monitoring of real-world
performance and usage data allows product makers to see and fix design problems
that testing missed</i>”. I mentioned the Haier example earlier in the introduction.
Samsung tells a similar story about continuous design of products thanks to
customer feedback: “<i>Consumer listening is an important part of innovating
home appliances. We do have data analytics teams. We have teams doing core
research. We have teams who improve data analytics algorithms. We employ
specialists looking into the data to come up with usage insights</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<h3 style="text-align: left;">
<b><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">2.3 Software
is eating the product</span></span></b></h3>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The authors have a saying, “software is eating
hardware, and digital is eating software”, which says that digital has brought
a new way of producing software, together with new software capabilities, which
have a huge impact on smart and connected products. When they talk about “digital
software skills”, they mean for instance: design thinking, scrum masters, AI
experts, product managers or cloud architects. Software becomes a critical
component of product design: “<i>The product architecture is becoming software-driven,
which needs to be reflected in the overall product engineering approach</i>”. This
includes software engineering “inside the box” and “outside the box” (product
as a platform that is part of an ecosystem). To succeed with this new
challenge, it is critical to integrate hardware and software engineering. The book
provides this quote from <a href="https://www.ptc.com/en/blog-authors/Jim-Heppelmann">James Heppelmann</a>,
the CEO of PTC : “<i>The engineering teams don’t know that much about the data
concerns, the security concerns, the failover concerns and the cloud analytics
capability of the business. … The IT people within the organization know a lot
about that, but they never have been involved in a product delivery process</i>”.
A similar thinking is found with Dassault Systems: “<i>That is the essential
logic behind these technologies. From the first day you think about a smart
connected product, you don’t want to separate development and engineering from
product usage and ultimately the end-to-end experience it provides</i>”. One of
the key reasons for this tight integration is the need for speed: “<i>The most
important challenge is getting enough speed. Software can so quickly be changed
and pushed into the market via downloads. The same pace is hard to achieve on
the hardware side</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">Since software is eating the product, information
systems classical strategic issues, such as modular architecture or data exchange
infrastructure, becomes part of smart product design strategies as well. A key
message from the authors is to look at software companies to import their best
practices: “<i>experts from software-making companies are role models for the
more traditional product-making companies</i>”. The book makes a few references
to the common bimodal architecture pattern (system of records vs system of engagement,
or CORE vs FAST IT). The authors insist on the importance of common, shared
data models: “<i>The data models used by the vast majority of product companies
are decades old, and fundamentally ill-equipped for smart connected product world</i>”.
Shared data models are the necessary foundations to make data circulate between
different roles and functions, which is the only way to extract all the value
from the data that digitalization has produced. This is still a major challenge
for many companies: “<i>Today most companies are far, far away from such a
unified business model. In a recent study, over 50 per cent of product companies
reported having over 20 different product systems</i>”. This deep (and business-focused)
work on common business objects models is necessary to implement a company-wide
version of the digital twin: “<i>The digital twin is a complete digital
representation of a physical product, including not only 3D modelling, but also
the material properties, the software and data. The digital twin becomes the
single version of the truth of all product-related master data</i>”.<span style="mso-spacerun: yes;"> </span><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">Mastering the software engineering skills and
the software development process is a way to leverage digital transformation
towards a massive (10x) improvement in product development efficiency. The
following is a simplified version of Figure 8.3 of the book.<o:p></o:p></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhot0Ib7j-cK7xRynvdM7HTfPpefojVaB1in7Mw6NA_4ylmHPe0EF5iF5NRwe5PwlAMP_Mr9edWaWRb4qEHQRexWauf385CXDFpO-GldKzK2c4WXRM_AtpD-c9Y8ykuQFZSFu-nDnwQjHE/s1600/DessinDigitalFactor.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="447" data-original-width="463" height="385" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhot0Ib7j-cK7xRynvdM7HTfPpefojVaB1in7Mw6NA_4ylmHPe0EF5iF5NRwe5PwlAMP_Mr9edWaWRb4qEHQRexWauf385CXDFpO-GldKzK2c4WXRM_AtpD-c9Y8ykuQFZSFu-nDnwQjHE/s400/DessinDigitalFactor.jpg" width="400" /></a></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<h3 style="margin-left: 18pt; text-align: left; text-indent: -18pt;">
<span style="font-family: Verdana, sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">2.4<span style="font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span></span></b><!--[endif]--><b><span lang="EN-US" style="mso-ansi-language: EN-US;">AI is eating software<o:p></o:p></span></b></span></h3>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">As explained earlier, software development in the
digital age is evolving rapidly. This book, like <a href="http://informationsystemsbiology.blogspot.com/2018/04/artificial-intelligence-applications.html">many
other great books that I have reviewed in this blog</a>, clearly sees AI as a modality
of software systems. Digitization has created the foundations that makes it
possible to derive smart algorithms that are curated from the data that was
collected : “<i>More broadly, what has happened is this : over decades, in both
hardware products, manufacturing method, electronic, micro-electronic and digital
technologies have grown in importance, laying the foundations for increasing level
of software. This in turn has created a bedrock for Artificial Intelligence</i>”.<span style="mso-spacerun: yes;"> </span>AI gives product designers the ability to
develop smart and adaptative behaviors, at different scales (from product
components to systems). Although smart connected products can leverage remote intelligence
from back-end support systems, not everything happens in the cloud; embedded
smart software gives smart products more flexibility and resilience : “<i>AI-driven
software is to be embedded to make the hardware intelligent while operating in
the field</i>”. The same idea is developed by Rajen Seth from Google: “<i>It is
clear that there will be multiple layers where intelligence can reside. It can
sit at sensor level or at a product level. It can sit of an edge device such as
a server in a retail store or on a mobile base station and if course it can
reside in the cloud</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">This transformation to AI-driven software is not
<a href="http://informationsystemsbiology.blogspot.com/2018/12/what-todays-ai-can-and-cannot-do-part-1.html">without
challenges</a>: “<i>Major challenges for industrial manufacturers when
embedding AI and digital technology in their product and services are : Data
quality, Data/cyber security, the choice of making vs. partnering</i>”. Agile organizations,
and the close collaboration of engineering, product, business and data science
skills is necessary to deliver value from AI algorithms: “<i>Self-organizing,
product-focused teams sit at the core of development activities around smart
connected products. Only they can muster the agility for quick regrouping that
is needed when products are so closely connected to their makers</i>”. According
to the authors, most operators in smart factories welcome this transformation towards
digital manufacturing and smart products : “<i>A 2018 global study, based on a
survey of 14000 workers … found that 68% of highly skilled workers and nearly
half of their lower-skilled peers speaking positively about the impact intelligent
technologies will have on their work</i>”. Although the will to leverage AI to improve
products see to be ubiquitous, the book points out that many companies are
lagging behind their implementation strategy : “<i>So, belief is not the issue –
yet many industrial players still seem to struggle to realize their AI dreams.
Although most know they need to change, only 24 per cent recognize that digital
reinvention drives their top- as well as bottom-line growth … Product companies
need an increased sense of urgency to build AI capabilities and embed them in
their product and experience roadmap</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
<b><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">2.5 The power of platforms</span></span></b></h3>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">A key idea of the book is that platforms play the
role of a fulcrum to leverage the energy and contribution of other players: “<i>the
rise of the smart connected product is part and parcel with the development of seamless
ecosystems that make life less stress from for users and more customized to the
needs of the individual “. </i>The book addresses briefly the strength of
platforms and the network effects: <span style="mso-spacerun: yes;"> </span>“All
successful platforms create what are called network effects where the value of the
platform increases as the number of users and the usage increases”, although I
would suggest that <a href="http://organisationarchitecture.blogspot.com/2019/07/plateformes-digitales-de-la-boite.html">other
books give a much deeper view on the topic of platforms</a>. What matters the
most is that the platform is not a prerequisite but an asset that emerges as a
co-development of the product: “<i>The emergence of the product as a flexible and
living platform goes hand in hand with the emergence of the ecosystem that builds
organically around it</i>”. <span style="mso-spacerun: yes;"> </span>Tesla gives
many great examples of this platform vision: “<i>Smart connected products all
have a platform character in my view. In many cases they are not one single
platform but a portfolio of platforms</i>”. One of Tesla manager offers this
great quote: “<i>Tesla absolutely views itself as a platform company and
regularly published software updates that fundamentally upgrade the car … The
same Tesla car a customer acquired in 2013 is today a much better car that it
was when it was bought – due to permanent software updates</i>”. The authors
underline here to move from aging products to evergreen products.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The book gives multiple examples of types of
platforms: Marketplace Platforms, Social & collaboration platforms, Sharing
Platforms, IoT platforms and Developer Platforms. It then illustrate the
platform approach with many examples, such as Ford who is building the <a href="https://www.drivesweden.net/en/ford-builds-mobility-platform-connect-mobility-services-smart-cities"><span style="mso-field-code: " HYPERLINK \0022•%09https\:\/www\.drivesweden\.net\/en\/ford-builds-mobility-platform-connect-mobility-services-smart-cities\0022 ";">Transport
Mobility Cloud</span></a>, a platform of mobility services for smart cities, a in
a joint effort with Autonomic. The book proposed many other examples, such as: <a href="https://www.ge.com/digital/iiot-platform">GE Predix</a>, <a href="https://www.se.com/ww/en/work/campaign/innovation/power-distribution.jsp">Schneider
EcoStruxture Power</a>, <a href="https://medium.com/harvard-business-school-digital-initiative/from-product-to-platform-john-deere-revolutionizes-farming-14dc8b4e791f">MyJohn
Deere</a>, <a href="https://www.faurecia.com/en/innovation/smart-life-board/cockpit-intelligence-platform">Faurecia
Cockpit Intelligence Platform</a> or <span style="mso-spacerun: yes;"> </span><a href="http://www.haier.net/en/about_haier/news/201807/t20180725_412004.shtml">Haier
Cosmoplat</a>. <span style="mso-spacerun: yes;"> </span>Building a platform
requires careful strategic positioning to make sure that a company known who it
can count as allies and which other platforms they may be competing against: “<i>Our
view is that all product-based platform companies need to have a clear friend-or-foe
strategy when it comes to defining their relationship to the Internet platform
titans and other rivals</i>”. The book includes some 2017 numbers about R&D
spending from the better-known company (Amazon B$ 22.6, Google B$ 16.6, Samsung
B$ 14.9, Volkswagen B$ 14.8, Microsoft B$ 13.9, Huawei B$ 13.3, Intel B$ 13.1,
Apple B$12.1), to illustrate the importance to think carefully about the
leading ecosystems and the need to leverage the strength of the major tech companies.
Patrick Koller, CEO of Faurecia explains the importance of understanding your
position in the global ecosystem: “<i>As a system integrator we understand the
full value chain of the cockpit of the future. So we can identify points where
it does not make sense for us to invest on our own because the entry cost are
too high and because you would anyway have world leaders, with stronger market
positions on hand you could partner with, who are recognized experts in these
domains</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">Not all software aspects in a smart product
need to be seen as a platform, especially since cyber-security is of the most
important challenge of smart product design. Steve Myers has this to say when he
is asked about the most urgent topics to be tackled in a smart product world: “<i>Product
security comes to my mind; it is a really big deal in any IoT landscape. It is
very easy to overlook all the different ways your product needs to be secure.
We, as well as our clients, have to build more skills into product security; that
is why we work with outside security auditors to review potential weaknesses</i>”.
<span style="mso-spacerun: yes;"> </span>The need for security means that some
aspects of the product software need to be kept proprietary. The authors recall
the following testimony from a Caterpillar engineer: “<i>We keep the system
closed. In that regard our connected machinery is not a platform concept. We
are not creating a Linux solution open to third parties when we create an expert
system for a building project. The main reason is operational safety on the side,
but another reason is data safety, as attempts have already been made to hack into
construction equipment. In that light it is better to keep our systems closed
and thoroughly encrypted</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<h3 style="text-align: left;">
<b><span style="font-family: Verdana, sans-serif;">2.6 Enterprise transformation </span></b></h3>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">Reinventing the product is a transformation
journey for most companies. We have already seen it implicitly throughout the
previous sections, to design, to build and to operate new smart connected products
that deliver the expected outcomes and experiences, companies also need to re-invent
themselves: “<i>The move to “as a service” is an enterprise-wide challenge,
based on five pillars : Business and product strategy, Enterprise operating
model, Product & Experience Innovation process, Shared Product platform,
Agile Workforce”</i>.<span style="mso-spacerun: yes;"> </span>The Haier company has
completely reorganized itself, with a spectacular reduction of management to
move from a consolidated and uniform group to a federation of one thousand smaller
product companies. These new forms of organizations need to accommodate new ways
of working and to be more attractive for top talents: “<i>Top talent is
likewise vital for delivering top-class experiences. And, as we have shown, to retain
the best personnel, organizations must deliver an engaging work experience</i>”.
As we showed in Section 2.2, re-inventing the product means rethinking the role
of the customer. As mentioned by a Tesla manager, a smart product like the
Tesla car finds itself in a permanent optimization mode : “<i>Due to its
quality as a smart and connected product, you can follow in a meticulous way
how the product is being used. You see which features are more relevant to the
customer and which are not. You can adjust interfaces along their actual usage
patterns. You can prioritize features that are most commonly used and deprioritize
that that are less used</i>”.<o:p></o:p></span></span></div>
<div class="MsoListParagraph" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">Smart product companies need to organize themselves
to bring together multiple forms of skill and engineering, such has hardware, software
engineering, design, operations and data management. The following quote from a
Tesla manager is a great blueprint for such an organization: “<i>There is the universal
recognition that all three engineering components that deliver the final
product are equally important and need maximum dedication. There is the physical
product itself, the combination of hardware and software that provides the
operation of the vehicle. Then there is the development of the user interfaces
integrating the vehicle’s capabilities to a unique user experience for the user.
And then there is thirdly the back-end infrastructure that monitors, manages
and enhances the fleet of products in the field, enables improvement via
software updates and operates the data collection. Tesla recognizes that all
three need to be executed extremely well; most companies don’t yet have that
done</i>”. The book makes a few references to <a href="https://www.openexo.com/exponential-organizations-book">exponential organizations</a>,
as described by Salim Ismael : “<i>To bring exponential organizations to life
requires diverse, complementary teams and smart systemic steering. But once
this has been achieved, they can be 10 times faster, better and cost-effective
compared to their rivals</i>”. Without any surprise, the need for
experimentations is a cornerstone of smart product companies, as illustrated by
this quote from Jeff Bezos : “<i>If you double the number of experiments you do
per year, you are going to double your inventiveness</i>”, which is very similar
to Thomas j. Watson famous quote: “<i>If you want to increase your success
rate, double your failure rate</i>”. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">There is no standard recipe to design the perfect
organization for the product company of the future: “<i>While there are
standard components and skills required for a digital innovation factory, there
is no standard organizational model. Every company must create its own, based
on its existing position within the product evolution space and its ambition
for the future</i>”. However, the need for intense communication, colocation of various expertise and deep collaboration is quoted by most successful product
companies. Tesla advocates for the use of one-roof organizations, which reminds
me of the same expression that we borrowed at Bouygues Telecom ten years ago
when we launched ourselves into the challenge of designing our own set top boxes:
“<i>The need for improved coordination across all the various business
functions increases dramatically in the as-as-service world</i>”. This last
quote is a pivotal sentence to understand the rise of the networked model of
organizations. A Tesla manager says that “<i>Elon Must actively encourages engineer-to-engineer
communication and strongly discourages hierarchical communication</i>”. Rich Lerz,
the CEO of Nytec, has strong words about the need for colocation for designing
the next generation of connected smart products: “<i>The breadth of skills needed
for these new future-generation products is very broad, and we found that we
needed to house all these skills in the same physical location. All members of
the team work along every step of the product lifecycle together, from ideation
to prototyping to the manufacturing ramp using the same agile integration
development methodology</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<h2 style="text-align: left;">
<b><span lang="EN-US" style="line-height: 107%;"><span style="font-family: Verdana, sans-serif;">3. Conclusion </span></span></b></h2>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">I will
conclude this blog post with the key take-aways that I take from reading –
twice – this book. The following list is even more personal and biased with my
own experience than the rest of this post. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: left;">
</div>
<ol style="text-align: left;">
<li><span style="font-family: Verdana, sans-serif; text-indent: -18pt;">Product development in the digital
world is a continuous and iterative approach, based on short customer-centric learning
loops.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">A product digital twin is a
knowledge engineering collaborative platform that unites multiples teams
through out the lifecycle of the product with a shared “single point of truth”.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The massive use of real-time data
from multiple sources, together with a new generation of AI algorithms based on
machine learning, makes it possible to dynamically optimize operations even
when forecasting is not possible.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Experience design plays a critical
role in the success of designing and developing successful connected smart products.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The ability to collect data in a transverse
manner from all functions in a company, throughout the product lifecycle, stems
from the existence of a unique, shared data model. Data collection is a continuous
cycle, since there is more value in future data than data from the past.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Software engineering and information
systems make the backbone of smart connected products. Their role is to allow
the enterprise to leverage the continuous flow of digital technology innovation.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Success in the world of digital products
and experiences is a race to continuous learning. Designing the right
organization, securing the access to powerful computing resources and extensive
data flows are key factors to improve the speed of learning.</span></li>
</ol>
<br />
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 18pt; text-align: left;">
<br /></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 18pt; text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br />
<!--[if !supportLineBreakNewLine]-->
<!--[endif]--><o:p></o:p></span></div>
<br /></div>
Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com0tag:blogger.com,1999:blog-438942112364524044.post-14513739251025877012019-06-30T07:45:00.002-07:002019-06-30T07:45:31.072-07:00The Future of Work and the Transformation of Jobs<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 25.68px;"><span style="font-family: "verdana" , sans-serif;">1. Introduction</span></span></b></h2>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">Today I return to the “<a href="https://www.ifow.org/">future of work</a>” topic, especially in the face of automation, from robots to AI services. I have already written about the future of work, <a href="https://organisationarchitecture.blogspot.com/2016/11/le-futur-du-travail-et-la-mutation-des.html">in my other blog</a>, a piece that was reproduced in the <a href="https://www.frenchweb.fr/le-futur-du-travail-et-la-mutation-des-emplois/267902">Frenchweb.fr website</a>. During the last 3 years, I have given multiple talks about the future of work and engaged with various audiences. I have found that some of my arguments needed rewriting or better explanations to be understood. During the same three years, we have witnessed numerous examples <a href="https://www.theguardian.com/technology/2019/jun/02/the-five-robot-farmers-labour-shortages-harvest-fieldwork-robotics-iron-ox-ecorobotix-farmbot">of the continuous progress of automation</a>. What I have seen in the technology field has strengthened my conviction that a really big shift is coming: automation in the next two decades will transform the word. <a href="https://informationsystemsbiology.blogspot.com/2018/12/what-todays-ai-can-and-cannot-do-part-1.html">The AI revolution has started</a>, but the real consequences will occur as the component AI technologies are assembled into systems of systems, such as robots.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">This post has a similar structure and thesis than the previous one. It is both more concise and deeper; I will focus on what are usually the most heated topics of discussion when I present this content:</span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;"><br /></span></div>
<div class="MsoListParagraphCxSpFirst" style="text-indent: -18pt;">
</div>
<ul style="text-align: left;">
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;"> </span><b style="font-family: Verdana, sans-serif; text-indent: -18pt;">Universal Basic Income</b><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">, and what forms it could take to open a wide area of micro-entrepreneurship opportunities without been perceived as an invitation to idleness</span></li>
<li><b style="font-family: Verdana, sans-serif; text-indent: -18pt;">The power of localization</b><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;"> and multi-scale interaction-based business opportunity. Automation will dramatically transform the landscape of value creation opportunities. What can be automated and digitalized will fall into concentration cycles while activities that require physical interaction will undergo a localization trend (for many reasons, including climate change and the scarcity of natural resources).</span></li>
<li><b style="font-family: Verdana, sans-serif; text-indent: -18pt;">The network between large scale multi-national companies that act as a platform and a marketplace of very small players</b><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">. This mesh is the real content of the blog post, i.e., the future of work.</span></li>
<li><b style="font-family: Verdana, sans-serif; text-indent: -18pt;">The constant rise of complexity and uncertainty does not lead to the complete domination of marketplaces over integrated companies</b><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">. If the “uberization” of complicated tasks is definite trend that merges with automation, the rising complexity of other tasks require integration (communication and collaboration).</span></li>
</ul>
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQfRaGsEE6R_AWTwzIGPcmXDkSy-530P4Nb9dl8iOAIv3VleOmm7vkDqd2NxZ7tl0httkqPirwypPbwp_nYVUimfSeujXCeLrZNGYv4s0V1DhOjasfO4mFS0FcToW4V1uJ9p-Fp_P8BXg/s1600/RiseOfRobots.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="881" data-original-width="575" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQfRaGsEE6R_AWTwzIGPcmXDkSy-530P4Nb9dl8iOAIv3VleOmm7vkDqd2NxZ7tl0httkqPirwypPbwp_nYVUimfSeujXCeLrZNGYv4s0V1DhOjasfO4mFS0FcToW4V1uJ9p-Fp_P8BXg/s320/RiseOfRobots.jpg" width="208" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">Since I wrote my last blogpost, I read Martin Ford’s book: “<a href="https://en.wikipedia.org/wiki/Rise_of_the_Robots_(book)">Rise of the Robots: Technology and the Threat of a Jobless Future</a>” and found that there was a striking similarity to my own way of thinking. I do not plan to write a summary but I wholeheartedly recommend the reading of this book, and the more recent one “<a href="http://book.mfordfuture.com/">AI : Architects of Intelligence</a>” which is crucially relevant to the topics being discussed here.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">This post is organized as follows. Section 2 states the problem: the probable massive job destruction due to automation, because of smarter robots and artificial intelligence. Although it is very hard to make forecast and to pinpoint a date where so many jobs would disappear, it is very likely that the compounded progresses of AI and robots will yield more job destructions than job creations. This will shift the nature of most future jobs towards what is “better left to human”: managing emotion and embodied interaction. Section 3 tries to describe what jobs and companies would look like when this AI/robotic/digital transformation is completed. My lines of thoughts follow the model of “<a href="https://fr.wikipedia.org/wiki/Iconomie">iconomy</a>”, the state where the economy has absorbed the full benefits of information technology. Section 4 looks at the transition from today’s economy towards what might be considered as a positive future reconciled with technology. Even if we subscribe to a positive and optimistic outlook to what AI, automation and digital will create, the transition is risky at best. This last part makes a few proposals about what society should do to protect its citizen from too much brutality with the emergence of a new world.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 25.68px;"><span style="font-family: "verdana" , sans-serif;">2. Automatization, AI and Job Destruction</span></span></b></h2>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 17.12px;"><span style="font-family: "verdana" , sans-serif;"><br style="mso-special-character: line-break;" /></span></span></b></div>
<div style="height: 0px;">
<span style="font-family: "verdana" , sans-serif;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 17.12px;"><br style="mso-special-character: line-break;" /></span></b><span lang="EN-US" style="line-height: 17.12px;"><br style="mso-special-character: line-break;" /></span><span lang="EN-US" style="mso-ansi-language: EN-US;"><br style="mso-special-character: line-break;" /></span><br />x</span></div>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 17.12px;"><span style="font-family: "verdana" , sans-serif;"><o:p></o:p></span></span></b><br />
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;"><span style="font-family: "verdana" , sans-serif;">2.1 The technology revolution is destroying more jobs than creating new ones</span></span></b></h3>
<div>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 17.12px;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">The issue of forecasting how many jobs are at stake is quite controversial; according to the Frey/Osborne report 47% of jobs are at risk within a few decades</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">. There has been has been so many <a href="https://arxiv.org/pdf/1604.08823.pdf">discussions</a> about the 2013 report “<a href="https://www.oxfordmartin.ox.ac.uk/downloads/academic/The_Future_of_Employment.pdf">The future of employment: how susceptible are job to computerization?</a>” from <span style="mso-spacerun: yes;"> </span>Carl B. Frey and Michael A. Osborne that I won’t say much more that the fact that I share their viewpoint. This forecast is not precisely set up in the future, and it takes into account the continuous progress of automation technology. Most of the people who look hard at what automation is likely to bring in the next decades, such as <a href="https://en.wikipedia.org/wiki/Andrew_McAfee">Andrew McAffee</a>, <a href="https://mitsloan.mit.edu/faculty/directory/erik-brynjolfsson">Eric Brynjolfsson</a> or <a href="https://en.wikipedia.org/wiki/Martin_Ford_(author)">Martin Ford</a> come up with similar conclusions. <a href="https://www.oecd.org/employment/Employment-Outlook-2019-Highlight-EN.pdf">The OCDE has taken a different perspective</a>, where <a href="https://www.bbc.com/news/technology-43618620">much fewer jobs seem to be at stake</a>, but their conservative analysis is based on the state of technology today. This may be seen as a safe forecasting approach, but I think that it misses the point and I prefer the viewpoint of technology futurists, even though it is by construction more speculative.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">If we avoid trying to pinpoint a precise date, the compounded effect of automation is likely to touch as much as 50% of todays’ jobs. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">Once we understand that we are talking about tomorrow’s AI and automation capabilities, it becomes clear that it is hard to be specific about the “when”. Another defensive way of thinking that came along in the past few years says that automation will eliminate tasks, not jobs. More precisely, many tasks could be automated, but the jobs would still be necessary because some of it could not be automated for a long time. This is certainly true, but somehow naïve. Once many tasks are automated, the machine is much faster, and companies need fewer humans for doing the jobs. This has been the story of automation in the past centuries.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">Factories with almost no humans are already here for stable and decomposable processes; AI is a complexity absorber and will extend the field of what can be done without human intervention. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">This mega trend of full automation is important: it supports putting back the factories closer to the consumers and because of the geopolitical consequences (great equalizer of the worldwide salary differences). There are already a number of those factories – I visited a Sharp LCD factory 10 years ago with close to no human operators – but the upcoming revolution of AI, machine vision and smarter robots with better sensors will grow in a spectacular manner the scope of what we can produce with these robotized factories.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;"><span style="font-family: "verdana" , sans-serif;">2.2 It will take time to remove humans from processes</span></span></b></h3>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">The path to automation is complex and hard to forecast</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">. Foxconn gives us a good example since <a href="https://www.extremetech.com/electronics/185960-foxconn-is-attempting-to-replace-its-human-workers-with-thousands-of-robots">they announced to the word in 2014 that they would replace their human workers with 1 million robots</a> within 3 years, which has not happened. There are many Kiva robots in Amazon’s warehouse, but <a href="https://www.geekwire.com/2018/amazon-tops-600k-worldwide-employees-1st-time-13-jump-year-ago/">there are also many humans</a> because, for the time being, they do a better and cheaper job than robots when packing into boxes. Deep Learning is doing a great job at machine vision and complex sorted tasks, but only when the goal is well defined and stable.<span style="mso-spacerun: yes;"> </span>When “common sense” is required to do a lot of menial tasks, humans are still the way to go.</span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifSEccs8nueX6gxgvBkZ7EtMTIkRjVFKWDNVJPV6cSHAm9MCrr3zRyPnB0UZ2_L0o4XSY_WLEt4DxNgSsmnC8Q6U8JSqeoBNAN5KoViMElhT5kKImBfnI2tUqex1PDhZ1cLsT3w992Gig/s1600/SecondMachineAge.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="274" data-original-width="184" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifSEccs8nueX6gxgvBkZ7EtMTIkRjVFKWDNVJPV6cSHAm9MCrr3zRyPnB0UZ2_L0o4XSY_WLEt4DxNgSsmnC8Q6U8JSqeoBNAN5KoViMElhT5kKImBfnI2tUqex1PDhZ1cLsT3w992Gig/s1600/SecondMachineAge.jpeg" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">As a consequence of the current state of AI, it is more likely that specialized jobs will be automated before generic ones. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">This is beautifully explained by Brynjolfsson and McAffee in their book : “The second machine age” with the following quote : “<i>As the cognitive scientist Steven Pinker puts it, “The main lesson of thirty-five years of AI research is that the hard problems are easy and the easy problems are hard. . . . As the new generation of intelligent devices appears, it will be the stock analysts and petrochemical engineers and parole board members who are in danger of being replaced by machines. The gardeners, receptionists, and cooks are secure in their jobs for decades to come</i>.” I heard exactly the same message at the Singularity University where I attended their great executive program in 2016: <span style="mso-spacerun: yes;"> </span>automation starts with expert jobs, because <a href="https://informationsystemsbiology.blogspot.com/2018/04/artificial-intelligence-applications.html">AI today is quite narrow</a>.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">The emphasizes on robots that will replace humans is misplaced: the whole environment will become smart (sensors, network, ML, AI) and the increased efficiency will gradually reduce the number of jobs</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">. Another lesson from the Singularity University curriculum is not to focus only on AI and software, but also on the NBIC progresses that translate into tremendous improvement of sensors, networks and manufacturing devices. The first step of the automation, where a big robot is installed to take your job and to replace you has already happened. What is coming now is much more subtle: the complete environment around you becomes a robot that assist you – a form of ubiquitous robotisation. Thanks to smart technologies, all your tools and environment become smart and adaptive to help you do a better job.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<h3 style="text-align: left;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p><span style="font-family: "verdana" , sans-serif;"> </span></o:p></span><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;"><span style="font-family: "verdana" , sans-serif;">2.3 A new job landscape</span></span></b></h3>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="background: white; color: black;">McKinsey sees the future of production in the hands of robots, transactions performed by Artificial Intelligence and interaction left to human</span></b><span lang="EN-US" style="background: white; color: black;">. For the past few years, I have been quoting heavily the great article « <a href="http://www.mckinsey.com/insights/organization/preparing_for_a_new_era_of_work"><span style="color: #6728b2;">Preparing</span></a><a href="http://www.mckinsey.com/insights/organization/preparing_for_a_new_era_of_work"><span style="color: #6728b2;"> for a new </span></a><a href="http://www.mckinsey.com/insights/organization/preparing_for_a_new_era_of_work"><span style="color: #6728b2;">era</span></a><a href="http://www.mckinsey.com/insights/organization/preparing_for_a_new_era_of_work"><span style="color: #6728b2;"> of </span></a><a href="http://www.mckinsey.com/insights/organization/preparing_for_a_new_era_of_work"><span style="color: #6728b2;">work</span></a><a href="http://www.mckinsey.com/insights/organization/preparing_for_a_new_era_of_work"><span style="color: #6728b2;"> </span></a>» from Susan Lund, James Manyika et Sree Ramaswamy at the McKinsey Institute. They propose a simple yet powerful framework where jobs are separated into three groups: production, transaction and interaction. These are not absolute categories, there is an amount of overlap, but they do work : production is manufacturing, focused on products, transaction is a an umbrella for large class of services, from customer service to financial services, and interaction here means an experience that requires the use of your body to carry emotions. For instance, a chatbot that answers your queries is seen as a service, not an interaction (obviously debatable, but it helps with what follows). The framework proposed by the article can be summarized as: jobs in the production sectors will move to robots, jobs in the transaction sector will be performed by artificial intelligence and the interaction sector is where human will continue to add value</span><span lang="EN-US" style="background: rgb(246, 246, 246); color: black;">.</span><span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="background: white; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-color-alt: windowtext;">A key insight is that what can be automated will eventually become a commodity thus the value is mostly in emotions and interactions. </span></b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-color-alt: windowtext;">This is not a new idea : it has been <span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;">brilliantly expressed by Daniel Pink in his bestseller, « <a href="http://www.danpink.com/books/whole-new-mind/"><span style="color: black; mso-color-alt: windowtext;">A Whole New Mind – Why Right-Brainers Will Rule The Future </span></a>», who see the jobs of tomorrow as driver by creativity, storytelling, design and emotions. He characterizes many of today high-value activities as left-brain activities, such as planning, computing, problem solving, which will fall into the realm of automation thanks to artificial intelligence.</span><span style="background: rgb(246, 246, 246);"> </span><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;">It is not a coincidence if the word “experience” has become the buzzword of business. In a world of abundance of intelligence and smart production, the experience proposed to the customer is the heart of differentiation. Anything else will become a commodity</span><span style="background: rgb(246, 246, 246);">.</span></span><span lang="EN-US" style="background: rgb(246, 246, 246);"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="background: white; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-color-alt: windowtext;"><span style="background: rgb(246, 246, 246);"><br /></span></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">What defines the economy of the next decades is the “experience” economy; Story telling will become the critical skills for most jobs</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">. It we think about the gardener that you may hire in 2040, she is probably going to use robots, such as an evolved version of the lawn mower that we see today or a more interesting hedge trimmer robot. She will leverage automated technology but the main service that she will propose will be storytelling, that is a discussion about your garden, how you live with it and what your aspirations are, from say, aesthetic delight to deep relaxation. The tremendous progress that we see today with deep learning (from vision to speech recognition) means that our interaction with smart robots and systems will evolve from “coding” to “conversing”. The gardener will not program her automated helpers, she will train them. The gardener example could be transposed to many “manual” interactions jobs: as the technology will become ubiquitous in the way the service is rendered, the weight of the emotions, the storytelling and the human connection will rise.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 25.68px;"><span style="font-family: "verdana" , sans-serif;">3. What the Future of Work Might Look Like</span></span></b></h2>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;"><o:p><span style="font-family: "verdana" , sans-serif;"> </span></o:p></span></b></h3>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;"><o:p><span style="font-family: "verdana" , sans-serif;"><br /></span></o:p></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;"><span style="font-family: "verdana" , sans-serif;">3.1 Why companies will continue to exist</span></span></b></h3>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">The rise of complexity and uncertainty creates new transaction costs, such as communication or training, which ensures the need for companies for many decades</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">.<span style="mso-spacerun: yes;"> </span>Coase’s <a href="https://en.wikipedia.org/wiki/Theory_of_the_firm">theory of the firm</a> tells that companies exists because of transaction costs. Some think that smart automation and digitalization will dramatically reduce these costs and produce massive “Uberization”: replacing companies with marketplaces. This is shortsighted, as explained by the book “<a href="https://www.howgoogleworks.net/">How Google works</a>”. Eric Schmidt explains that teams work better if their members live, play, eat and work together. <span style="mso-spacerun: yes;"> </span>There are many forms of “transaction costs” that will not disappear in the future, even with the prevalence of digital technologies. By definition “complexity” in tasks mean that communication and collaboration are required. These are “transaction” costs that give an advantage <a href="https://organisationarchitecture.blogspot.com/2016/01/bienvenue-dans-lere-du-management.html">to an integrated team over a virtual one</a>. The uncertainty and the constant change require a lot of constant learning (learning by doing, with trials and errors) that is another form of transaction cost: if one outsources the “trying”, the “learning from trying” occurs elsewhere.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNfv7qFQM1lM8tiUhs7AamHMh6jwHSPwhIbnoD6rNvawsDa6Vm7DSmNs_b08cK-Mot8eRoZRPqMP_ySKUZiNWIJGBHzk3uG76ixadBlb0U535-S-TJcNBl-rBIDLIwiCv01MSxm8lJimg/s1600/TheJoyOfWork.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="677" data-original-width="441" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNfv7qFQM1lM8tiUhs7AamHMh6jwHSPwhIbnoD6rNvawsDa6Vm7DSmNs_b08cK-Mot8eRoZRPqMP_ySKUZiNWIJGBHzk3uG76ixadBlb0U535-S-TJcNBl-rBIDLIwiCv01MSxm8lJimg/s320/TheJoyOfWork.jpg" width="207" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<b style="font-family: Verdana, sans-serif;">Tasks platforms/marketplaces require simple interfaces, event for tasks that are difficult to perform.</b><span lang="EN-US" style="font-family: "verdana" , sans-serif;"> Things that can be broken into individual components and then dealt with a marketplace are complicated, not complex (this is the definition of complexity). During the past 10 years I have read many articles about the future of work, that see the marketplace as the future dominant pattern and the (regular) integrated company as the exception. I totally disagree, because of the rising complexity, of both the products and services that companies are trying to deliver, but even more the complexity of the ecosystems that constitute the company’s environment. I see the rising attention given to “synchronicity” as a signal that the distributed, asynchronous marketplace model is too limited to be general. Synchronicity, that is the importance of using the same time structure and the necessity to reconnect frequently, is everywhere in the “new ways of working”, from the <a href="https://informationsystemsbiology.blogspot.com/2012/12/lean-scrum-agile-and-extreme-programming.html">SCRUM rituals</a> to the team structures of <a href="https://organisationarchitecture.blogspot.com/2015/03/entreprise-30-comment-sadapter-un.html">empowered organizations</a>. I strongly recommend reading Bruce Daisley’s book, “<a href="https://www.penguin.co.uk/books/111/1116519/the-joy-of-work/9781847942388.html">The Joy of Work</a>” to understand the importance of synchronicity in the face of complexity and uncertainty.</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">Our <a href="https://en.wikipedia.org/wiki/Volatility,_uncertainty,_complexity_and_ambiguity">VUCA</a> world is offering multiple opportunities for companies who can master complexity: there is a large world of opportunities that will open as technology progresses</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">. Companies will leverage AI to perform more complex projects, they will explore new frontiers, while those who can’t will be stuck to a red ocean of simpler commodity products and services. Somehow, the playground of future companies will be defined by the maximum amount of complexity that they will be able to manage. The introduction of AI, smart communication tools and smart sensitive environments that act as a <a href="https://en.wikipedia.org/wiki/Cobot">cobots</a>, will grow this capability continuously. Our teams in 2030, then in 2040, will have collaborative abilities that will be vastly enhanced by artificial intelligence. They will be able to solve challenges that require better synchronization, orchestration and communication.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;"><span style="font-family: "verdana" , sans-serif;">3.2 A Mesh of Platform Companies and Micro Companies</span></span></b></h3>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">Our way of working in large companies will change massively though the collaboration of AI and cognitive tools, as well as computer-aided collaboration: for instance, Google search will be dramatically more powerful in the decades to come</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">. We are only at the beginning of the journey since semantic tools search such as Watson are still primitive while speech recognition / translation tools are using pattern recognition through deep learning with little help from semantic tools. I am convinced that this will change within one, at most two, decades. The ubiquitous presence of smart assistants that are “really smart” will change completely the life of tomorrow’s knowledge workers. <a href="https://www.ted.com/talks/erik_brynjolfsson_the_key_to_growth_race_em_with_em_the_machines">As Erik Brynjolfsson points out</a>, we will work seamlessly together with the machines.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">AI will give rise to augmented collaboration</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">. The rise of complexity translates into the growth of the context that is necessary for collaboration. AI, as a complexity sponge, will reduce part of this context from explicit to implicit. Put in other words, it will become easier to collaborate with the mediation of a smart assistant. AI will massively increase the network effects of platforms. This is not a forecast; it has already happened: most platforms from Uber and Facebook to AirBnB already rely on smart matching algorithms. The increasing power and flexibility of future AI will mean that most companies will act as platforms and develop both internal and external networks of collaboration and partnership.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">Globalization and digitalization have a demonstrated concentration effect- what is often called “<a href="https://en.wikipedia.org/wiki/Matthew_effect">The Matthew effect</a>” : the winner takes all. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">This is a key idea from the creators of the “iconomy” concept such as Michel Volle. Digitalization and globalization tend to concentration. The more AI and automation are used, the more value creation is based on accumulated data, the more concentration is likely to occur. This has definitely occurred with the first wave of the digital economy, leading to the creation of the GAFAM and BATX, it could continue to spread as “software is eating the world”. Needless to say, this trend does not help with the destruction of jobs.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">The end game may be a group of few global actors, who open the opportunity of “last mile” customization using a platform approach with many small partners who are closer to the local constraints / needs / culture</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">. The creation of large platforms tends to produce ecosystems of small players that build bridges between the technical power of the centralized platform and the specialized needs of local markets. The Apple iPhone and the millions of apps is a good illustration. Even though Steve Jobs would have preferred to keep a walled garden of Apple-sanctioned apps, the App Store and its developer ecosystem has proven to be much more effective.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<h3 style="margin-left: 18pt; text-indent: -18pt;">
<span style="font-family: "verdana" , sans-serif;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;"><span style="mso-list: Ignore;">3.3<span style="font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: normal; line-height: normal;"> </span></span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;">A Human and Social Services Economy<o:p></o:p></span></b></span></h3>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 0cm; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">“Personal Services” economy is bound to grow: the territory is large because of population growth, global aging, and because many needs are underserved today</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">. Service-to-person is an “experience economy” including products (technology) and services (interaction). If we follow the analysis proposed by McKinsey, human interaction is the growth area for future economic services. Shifting from production to “personal services” is complex for many reasons. First, the jobs in the service economy such as welcoming customer at Home Depot or taking care of elderlies in a retirement home pay far less than the manufacturing jobs that are being replaced. Second, the skills and the value system – the way our society recognizes and value contributions – have to change dramatically in the decades to come for this shift to be accepted.<o:p></o:p></span></span></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 0cm; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">There is a long list of interaction services where humans are better suited than robots: restaurants, clothing, medicine, personal care, education, entertainment, art, law & order, etc</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">. These domains already provide a large share of the total amount of jobs, and there is room for growth because many needs are not served as well as they could. For most of these domains, there is a choice to be made. The associated jobs are not the best candidates for automation, both from a technical feasibility and a desirability point of view. <span style="mso-spacerun: yes;"> </span>We find a similar analysis in Erik Brynjolfsson and Andrew McAffee’s book:<span style="mso-spacerun: yes;"> </span>« <i>Results like these indicate that cooks, gardeners, repairmen, carpenters, dentists, and home health aides are not about to be replaced by machines in the short term</i> ». But, as we will discuss in the next section, this could change. Human interaction as a growth/replacement sector for employment will only occur if there is a strong political will to promote and protect it.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">States will have to solve the paradox of less public spending (because of growing deficits) with more public services (because states will need to play a role in the production to interaction transition). </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">Civil-servant jobs are clearly part of this “interaction domain”. <a href="https://www.theguardian.com/world/2019/feb/09/who-really-are-the-gilets-jaunes">The “Gilets jaunes” crisis in France</a> was a clear illustration of this tension between the need for cost reductions and the need for more local human interaction. It is easy to forecast that although the total budget of nation-states is under constraints, many of the human-facing jobs are here to stay, if only to avoid a massive social upheaval. If we look at the most under-served needs and the most pressing global factor, which is the aging of populations (in developed countries), states will be the major player in this job transformation. To put it bluntly, since there is no way to massively increase the salaries of the high-value, high-interaction jobs in personal care, there is a societal mandate to increase their recognition and social attractiveness.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">The future of personalized health may be an increase in the standard deviation, more than the mean, of life expectancy</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">. Mass medicine (vaccination, hygiene, procedures) helped move the mean upward for everyone in the 20<sup>th</sup> century, “4P” medicine (<a href="https://systemsbiology.org/research/p4-medicine/">predictive, preventive, personalized and participatory</a>) <span style="mso-spacerun: yes;"> </span>has a more complex/debatable outcome (we are not necessarily equally suited to benefit). This means that the aging economy may become more complex and that the concept of “retirement age” is hard to define. This is a debated topic and I have no claims to expertise or forecasting abilities. Yet there are now many signs <a href="https://www.kingsfund.org.uk/publications/stalling-life-expectancy-uk">that life expectancy is stalling</a>. It has also always been the case that life expectancy <a href="https://www.insee.fr/fr/statistiques/3319895">has a large standard deviation</a>, with many socio-economics factors. There are <a href="https://www.cbsnews.com/news/why-has-u-s-life-expectancy-stalled-out/">many possible causes for the life expectancy stalling</a>, but it looks like we are done with the systemic factors that applied to the whole population for improving our life expectancy and we are entering a time where progress is slow and specialized. Standard deviation had reduced in the past decades, but <a href="https://siepr.stanford.edu/research/publications/life-expectancy-inequality">it may also become more stable in the future</a>. NBIC technology improvements will improve our longevity, but this may not necessarily help <a href="https://www.nber.org/papers/w14093">the equal access to retirement benefits</a>. This is something that regulators must consider very carefully before deciding that everyone should work longer in the decades to come.<o:p></o:p></span></span></div>
<h3 style="margin-left: 18pt; text-indent: -18pt;">
<span style="font-family: "verdana" , sans-serif;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;"><br /></span></b></span></h3>
<h3 style="margin-left: 18pt; text-indent: -18pt;">
<span style="font-family: "verdana" , sans-serif;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;"><span style="mso-list: Ignore;">3.4<span style="font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: normal; line-height: normal;"> </span></span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;">Hyper-scale concentration and localized distribution<o:p></o:p></span></b></span></h3>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">Digital economy follows a concentration logic, but the interaction economy leads to geographical distribution of opportunities (trip versus value). </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">Because digital services are immaterial, there is the “winner takes all” effect that we mentioned earlier. However, interaction – in the restricted sense presented in Section 2.3 – requires the provider and the customer to meet, with one of them having to move. This creates a multi-scale geographic distribution: high value creation (because of talent, skill scarcity or fame) will justify longer trips yielding an “opportunity zone” that is large, whereas many lesser value creation opportunities will need to develop on smaller territories. This geographical structure is well known (it has been the basis for setting up shops in the past centuries), but it applies to many more activities than commerce.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">The value geography is a multi-scale distribution with lots of opportunities at the local and micro-local level. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">There is a “power law” of business opportunities with a “fat tail” as the attraction zone becomes smaller. If we take the classical example of a restaurant, the “attraction zone” varies according to the talent of the chef (and localization / fame / marketing / etc). An exceptional restaurant operates nationally, even internationally. A great restaurant works at a province level whereas a good restaurant works at the scale of a city. A mediocre restaurant plays on convenience and serves a neighborhood. In many countries, street cooking is available with a much smaller scale, with an even bigger focus on convenience over quality. The geographical nested structure yields the power law: there are few spots to become a Michelin-starred restaurant, but a huge amount of opportunities for neighborhood or street-cooking.<b><o:p></o:p></b></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">The value distribution of the “interaction economy” is sensitive to population density; this rule reinforces the urban concentration and creates a more stringent problem in rural area. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">This is a simple corollary of the geographical value distribution model. It explains why personal services thrive in an urban setting and in more densely populated area. It also explains why the damage of job destruction due to automation is more hardly felt in rural area (another lesson from the “Gilets jaunes” crisis in France). This leads us naturally to the next section and the need for regulation and incentives to free the micro-business opportunities for “interaction jobs” that may exist at the local level. Large cities may let the Darwinian play of evolution run the transformation from 20<sup>th</sup> century jobs to this new world of interaction jobs, but states need a framework to manage the transition in less densely populated areas.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US" style="line-height: 25.68px;">4. The Transition Challenge: How to Soften the Civilization Shift</span></span></h2>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US" style="line-height: 17.12px;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US" style="line-height: 17.12px;"><br /></span></span></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;"><span style="font-family: "verdana" , sans-serif;">4.1 The uncanny and dark valley of human-like robots</span></span></b></h3>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2vPr_SYrvaW_f9yD19AhSl1MtDgU8TJyRBU5OFtz2AsQlZWjXud_RvzlnfyZxx9cJinWfv3UCOq_lpfuvrVIEtGJwRQXSE0-0QEcfJ8d0xVwD49_ntZCCLknMZuo3iDfrTBsEcSI8jRI/s1600/RobotEricaJapan.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="720" data-original-width="1080" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2vPr_SYrvaW_f9yD19AhSl1MtDgU8TJyRBU5OFtz2AsQlZWjXud_RvzlnfyZxx9cJinWfv3UCOq_lpfuvrVIEtGJwRQXSE0-0QEcfJ8d0xVwD49_ntZCCLknMZuo3iDfrTBsEcSI8jRI/s320/RobotEricaJapan.jpg" width="320" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">Human-like interaction is perfectly accessible to robots; as a matter of fact, it is one of the “hot” areas of robotics. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">The rise <a href="https://www.usatoday.com/story/tech/talkingtech/2018/02/19/erica-humanoid-robot-chatty-but-still-has-lot-learn/352281002/">of companion robots in Japan</a> (and Asia at large) shows that human interaction is definitely a possible field for robots. Japan is working very hard on companion robots because of its age pyramid imbalance, but we can expect to see multiple similar developments everywhere, because developing interactions between human and robots is both possible and exciting. It is surprisingly easy because we are easy to fool. Our <a href="https://en.wikipedia.org/wiki/Mirror_neuron">mirror neurons</a> are very quick at projecting emotions on an artificial head with the proper eyes, lips and eyebrows movements. I was amazed by a simplistic robotic head in IBM research lab 10 years ago: it was simply programmed to look at me and to mimic my expression, and I was already feeling a strong connection. There is no doubt that a high-quality silicon head like the ones developed in Japan, with the proper smart software, will be able to perform human-like interaction with the illusion of artificial emotions.<b><o:p></o:p></b></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">If the field of human interaction jobs is not protected from automation, the rapid job destruction of the next decades will create massive social unrest. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">This is a consequence of the analysis proposed by McKinsey: if production and transaction are heavily automated, we need to protect interaction jobs. Regulation is possible, because interaction (in the sense of Section 2.3) is local and physical. There are many possible paths, from interdiction (like self-service gasoline pumps in some states) to taxes and economic incentives. I have no clue about the best solution, every solution that I can think of shows many problems. However, I have a strong conviction that democratic states will have to act and protect their interaction jobs. Somehow, what has happened in the US (Trump election) or UK (Brexit) is an illustration of what is to come.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">Whereas production and transaction activity are subjected to globalization (and therefore, a “prisoner dilemma” that prevents states from acting separately), the interaction economy may and should be protected through regulation. <span style="mso-spacerun: yes;"> </span></span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">It is close to impossible to fight against automation, robots and AI in the worlds of production and transaction. Any state who moves with its own agenda will create a competitive disadvantage and will lose business to others. Manufacturing companies are competing on a worldwide basis and are required to operate at the best possible level of efficiency. Transaction and digital service companies deliver immaterial services that are hard to track, constraint or regulate. Human embodied interaction can be defined legally, tracked and it falls under the local scope of state political power. A country may decide to be more protective than others without being at risk of losing jobs.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;"><span style="font-family: "verdana" , sans-serif;">4.2 Universal Basic Income versus social challenges</span></span></b></h3>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 17.12px;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">Universal Basic Income is almost there and will be necessary to smoothen the transition: to avoid “precarity as a life condition” (</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;"><a href="https://www.bloomsbury.com/uk/the-precariat-9781849664561/">what is called precariat by Guy Standing</a><b>). </b>When I talk about Universal Basic Income (UBI), I do not necessarily mean the same amount given to everyone. Universal Basic Income is any scheme that ensures that every citizen has access to a basic income that ensures “a basic standard of living”. Many countries, including France with its “RSA” (active solidarity revenue), have a safety net income, so the gap to UBI is not necessarily huge, although the ambition is to put each citizen away from poverty. UBI is a common topic today and is often associated to the topic of job destruction and automation because of the massive transition that is ahead of us. <a href="https://informationsystemsbiology.blogspot.com/2019/01/what-todays-ai-can-and-cannot-do-part-2.html">As noticed when I reviewed “Architects of Intelligence”</a>, I found it interesting that although nobody has a clear proposal to make about what the ideal UBI should be, most people who work on the cutting edge of AI and Automation are convinced that some form of UBI will become necessary.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">UBI does not need to be stigmatized as a “giving a salary for doing nothing”, it may be used as a lever to create micro-enterprise local opportunities. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">This may be seen as the extension of French status “<a href="https://fr.wikipedia.org/wiki/Intermittent_du_spectacle">intermittent du spectacle</a>” offered to part-time live performance participants, to many activity fields. <span style="mso-spacerun: yes;"> </span>This status is meant to allow many to live from their talent and passion for the art (theater, music, etc.) even though their yearly workload would not yield a sufficient income. There is a group of thinker, both at MIT and in the Silicon Valley, who see UBI as a way to promote “micro-entrepreneurship”, with the argument that for the average citizen, there is too much risk and not enough expected income to make entrepreneurship a viable choice. Their reasoning is that UBI could serve as a revenue insurance and convince people to take to risk living from what they care about. This is the exact opposite of giving UBI so that people could stay home doing nothing.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">To paraphrase Richard Feynman, “There is room at the bottom”: there are many interaction micro-business opportunities that do not materialize because of risk or low revenue. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">For instance, UBI makes living from selling your paintings a much more practical calling. There are many artists who are forced to consider their practice as a hobby that could reconsider given the proper incentive scheme, and society would fare better if many had access to their own works of art. UBI may be seen as an economy-related attempt to change the “opportunity landscape”, along the two previously mentioned axis of risk and expected revenue. There are many activities with great social value, especially in the field of personal care such as elderly care, or the field of neighborhood assistance, that are not creating enough value to produce jobs but that could be re-established as life-supporting provided the proper economic incentive (UBI). It does not have to be a monthly check that you get, no questions asked. It could be a supplementary income that you receive based on the accepted social value of your work (e.g., helping kids to do their homework in your apartment block).<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">Citizens do not need only UBI, they need access to “universal including opportunities to contribute”. <span style="mso-spacerun: yes;"> </span></span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">This is beautifully explained by Pierre-Noël Giraud in his book “<a href="https://www.cairn.info/revue-projet-2016-5-page-94b.htm">L’homme inutile</a>”) (the useless man) : people who live far below the poverty threshold express that it is better to be exploited than to be useless. This concept of the useless man is also described by Yuval Harari in “<a href="https://www.theguardian.com/technology/2016/may/20/silicon-assassins-condemn-humans-life-useless-artificial-intelligence">Homo Deus</a>”. <span style="mso-spacerun: yes;"> </span>Therefore, the goal of UBI is not only to provide a basic way of life but also a “basic inclusive contributor status”. <span style="mso-spacerun: yes;"> </span>Today, already millions of people work for no salary but for social purpose. Advocates of UBI sees this mechanism as a way to extend this possibility to a much larger group of people (those who are not retired or with additional revenue, who can afford to work for free on causes that they believe in). <span style="mso-spacerun: yes;"> </span><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;"><span style="font-family: "verdana" , sans-serif;">4.3 Craftmanship and Mass Personalization</span></span></b></h3>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p><span style="font-family: "verdana" , sans-serif;"> </span></o:p></span> </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrlsydkHVA7YL1nA9lo6U0qu0_mW4jcE24IPUncxGKmkaGS-dyf7AbNg1ZMKgdf78EHB57o0utdGw1XpWqc8YR29r8IiyfTh7gvU7Ptfjl7kDZDiDmQkHsF6IGbqek2z6_khyphenhyphenIbkSWrH8/s1600/AviReichentalShoe.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1067" data-original-width="1600" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrlsydkHVA7YL1nA9lo6U0qu0_mW4jcE24IPUncxGKmkaGS-dyf7AbNg1ZMKgdf78EHB57o0utdGw1XpWqc8YR29r8IiyfTh7gvU7Ptfjl7kDZDiDmQkHsF6IGbqek2z6_khyphenhyphenIbkSWrH8/s320/AviReichentalShoe.jpg" width="320" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">Mass production may be a “historical parenthesis” brought by the industrial revolution before we move back from standardized to personalized products, because of technology (3D printing) and interaction opportunities. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">I am borrowing this idea and this image from Avi Reichental, whose <a href="https://www.ted.com/talks/avi_reichental_what_s_next_in_3d_printing">2014 TED talk on 3D printing</a> describes a world of “makers”, where everyone may have access to custom-made products. Technology and localization can work hand-in-hand: as explained earlier, micro-entrepreneurs can benefit from large platforms to produce or deliver locally exactly what is required by their customer, in a way that a giant company could not achieve. 3D printing brings a tremendous advantage of speed and personalization. It works together with mass production, because the economy of scale still applies (3D printing is not destined to mass-manufacture standard objects). This is what creates the network/platform structure that we discussed earlier: the combination of the strength of massive hubs with the flexibility of “last mile” shops. <a href="https://www.designboom.com/design/leather-meets-3d-printing-in-the-bits-shoe-by-earl-stewart/">The “bits shoe” designed by Earl Stewart</a> is a great illustration of the combination of technology (3D printing unique to each foot) with local craftmanship (the leather cover of the shoe).<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">New « digital creatives » jobs in large companies will be too few to offset job destructions; local use of creativity and design skills, at a lower scale of value creation, is more realistic. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">In the words of techno-optimists who love to quote Schumpeter and his “destructive creation”, automation will yield the creation of multiple designers and creative jobs. The arguments of the previous sections make me quite dubious: the number of future digital creative jobs is not commensurate to the number of jobs destroyed through smart automation. However, the future of local interaction “micro-entrepreneurs” includes most certainly creativity and design.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">We could envision in the future a service economy that brings back craftmanship for clothing, custom-made pieces of furniture, cooking, home hairdresser or masseur, as well as paintings or sculpture. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">There is a form of a paradox here : many of the services that were reserved to the affluent class in the past centuries, such as made-to-order customized products (clothing, furniture, …) and services (home cook, hairdresser) could be revived at a micro-local scale (hence creating a very large number of jobs) offered to a much larger group of customers, provided the proper economic conditions, such as a form of universal basic income. Next to the previously mentioned week-end paint artist who could start making a living from his craft, you could add an amateur gardener, the neighbor who has a woodshop in his basement, the lady who likes to sew dresses, etc. <span style="mso-spacerun: yes;"> </span>This kind of micro-economy is actually more resilient, uses fewer natural resources, provides more social links than the mass production of the past century.</span><span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 20.0304px;"><span style="font-family: "verdana" , sans-serif;">4.4 From End of Jobs to renewed forms for work: new labor contracts</span></span></b></h3>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">Freelance and the « <a href="https://www.theguardian.com/commentisfree/2015/jul/26/will-we-get-by-gig-economy">gig economy</a>” is already here; the trend is strong in the US and rising in Europe. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">The reduction of jobs for the same amount of work as already started. <a href="https://www.nytimes.com/2019/05/28/technology/google-temp-workers.html">Even Google is making use of a large number of temporary workers</a>. There is a growing number of talents in the software industry who prefer to work as freelance. According to the experts at Singularity University, freelance made for 35% of the work in 2015 and could reach 50% as early as 2020. This is a complex evolution, since on the one hand, companies are betting on “strong ties” (synchronicity, co-located teams, context-sharing) and on the other hand, they are building networks, platforms and marketplace to hire the best talents, anywhere, anytime, betting on “weak ties” (people who are further from the company’s social network but uniquely qualified to the task). This brings us to the central idea expressed in Section 3: future companies as platforms that develop an ecosystem of partners. The Uber example shows why we need regulation to protect the smaller “players”, but the efficiency of this networked model should not be underestimated.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="mso-ansi-language: EN-US;">A new way of working based on tasks, projects and short-term commitment is both aspirational (and fits the desire of many young workers) and a curse when imposed to workers without social protection. </span></b><span lang="EN-US" style="mso-ansi-language: EN-US;">This new form of project-based work without the ties of a permanent work contract matches the aspirations of new generations of workers. It fits their desire to balance multiple goals and to pursue different paths at the same time (the so-called <a href="https://www.eveprogramme.com/en/34994/qui-sont-les-slasheurs/">slashers</a>). At the same time, for many other workers, this new way of working is imposed by the platforms that we mentioned earlier. Thus, regulation is necessary, as well as protection from the precarity of the gig economy for those whose talent is not so rare, which brings us back to the need for Universal Basic Income.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHpxvENRy8jcAEaqrRjz7Hu9z5EM0u7JXEiEXykywntPLkhIEeR6z28NBQAfVnK_aG573E4zGhwE16vNqJ1oBDATxhIO_zfQXWti5_E9dWqxNWigl0SbBQp6MCnTIXuHmZJl11GG_lySo/s1600/ExponentialOrganizatons.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1500" data-original-width="938" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHpxvENRy8jcAEaqrRjz7Hu9z5EM0u7JXEiEXykywntPLkhIEeR6z28NBQAfVnK_aG573E4zGhwE16vNqJ1oBDATxhIO_zfQXWti5_E9dWqxNWigl0SbBQp6MCnTIXuHmZJl11GG_lySo/s320/ExponentialOrganizatons.jpg" width="200" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<b style="font-family: Verdana, sans-serif;">Labor protection needs reinvention both within and outside the companies</b><span lang="EN-US" style="font-family: "verdana" , sans-serif;">. Here is a great quote from <a href="https://su.org/about/faculty/nathaniel-calhoun/">Nathaniel Calhoun</a> at the Singularity University : « <i>Exponential Organizations worsens the fate of labor</i> ». “<a href="https://exponentialorgs.com/">Exponential organization</a>” is a best-seller than describe new trends in organization for companies to adapt to new technology opportunities and to the exponential rhythm of change. This quote tells something that other sociology experts have told before: new ways of synchronized working are not always less stressful nor more comfortable. Labor contracts and work conditions require an overhaul to avoid precarity also for those who works for large companies. If we combine the networked platform trend, the need to continuously retrain for new skills in a world where technology changes at an accelerating speed, the desire for a better pro/perso, corporate/societal balance, jobs and careers – or the lack of them – will evolve in ways that regulation cannot afford to miss.</span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 25.68px;"><span style="font-family: "verdana" , sans-serif;">5. Conclusion</span></span></b></h2>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">This is a partial view, focused on technology, companies and job markets. There are other bigger issues at stake that are interplaying with the future of work: global warming, natural resource depletion, rise of pollution and geostrategic and political unrest.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">I have no pretense to try and incorporate these views into a global perspective about the future of work, that would become the future of the world. This blog post should not be seen as a prediction about the future, but more as an essay whose goals is to propose a few key ideas that may be used as “food for thoughts”.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">This being said, I have the conviction that the push towards localization and human interaction that is emphasized and promoted in this article resonates with the changes that will be pushed onto our world to reduce carbon emissions, to reduce air and water pollution, and to reduce the consumption of non-renewable natural resources.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">The key message – similar to the “iconomy vision” – is that among the multiple possible futures of AI, robots and work automation, some may fit harmoniously with the long-term aspiration and requirements of a sustainable society. However, we will not get there by chance; a long-term systemic vision of what state policies may do is badly needed.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
</div>
Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com0tag:blogger.com,1999:blog-438942112364524044.post-84206738747591005092019-04-09T07:19:00.000-07:002019-04-09T08:09:44.936-07:00Hunting for Causality in Short Time Series<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: left;">
</div>
<h2 style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;"><br /></span></h2>
<h2 style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;">1. Introduction</span></h2>
<div>
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-ZA" style="color: black; mso-ansi-language: EN-ZA; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">This post is about the search
for sense in a small data set, such as the few measures that one accumulates
through self-tracking. Most commonly, finding sense in a small set of data means either
to see regular patterns or to detect <a href="https://en.wikipedia.org/wiki/Causality">causality</a>. Many writers have
argued that our brains are hardwired for detecting patterns and causality.
Causality is our basic ingredient for modelling “how the world works”. Inferring
causality from our world experience is also a way of “compressing” our knowledge:
once you understand that an open flame hurts, you don’t need to recall the
experiences (and you don’t need so many of them to detect this causality). The
reason for selecting this topic for today’s blog post is my recent participation
to the <a href="https://roadef2019.univ-lehavre.fr/programme-complet/">ROADEF 2019
conference</a>. I had the pleasure of chairing the machine learning session and
the opportunity to present my own work about <a href="https://roadef2019.univ-lehavre.fr/programme/ROADEF2019_submissions/ROADEF2019_paper_1.pdf">machine
learning for self-tracking data</a>. </span><span lang="EN-ZA" style="mso-ansi-language: EN-ZA; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDKi4KxTOHSMwaQ7Lr-XqIBxIadnZJvkKBiYBDzdPWSSzDPrYPGbOuPuWf_HUx4oNHDMhRmTlTAZouLU2i3mbexnXic8ej1xs2_fCmrow0SJ6-BIVnYjTUpzDryMt8HrPOciIQiW4-gUQ/s1600/FooledByRandomness.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="248" data-original-width="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDKi4KxTOHSMwaQ7Lr-XqIBxIadnZJvkKBiYBDzdPWSSzDPrYPGbOuPuWf_HUx4oNHDMhRmTlTAZouLU2i3mbexnXic8ej1xs2_fCmrow0SJ6-BIVnYjTUpzDryMt8HrPOciIQiW4-gUQ/s1600/FooledByRandomness.jpg" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span lang="EN-ZA" style="mso-ansi-language: EN-ZA; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: "verdana" , sans-serif;">We are so good at detecting causality that we are often fooled by random situations
and tend to see patterns when there are none. This is a common theme of <a href="https://en.wikipedia.org/wiki/Nassim_Nicholas_Taleb">Nassim Taleb</a>’s
many books and especially his master first book “<a href="https://en.wikipedia.org/wiki/Fooled_by_Randomness">Fooled by Randomness</a>”.
The concept of “narrative fallacy” is critical when trying to extract sense
from observation, we need to remember that we love to see “stories” with a sense
because this is how our brain best remembers. There are two type of issues when
trying to mine short data sets for sense: the absence of statistical significance
because the data set is too small and the existence of our own narrative fallacy
and other cognitive biases. Today I will talk about data sets collected from <a href="https://en.wikipedia.org/wiki/Quantified_self">self-tracking</a> (i.e.
the continuous measurement of some of your characteristics, either explicitly while
logging observations or implicitly with connected sensors such as a connected
watch). <span style="color: black;">The challenge of scientific methods when
<a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC6087468/">searching for sense with such short time series</a> is to know when to say “I don’t
know” when presented with a data set with no other form of patterns or
correlation that what could be expected in any random distribution, without
falling into the “pitfall of narrative fallacy”. In short, the “Turing test” of
causality hunting is to reject random or quasi-random data input.<o:p></o:p></span></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span lang="EN-ZA" style="mso-ansi-language: EN-ZA; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="font-family: "verdana" , sans-serif;">On the other hand, it is tempting to look for algorithms that could learn
and extract sense from short time series precisely because humans are good at
it. Humans are actually very good at short-term forecasting and quick learning
which is without a doubt the consequence of evolution. Learning quickly to
forecast the path of a predator or a prey has been resolved with reinforcement
learning through “survival of the fittest” evolution. The topic of this blog
post – which I discussed at ROADEF – is how to make sense of a set of short
time series using machine learning algorithms. "Making sense" here is a combination
of forecasting and causality analysis which I will discuss later.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-ZA" style="color: black; mso-ansi-language: EN-ZA; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">The second reason for this
blogpost is the wonderful book of <a href="https://en.wikipedia.org/wiki/Judea_Pearl">Judea Pearl</a>, “<a href="https://www.nytimes.com/2018/06/01/business/dealbook/review-the-book-of-why-examines-the-science-of-cause-and-effect.html">The
Book of Why</a>”, which is a masterpiece about causality. The central idea of
the book is that causality does not “jump from the data” but requires an active
role from the observer. Judea Pearl introduces concepts which are deeply relevant
to this quest of search for sense with small data sets. </span><span lang="EN-ZA" style="mso-ansi-language: EN-ZA; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="mso-spacerun: yes;"> </span><span style="color: black;">Hunting for
causality is a “dangerous sport” for many reasons: most often you come back
empty-handed, sometimes you catch your own tail … and when successful, you most
often have little to show for your efforts. The two central ideas of causality
diagrams and the role of active observers are keys for unlocking some of the difficulties
of causality hunting with self-tracking data.</span></span></span><br />
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-ZA" style="mso-ansi-language: EN-ZA; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><span style="color: black;"><br /></span></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-ZA" style="color: black; mso-ansi-language: EN-ZA; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">This post is organised as
follows. Section 2 is a very short and partial review of “The Book of Why”. I
will try to explain why Judea Pearl’s concepts are critical to causality hunting
with small data sets. These principles have been applied to the creation of a <a href="http://knomeetheapp.com/">mobile application</a> that generated the data
sets onto which the machine learning algorithm of Section 4 have been applied. This
application uses the concept of a causal diagram (renamed as quests) to embody
the user’s prior knowledge and assumptions. The self-measure follows the principle
of the “active observer” of Judea Pearl’s <i>P(X | do(Y))</i> definition. Section 3
dives into causality hunting through two other books and introduced the concept
of <a href="https://en.wikipedia.org/wiki/Granger_causality">Granger causality</a>
that binds forecasting and causality detection. It also links <a href="https://informationsystemsbiology.blogspot.com/2016/12/behavioral-change-through-systemic-games.html">the
concept of pleasure and surprise with self-learning</a>, a topic that I borrow from
<a href="https://en.wikipedia.org/wiki/The_Future_of_the_Mind">Michio Kaku</a>
and which also creates a strong relationship between forecasting and causality
hunting. <a href="https://medium.com/inventing-intelligent-machines/prediction-is-the-essence-of-intelligence-42c786c3e5a9">As
noted by many scholars</a>, “the ability to forecast is the most common form of
intelligence”. Section 4 talks briefly about Machine Learning algorithms for
short time-series forecasting. Without diving too deep into the technical
aspects, I show what prediction from small data sets is difficult and what
success could look like, considering all the pitfalls that we have presented before.
Machine Learning from small data is not a topic for deep learning, thus I present an
approach based on code generation and reinforcement learning.</span><span lang="EN-ZA" style="mso-ansi-language: EN-ZA; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-ZA" style="color: black; mso-ansi-language: EN-ZA; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><br /></span></span></div>
<h2 style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-ZA" style="color: black; mso-ansi-language: EN-ZA; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;">2. Causality Diagrams - Learn by Playing</span></span></h2>
<div>
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-ZA" style="color: black; mso-ansi-language: EN-ZA; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><br /></span></span></div>
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz1dWGpOqHBWA4-UKA5ZzNt1LuCBvNX_HL5ep6E3ifMpGlNbl4gch3sqzIvXn6Mojv-cy4l09icxperr5v9M4lae5UxS2Q6w86GLucNbJaSL-pSpckTzdhVPuGF5ogH6p8nr7xGssWQwM/s1600/BookOfWhy.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="499" data-original-width="322" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz1dWGpOqHBWA4-UKA5ZzNt1LuCBvNX_HL5ep6E3ifMpGlNbl4gch3sqzIvXn6Mojv-cy4l09icxperr5v9M4lae5UxS2Q6w86GLucNbJaSL-pSpckTzdhVPuGF5ogH6p8nr7xGssWQwM/s320/BookOfWhy.jpg" width="206" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;"><a href="https://en.wikipedia.org/wiki/Judea_Pearl">Judea Pearl</a> is an amazing
scientist with a long career about logic, models and causality that has earned
him a Turing Award in 2011. His book reminds me of “<a href="https://organisationarchitecture.blogspot.com/2012/09/regles-simples-et-situations-complexes.html">Thinking,
Fast and Slow</a>” of <a href="https://en.wikipedia.org/wiki/Daniel_Kahneman">Daniel Kahneman</a>, a fantastic
effort of summarising decades of research into a book that is accessible and
very deep at the same time. “The Book of
Why – The new science of cause and effect” by Judea Pearl and Dana MacKenzie,
is a master piece about causality. It requires careful reading if ones want to extract
the full value of the content, but can also be enjoyed as a simple, exciting
read. A great part of the book deals with paradoxes of causality and confounders,
the variable that hide or explain causality relationships. In this section I
will only talk about four key ideas that are relevant to hunting causality from
small data <o:p></o:p></span></span></div>
<div>
<div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;">The first key idea of this book is <b>causality
is not a cold objective that one can extract from data without prior knowledge</b>.
He refutes a “Big Data hypothesis” that would assume that once you have enough
data, you can extract all necessary knowledge. He proposes a model for understanding
causality with <a href="https://www.nytimes.com/2018/06/01/business/dealbook/review-the-book-of-why-examines-the-science-of-cause-and-effect.html">three
levels</a> : the first level is association,
what we learn with observation; the second level is intervention, what we learn
by doing things and the third level is counterfactuals, what we learn through
imagining what-if scenarios. Trying to assess causality from observation only
(for instance through conditional probabilities) is both very limited (ignoring
the two top levels) but also quite tricky since as recalled by Persi Diaconis: “<i>Our brains are not just wired to do
probability problems, so I am not surprised there were mistakes</i>”. Judea
Pearl talk in depth about the <a href="https://en.wikipedia.org/wiki/Monty_Hall_problem">Monty Hall problem</a>,
a great puzzle/paradox proposed by Marilyn Vos Savant, that has tricked many of
the most educated minds. I urge you to read the book to learn for yourself from
this great example. The author’s conclusion is: “<i>Decades’ worth of experience with this kind of questions has convinced
me that, in both a cognitive and philosophical sense, the ideas of causes and
effects is much more fundamental than the idea of probability</i>”.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-ZA">Judea Pearl introduced the key
concept of causal diagram to represent our prior preconception of causality</span></b><span lang="EN-ZA"> that may be
reinforced or invalidated from observation, following a true Bayesian model. A <a href="https://www.youtube.com/watch?v=Gi7D1NB-8fU">causal diagram</a> is a
directed graph that represents your prior assumptions, as a network of factors/variable
that have causal influence on each other. A causal diagram is a hypothesis that
actual data from observation will validate or invalidate. The central idea here
is that you cannot extract a causal diagram from the data, but that you need to
formulate a hypothesis that you will keep or reject later, because the causal
diagram gives you a scaffolder to analyse your data. This is why any data
collection with the <a href="http://knomeetheapp.com/tutorial/">Knomee</a>
mobile app that I mentioned earlier starts with a causal diagram (a "quest").<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-ZA"><b>Another key insight from the author is to emphasise a participating role to
the user asking the causality question</b></span><span lang="EN-ZA">, which is represented
through the notation <i>P(X | do(Y))</i>. Where
the conditional probability <i>P(X | Y)</i>
is the probability of X being true when Y is observed, <i>P(X | do(Y))</i> is the probability of X when the user chooses to “do Y”.
The stupid example of learning that a flame burns your hand is actually meaningful
to understand the power of “learning by doing”. One or two experiences would not
be enough to infer the knowledge from the conditional probability <i>P(hurts | hand in flame)</i> while the
experience <i>do(hand in flame)</i> means that you get very sure, very quick, about <i>P(hurts | do(hand in flame))</i>. This observation
is at the heart of personal self-tracking. The user is active and is not simply
collecting data. She decides to do or not to do things that may influence the
desired outcome. A user who is trying to decide whether drinking coffee affects
her sleep is actually computing <i>P(sleep |
do(coffee))</i>. Data collection is an experience, and it has a profound impact
on the knowledge that may be extracted from the observations. This is very similar
to the key concept that data is a circular flow in most AI smart systems. Smart
systems are cybernetic systems with “a human inside”, not deductive linear systems
that derive knowledge from static data. One should recognise here a key finding
from the NATF reports on Artificial Intelligence and Machine Learning (see “<a href="https://informationsystemsbiology.blogspot.com/2018/04/artificial-intelligence-applications.html">Artificial
Intelligence Applications Ecosystem: How to Grow Reinforcing Loops</a>”).</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<b style="font-family: Verdana, sans-serif; text-align: left;"><span lang="EN-ZA" style="line-height: 107%;"><br /></span></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<b style="font-family: Verdana, sans-serif; text-align: left;"><span lang="EN-ZA" style="line-height: 107%;">The role of the participant is
especially important because there is a fair amount of subjectivity when hunting
for causality</span></b><span lang="EN-ZA" style="font-family: "verdana" , sans-serif; line-height: 107%; text-align: left;">. Judea Pearl gives many examples
where the controlling factors should be influenced by the “prior belief” of the
experimenters, at the risk of misreading the data. He writes: “<i>When
causation is concerned, a grain of wise subjectivity tells us more about the real
world that any amount of objectivity</i>”. He also insists on the importance of
the data collection process. For him, one of the reasons statisticians are
often the most puzzled with the Monty Hall paradox is the habit of looking at data
as a flat static table: “<i>No wonder statisticians
found this puzzle hard to comprehend. They are accustomed to, as R.A. Fisher (1922)
puts it, “the reduction of the data” and ignoring the data-generation process</i>”.
As told earlier, I strongly encourage you to read the book to learn about “<a href="https://en.wikipedia.org/wiki/Confounding">counfounders</a>” – that are
easy to explain with causal diagram – and how they play a critical role for
these types of causality paradox where the intuition is easily fooled. This is
the heart of this book: “ <i>I consider the complete
solution of the counfounders problem one of the main highlights of the Causal
Revolution because it has ended an era of confusion that has probably resulted
in many wrong decisions in the past</i>”.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span lang="EN-ZA" style="font-family: "verdana" , sans-serif; line-height: 107%; text-align: left;"><br /></span></div>
<h2 style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;">3. Finding a Diamond in the Rough</span></h2>
</div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheOd7l0fK4ChQ3LJhOWgIBVabj82T8lNYkhnRVS7RUFWI81ppeRuNffXw-eD1HcAabD_ENNc7U0oZbz0vsJx9QyRMOaxehG3t5pwGxag17FsLXeXMAVVEwngSBwLP7I2Em6zcHqQL7kgI/s1600/WhyKleinberg.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="499" data-original-width="333" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheOd7l0fK4ChQ3LJhOWgIBVabj82T8lNYkhnRVS7RUFWI81ppeRuNffXw-eD1HcAabD_ENNc7U0oZbz0vsJx9QyRMOaxehG3t5pwGxag17FsLXeXMAVVEwngSBwLP7I2Em6zcHqQL7kgI/s320/WhyKleinberg.jpg" width="213" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-ZA">Another interesting book about hunting for causality is “<a href="http://www.skleinberg.org/why/">Why: A Guide to Finding and Using Causes</a>”
by <a href="http://www.skleinberg.org/">Samantha Kleinberg</a>. This books starts
with the idea that causality is hard to understand and hard to establish. Saying
that “correlation is not causation” is not enough, understanding causation is more
complex. Statistics do help to establish correlation, but people are prone to
see correlation when none exists: “</span><i><span lang="EN-ZA">many cognitive biases lead to us seeing correlations where none exist
because we often seek information that confirms our beliefs</span></i><span lang="EN-ZA">”. Once we validate a correlation with statistics tool, one needs to be
careful because even seasoned statisticians “<i>cannot resists treating correlations as if they were causal</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-ZA">Samantha Kleinberg talks about
<a href="https://en.wikipedia.org/wiki/Granger_causality">Granger Causality</a></span></b><span lang="EN-ZA">: “<i>one commonly used method for
inference with continuous-valued time series data is Granger</i>”, the idea
that if there is a time delay observed within a correlation, this may be a hint
of causality. Judea Pearl warns us that this may be simply the case of a
counfounder with asymmetric delays, but in practice the test of Granger causality
is not a proof but a good indicator for causality. The proper wording is that
this test is a good indicator for “predictive causality”. More generally, if
predicting a value Y from the past of X up to a non-null delay does a good job,
it may be said that there is a good chance of “<a href="http://rgrig.blogspot.com/2014/07/predictive-causality.html">predictive causality</a>”
from X to Y. This links the tool of forecasting to our goal of causality
hunting. It is an interesting tool since it may be used with non-linear models
(contrary to Granger Causality) and multi-variate analysis. If we start from a
causal diagram in the Pearl’s sense, we may see if the root nodes (the
hypothetical causes) may be used successfully to predict the future of the
target nodes (the hypothetical “effects”). This is, in a nutshell, how the
Knomee mobile app operates: it collects data associated to a causal diagram and
uses forecasting as a possible indicator of “predictive causality”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;">The search of “why” with
self-tracking data is quite interesting because most values (heart rate, mood,
weight, number of steps, etc.) are nonstationary on a short time scale, but
bounded on a long-time horizon while exhibiting a lot of daily variation. This
makes detecting patterns more difficult since this is quite different from
extrapolating the movement of a predator for its previous positions (another short
time series). We are much better at “understanding” patterns that derive from linear
relations than those that emerge from complex causality loops with delays<b>. The
analysis of delays between two observations (at the heart of the Granger
Causality) is also a key tool in complex system analysis</b>. We must,
therefore, bring it with us when hunting for causality. This is why the Knomee
app includes multiple correlation/delay analysis to confirm or invalidate the
causal hypothesis.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYQ7ImW5BmZc9VubLJipxDuY14Zru8qK8O5cuv8NllnW9f3p9Y0OaQy7x2rmm1XUc5eDiOhm0DODetL7Z-XLyOA3mjQ1ZaeDDG_QM9fmFQNvrFwjbW8oq5phJpYwY_DfDT-UoIf1hNWFw/s1600/SelfTracking.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="515" data-original-width="371" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYQ7ImW5BmZc9VubLJipxDuY14Zru8qK8O5cuv8NllnW9f3p9Y0OaQy7x2rmm1XUc5eDiOhm0DODetL7Z-XLyOA3mjQ1ZaeDDG_QM9fmFQNvrFwjbW8oq5phJpYwY_DfDT-UoIf1hNWFw/s320/SelfTracking.jpg" width="230" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12.0pt; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-ZA">A few other pearls of wisdom about causality hunting with self-tracking
may be found in the book from Gina Neff and Dawn Nafus. This reference book on
quantified self and self-tracking crosses a number of ideas that we have already
exposed, such as the critical importance of the user in the tracking and learning
process. <b>Self-tracking</b> – a practice which
is both very ancient and has shown value repeatedly – <b>is usually boring if no sense is derived from the experiment</b>.
Making sense is either positive, such as finding causality, or negative, such
as disproving a causality hypothesis. Because we can collect data more efficiently
in the digital world, the quest for sense is even more important: </span><span lang="EN-ZA">“<i>Sometimes our capacity to gather data
outpaces our ability to make sense of it</i>”. In the first part of this book we find this
statement which echoes nicely the principles of Judea Pearl: “<i>A further goal of this book is to show how
self-experimentation with data forces us to wrestle with the uncertain line
between evidence and belief, and how we come to decisions about what is and is
not legitimate knowledge</i>”. We have
talked about small data and short time-series from the beginning because
experience shows that most users collect data over long period of time: “<i>Self-tracking projects should start out as
brief experiments that are done, say, over a few days or a few weeks. While
there are different benefits to tracking over months or years, a first project
should not commit you for the long haul</i>”. This is why we shall focus in the next section
on algorithms that can work robustly with a small amount of data.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-ZA">Self-tracking
is foremost a learning experiment</span></b><span lang="EN-ZA">: “<i>The
norm within QS is that “good” self-tracking happens when some learning took
place, regardless of what kind of learning it was</i>”. A further motive for
self-tracking is often behavioural change, which is also a form of
self-learning. A biologists tell us, learning is most often associated with
pleasure and reward. As pointed out <a href="https://informationsystemsbiology.blogspot.com/2016/12/behavioral-change-through-systemic-games.html">in
a previous post</a>, there is a continuous cycle : pleasure to desire to plan to action to pleasure, that is a common foundation for most learning
with living creatures. Therefore, there is a dual dependency between pleasure
and learning when self-tracking: one must learn (make sense out the collected data)
to stay motivated and to pursue the self-tracking experience (which is never very
long) and this experience should reward the user from some forms of pleasure,
from surprise and fun to the satisfaction of learning something about yourself.</span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<b style="text-align: left;"><span lang="EN-ZA" style="line-height: 107%;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></b></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b style="text-align: left;"><span lang="EN-ZA" style="line-height: 107%;">Forecasting is a natural part of the human learning
process</span></b><span lang="EN-ZA" style="line-height: 107%; text-align: left;">. We
constantly forecast what will happen and learn by reacting to the difference. <a href="https://informationsystemsbiology.blogspot.com/2015/06/strong-artificial-intelligence-is.html">As
explained by Michio Kaku</a>, our sense of humour and the pleasure that we
associate with surprises is a Darwinian mechanism to push us to constantly
improve our forecasting (and modelling abilities). We forecast continuously, we
experience the reality and we enjoy the surprise (the difference between what
happens and what we expect) as an opportunity to learn in a Bayesian way, that
is to reassign our prior assumptions (our model of the world). The importance
of curiosity as a key factor for learning is now widely accepted in the machine
learning community as illustrated in this ICML 2017 paper: “<a href="https://pathak22.github.io/noreward-rl/">Curiosity-driven Exploration by Self-supervised
Prediction</a>”.</span><span lang="EN-ZA" style="line-height: 107%; text-align: left;"> The
role of surprise and fun in learning is another reason to be interested in
forecasting algorithms. Forecasting the future, even if unreliable, creates
positive emotions around self-tracking. This is quite general: we enjoy
forecasts, which we see as games (in addition of their intrinsic value) – one
can think of sports or politics as example. A self-tracking forecasting
algorithm that does a decent job (i.e., not too wrong nor too often) works in a
way similar to our brain: it is invisible but acts as a time saver most of the times,
and when wrong it signals a moment of interest. We shall now come back to the topic
of forecasting algorithms for short time-series, since we have established that
they could play an interesting role for causality hunting.</span></span></div>
<div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-ZA" style="line-height: 107%; text-align: left;"><br /></span></span></div>
<h2 style="line-height: normal; text-align: left;">
<span style="font-family: "verdana" , sans-serif;">4. Machine Generation of Robust Algorithms</span></h2>
</div>
<div style="text-align: left;">
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;">Our goal in this last section
is to look at <b>the design of robust algorithms
for short time series forecasting</b>. Let us first define what I mean by <i>robust</i>,
which will explain the metaphor which was proposed in the introduction. The
following figure is extracted from my <a href="https://www.slideshare.net/ycaseau1/machine-learning-for-selftracking">ROADEF
presentation</a>, it represents two possible types of “quests” (causal diagrams).
Think of a quest as a variable that we try to analyse, together with other
variables (the “factors”) which we think might explain the main variable. The
vertical axis represents a classification of the variation that is observed
into three categories: the random noise in red, the variation that is due to
factors that were not collected in the sample in orange, and the green area is the part that
we may associate with the factors. A robust algorithm is a forecasting
algorithm that accepts an important part of randomness, to the point that many
quests are “pointless” (remember the “Turing test of incomplete forecasting”).
A robust algorithm should be able to exploit the positive influence of the
factors (in green) when and if it exists. The picture makes it clear that we should
not expect miracles: a good forecasting algorithm can only improve by a few percent
over the simple prediction of the average values. What is actually difficult is
to design an algorithm that is not worse – because of overfitting – than average
prediction when given a quasi-random input (right column on the picture).<o:p></o:p></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxCgoj4UTzBiCZrNo9syGVlafYD0Q_4fpcAoAyKj4MOU0t5q2bgMwjJGz6ZG5SLgL0rilBQyEVtu_0ZZRYt8mjf41PvoTtSOKd1QcIiVOmGFTrpb-fpflNSQRyNZdjQUTlCLjpEADr_7Y/s1600/ROADEF2019illustration.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxCgoj4UTzBiCZrNo9syGVlafYD0Q_4fpcAoAyKj4MOU0t5q2bgMwjJGz6ZG5SLgL0rilBQyEVtu_0ZZRYt8mjf41PvoTtSOKd1QcIiVOmGFTrpb-fpflNSQRyNZdjQUTlCLjpEADr_7Y/s400/ROADEF2019illustration.jpg" width="400" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;">As the title of the section suggests,
<b>I have experimented with machine
generation of forecasting algorithms</b>. This technique is also called meta-programming:
a first algorithm produces code that represents a forecasting algorithm. I have
used this approach many times in the past decades, from <a href="https://arxiv.org/abs/cs/0405092">complex optimization problems</a> to <a href="https://link.springer.com/chapter/10.1007%2F978-3-642-34404-6_2">evolutionary
game theory</a>. I found that it was interesting many years ago when working on
TV audience forecasting, because it is a good way to avoid over-fitting, which
is a common plague when doing machine learning over a small data set, and to
control the robustness properties thanks to evolutionary meta-techniques. The
principle is to create a <i>term algebra </i>that represents instantiations and combinations
of simpler algorithm. Think of it as a tool box. One lever of control
(robustness and over-fitting) is to make sure that you only select “robust
tools” to put in the box. This means that you may not obtain the best or more
complex machine learning algorithm such as deep learning, but you ensure both “<a href="https://www.analyticsindiamag.com/explainability-vs-interpretability-in-artificial-intelligence-and-machine-learning/">explainability</a>”
and control. The meta-algorithm is an evolutionary randomised search algorithm
(similar to the <a href="https://en.wikipedia.org/wiki/Monte_Carlo_tree_search">Monte-Carlo
Tree Search</a> of <a href="https://www.analyticsvidhya.com/blog/2019/01/monte-carlo-tree-search-introduction-algorithm-deepmind-alphago/">Alpha
Zero</a>) that may be sophisticated (using genetic combinations of terms) or
simple (which is what we use for short time series). <o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmJ3fup4hg_zKfQ7ZA21tzmPTXqiA8osL_Sb33YWuWRxlXWa5tYR6utGnpe3eL-jIaycT01QYyzo2Z5H47v1M94ZJe_P5KN3goRK6Ycy93mkAWcO7HfZ-o38he70Ged_wrQ_wQn23FXQo/s1600/MachineLearningQuantifiedSelf.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="230" data-original-width="153" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmJ3fup4hg_zKfQ7ZA21tzmPTXqiA8osL_Sb33YWuWRxlXWa5tYR6utGnpe3eL-jIaycT01QYyzo2Z5H47v1M94ZJe_P5KN3goRK6Ycy93mkAWcO7HfZ-o38he70Ged_wrQ_wQn23FXQo/s1600/MachineLearningQuantifiedSelf.jpg" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;">The forecasting algorithm used by the Knomee app
is produced locally on the user phone from the collected data. To test
robustness, we have collected self-tracking data over the past two years - for those of you who are curious to apply other techniques,
<a href="https://github.com/ycaseau/KnomeeQuest/tree/master/data">the data is available
on GitHub</a>. The forecasting algorithm is the fixed-point of an evolutionary
search. This is very similar to reinforcement learning in the sense that each
iteration is directed by a fitness function that describes the accuracy of the
forecasting (modulo <a href="https://machinelearningmastery.com/introduction-to-regularization-to-reduce-overfitting-and-improve-generalization-error/">regularization</a>,
as explained in the <a href="https://www.slideshare.net/ycaseau1/machine-learning-for-selftracking">presentation</a>).
The training protocol is defined as running the resulting forecasting algorithm
on each sample of the data set (a quest) and for each time position from 2/3 to
3/3 of the ordered time series. In other words, the score that we use is the average
precision of the forecasting that a user would experience in the last third of
the data collection process. The term-algebra that is used to represent and to
generate forecasting algorithms is made of simple heuristics such as <i>regression</i> and <i>movingAverage</i>, of weekly and hourly time patterns, and correlation
analysis with threshold, cumulative and delays options. With the proper choice
of meta-parameters to tune the evolutionary search (such as the fitness
function or the depth and scope of local optimisation), this approach is able
to generate a robust algorithm, that is : (1) that generates better forecasts
than average (although not by much) (2) that is not thrown away by pseudo-random
time series . Let me state clearly that this approach is not a “silver bullet”.
I have compared the algorithm produced by this evolutionary search with the
classical and simple machine learning approaches that one would use for time series:
<i>Regression</i>, <i>k-means</i> clustering and <i>ARMA</i>.
I refer you to the great book “<a href="https://www.springer.com/gp/book/9783319663074">Machine Learning for the Quantified
Self</a>” by M. Hoogendoorn and B. Funk for a complete survey on how
to use machine learning with self-tracking data. On regular data (such as sales
time series), the classical algorithms perform slightly better that evolutionary
code generation. However, when real self-tracking data is used with all its
randomness, evolutionary search manages to synthesise robust algorithms, which none
of the three classical algorithms are. </span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<h2 style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;">
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;">5. Conclusion</span></span></h2>
<div style="text-align: justify;">
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div>
<span lang="EN-ZA"></span><br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 12pt; text-align: justify;">
<span lang="EN-ZA"><span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;">This topic
is more complex than many of the subjects that I address here. I have tried to
stay away from the truly technical aspects, at the expense of scientific precision.
I will conclude this post with a very short summary:</span></span></span></div>
<span lang="EN-ZA">
<div class="MsoNormal">
</div>
<ol style="text-align: left;">
<li><div class="MsoNormal" style="line-height: normal; margin-bottom: 12pt; text-align: justify;">
<b style="font-family: Verdana, sans-serif;"><span lang="EN-ZA"><a href="https://www.amazon.com/Hunting-Causes-Using-Them-Approaches/dp/052167798X">Causality hunting</a> is a fascinating topic</span></b><span lang="EN-ZA" style="font-family: "verdana" , sans-serif;">. As we accumulate more and more
data, and as Artificial Intelligence tools become more powerful, it is quite
logical to hunt for causality and to build models that represent a fragment of our
world knowledge through machine learning. This is, for instance, the heart of
the <a href="https://www.causalitylink.com/">Causality Link</a> startup led by
my friend <a href="https://www.youtube.com/watch?v=bJIFV6TgP8g">Pierre Haren</a>,
which builds automatically knowledge graphs from textual data while extracting causal
links, which is then use for deep situation analysis with scenarios.</span></div>
</li>
<li><div class="MsoNormal" style="line-height: normal; margin-bottom: 12pt; text-align: justify;">
<b style="font-family: Verdana, sans-serif;"><span lang="EN-ZA">Causality hunting is hard</span></b><span lang="EN-ZA" style="font-family: "verdana" , sans-serif;">, especially with small data and
even more <b>with “<a href="https://link.springer.com/article/10.1007/s13347-016-0215-5">Quantified Self</a>”
data</b>, because of the random nature of many of the time series that are
collected with connected devices. It is also hard because we cannot track
everything and quite often what we are looking for depends on other variable
(the orange part of the previous picture).</span></div>
</li>
<li><div class="MsoNormal" style="line-height: normal; margin-bottom: 12pt; text-align: justify;">
<b style="font-family: Verdana, sans-serif;"><span lang="EN-ZA">Forecasting is an interesting tool for
causality hunting</span></b><span lang="EN-ZA" style="font-family: "verdana" , sans-serif;">.
This is counter-intuitive since forecasting is close to impossible with
self-tracking data. A better formulation should be: “ a moderate amount of robust
forecasting may help with causality hunting". Forecasting gives a hint of “predictive
causality”, in the sense of the Granger causality, and it also serves to enrich
the pleasure-surprise-discovery learning loop of self-tracking.</span></div>
</li>
<li><div class="MsoNormal" style="line-height: normal; margin-bottom: 12pt; text-align: justify;">
<a href="https://www.techrepublic.com/article/developers-rejoice-now-ai-can-write-code-for-you/" style="font-family: Verdana, sans-serif;">Machine
code generation</a><span style="font-family: "verdana" , sans-serif;"> through reinforcement learning is a powerful technique for
short time-series forecasting. Code generating algorithms </span><a href="https://qz.com/920468/artificial-intelligence-created-by-microsoft-and-university-of-cambridge-is-learning-to-write-code-by-itself-not-steal-it/" style="font-family: Verdana, sans-serif;">try
to assemble building blocks from a given set to match a given output</a><span style="font-family: "verdana" , sans-serif;">. When
applied to self-tracking forecasting, this technique allows to craft algorithms
that are robust to random noise (to recognise the data as such) and able to
extract a weak correlative signal from a complex (although short) data set.</span></div>
</li>
</ol>
</span></div>
<div>
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div>
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div>
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
</div>
<div>
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
</div>
</div>
Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com0tag:blogger.com,1999:blog-438942112364524044.post-61293501101720479312019-01-29T22:04:00.004-08:002019-01-29T22:11:35.277-08:00What Today’s AI can and cannot do (Part 2)<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-GB</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="375">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hashtag"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Unresolved Mention"/>
</w:LatentStyles>
</xml><![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:decorative;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-pitch:variable;
mso-font-signature:-536870145 1107305727 0 0 415 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-536859905 -1073732485 9 0 511 0;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-1593833729 1073750107 16 0 415 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-noshow:yes;
mso-style-priority:99;
color:#954F72;
mso-themecolor:followedhyperlink;
text-decoration:underline;
text-underline:single;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
mso-add-space:auto;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
mso-add-space:auto;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
mso-add-space:auto;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
mso-add-space:auto;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
@page WordSection1
{size:595.0pt 842.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:327908369;
mso-list-template-ids:-1212242740;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1
{mso-list-id:688140855;
mso-list-type:hybrid;
mso-list-template-ids:979118022 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l1:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l1:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l1:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l1:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l1:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l1:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l1:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l2
{mso-list-id:909656437;
mso-list-type:hybrid;
mso-list-template-ids:-2007335708 204374934 67895321 67895323 67895311 67895321 67895323 67895311 67895321 67895323;}
@list l2:level1
{mso-level-text:"\(%1\)";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:54.0pt;
text-indent:-36.0pt;}
@list l2:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l2:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l2:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l3
{mso-list-id:1770999592;
mso-list-type:hybrid;
mso-list-template-ids:-2056605942 -2003018574 67895321 67895323 67895311 67895321 67895323 67895311 67895321 67895323;}
@list l3:level1
{mso-level-text:"\(%1\)";
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l3:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l3:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l3:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l3:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l3:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l3:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l3:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l3:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
</style>
</div>
<br />
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
</style>
<![endif]-->
<!--StartFragment-->
<br />
<div align="center" class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<br /></div>
<div align="center" class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<br /></div>
<h2 style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: large;">1. Introduction</span></span></b></h2>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-ZA" style="color: black;"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC-DALq24VbAUrbPLozRZjgXWNsZlPNjAayQtKaaMMVac76cmrpsXS8OIOCXKlVNqGCyPvHxU22gCTh4Av_jJGz7VggUXxPhnevN22AsDCgUyPmYRFrKGFiT11pfvQP7vuNckFJP40QUo/s1600/AISuperpowers.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="500" data-original-width="333" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC-DALq24VbAUrbPLozRZjgXWNsZlPNjAayQtKaaMMVac76cmrpsXS8OIOCXKlVNqGCyPvHxU22gCTh4Av_jJGz7VggUXxPhnevN22AsDCgUyPmYRFrKGFiT11pfvQP7vuNckFJP40QUo/s320/AISuperpowers.jpg" width="213" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-ZA" style="color: black;"><span style="font-family: "verdana" , sans-serif; font-size: small;">This is a sequel to the previous <a href="http://informationsystemsbiology.blogspot.com/2018/12/what-todays-ai-can-and-cannot-do-part-1.html">post</a>,
that was mostly about Kai-Fu Lee’s book “<a href="https://aisuperpowers.com/">AI
Superpowers</a>”. Very simply stated, that book develops two threads of
thoughts:</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ol>
<li><span style="font-family: "verdana" , sans-serif;">AI
technology has reached a maturity level where it is ready for massive
deployment and application. This should change the way we operate many processes/services/products
in our world.</span></li>
<li><span style="font-family: "verdana" , sans-serif;">The AI tool
box is now ready, what matters is scaling and engineering, more than new
science. Hence the race will favour those ecosystems where speed and efficiency
meet with software engineering and business skills.</span></li>
</ol>
<br />
<div class="MsoNormal" style="margin-bottom: 12.0pt; text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><span style="font-family: "verdana" , sans-serif;">The first part should come as no surprise. There
are a number of other good books, such as “</span><span class="MsoHyperlink" style="font-family: "verdana" , sans-serif;"><a href="https://organisationarchitecture.blogspot.com/2018/03/lentreprise-face-la-complexite-de-la.html">The
Mathematical Corporation – where machine intelligence + human ingenuity achieve
the impossible</a></span><span style="font-family: "verdana" , sans-serif;">” and “</span><a href="http://organisationarchitecture.blogspot.com/2018/09/reinventer-les-processus-et-les.html">Human+AI
– reimagining work in the age of AI</a><span style="font-family: "verdana" , sans-serif;">” that make the same point with lots of
convincing examples. The report of </span><span class="MsoHyperlink" style="font-family: "verdana" , sans-serif;"><a href="https://www.academie-technologies.fr/en/">the National Academy of
Technologies of France</a></span><span style="font-family: "verdana" , sans-serif;"> on </span><span class="MsoHyperlink" style="font-family: "verdana" , sans-serif;"><a href="http://informationsystemsbiology.blogspot.com/2018/04/artificial-intelligence-applications.html">Artificial
Intelligence and Machine Learning</a></span><span style="font-family: "verdana" , sans-serif;"> is saying exactly the same thing :
we have reached a tipping point and the time to act is now.</span></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; text-align: justify;">
<span lang="EN-ZA"><span style="font-family: Verdana, sans-serif; font-size: small;">The first part should come as no surprise. There
are a number of other good books, such as “<span class="MsoHyperlink"><a href="https://organisationarchitecture.blogspot.com/2018/03/lentreprise-face-la-complexite-de-la.html">The
Mathematical Corporation – where machine intelligence + human ingenuity achieve
the impossible</a></span>” and “<a href="http://organisationarchitecture.blogspot.com/2018/09/reinventer-les-processus-et-les.html">Human+AI
– reimagining work in the age of AI</a>” that make the same point with lots of
convincing examples. The report of <span class="MsoHyperlink"><a href="https://www.academie-technologies.fr/en/">the National Academy of
Technologies of France</a></span> on <span class="MsoHyperlink"><a href="http://informationsystemsbiology.blogspot.com/2018/04/artificial-intelligence-applications.html">Artificial
Intelligence and Machine Learning</a></span> is saying exactly the same thing :
we have reached a tipping point and the time to act is now.</span></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; text-align: justify;">
<span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif; font-size: small;"><span style="font-family: Verdana, sans-serif;">The second part is more controversial. There has
been a lot of heated reactions to Kai-Fu Lee’s statement about the state of AI
and the chances of Europe to be part of the winning players in the years to
come. This debate is included into a larger one about the hype and the fake
statements about what is possible today. We may summarize the “AI paradoxes” or
“open questions” as follows:</span><span style="font-family: verdana, sans-serif;"><o:p></o:p></span></span></span></div>
<ul style="margin-top: 0cm;" type="disc">
<li class="MsoNormal" style="color: black; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt; text-align: justify; vertical-align: baseline;"><span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif; font-size: small;">Is today’s AI ready for wonders, or are
there so many impossibilities today that many claims are hyped ?<o:p></o:p></span></span></li>
<li class="MsoNormal" style="color: black; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt; text-align: justify; vertical-align: baseline;"><span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif; font-size: small;">Is the next generation of <span style="mso-spacerun: yes;"> </span>autonomous AI around the corner ? or is
AGI a pure fiction that is totally out of reach ? <o:p></o:p></span></span></li>
<li class="MsoNormal" style="color: black; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt; text-align: justify; vertical-align: baseline;"><span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif; font-size: small;">Should one should just focus on data to build
the best AI strategy (i.e., become your own business’ best data source), or
is there more than data to AI mastery ?<o:p></o:p></span></span></li>
<li class="MsoNormal" style="color: black; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt; text-align: justify; vertical-align: baseline;"><span lang="EN-ZA"><span style="font-family: "verdana" , sans-serif; font-size: small;">Will, as Kai-Fu Lee seems to suggest, only
large massive players dominate, or should we expect to see some breakthrough
from small players ?<o:p></o:p></span></span></li>
</ul>
<div class="MsoNormal" style="text-align: justify; vertical-align: baseline;">
<br /></div>
<div class="MsoNormal" style="text-align: justify; vertical-align: baseline;">
<span lang="EN-ZA" style="color: black;"><span style="font-family: "verdana" , sans-serif; font-size: small;">To try to shed some light on
those questions, I propose a short synthesis of Martin Ford’s book, “<a href="http://book.mfordfuture.com/">Architect of Intelligence - The Truth about
AI from the People Building it</a>”, where 25 world experts share their views
about the future of AI. At the time of this writing,<span style="mso-spacerun: yes;"> </span>this book is the best source to search for answers
to the previous four open questions. The thesis of this post is that, while we
have indeed reached a tipping point about AI and while the “current level of
AI” technology enables a world race of investment and development, there is a
larger field of “tomorrow’s AI” for which predictions are hazardous at best.
Martin Ford’s book is an absolute must-read for anyone who is interested in AI.
As told in the previous post, I find it a great source to explore the questions
and issues raised by Kai-Fu Lee’s book, but there are many other topics
addressed in this book that I will not touch today.</span></span></div>
<div class="MsoNormal" style="text-align: justify; vertical-align: baseline;">
<br /></div>
<br />
<h2 style="margin-bottom: 12.0pt; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: large;">2. Arc<b>hitects of Intelligence</b></span></span></h2>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguX5ptZeaAS2PdF2AH-bS8XIQpxVHUN0BjqA_pqiPk6GMCrkk4yfcx5B1m6lG8CXSeecFgaV0t386qzUVQRFbGO9sG6tfGVdRU4Cg7ywUHr1jMRejc7VDzd_XGdY21Snzog-YfKgugPQk/s1600/ArchitectsOfIntelligence.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="500" data-original-width="333" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguX5ptZeaAS2PdF2AH-bS8XIQpxVHUN0BjqA_pqiPk6GMCrkk4yfcx5B1m6lG8CXSeecFgaV0t386qzUVQRFbGO9sG6tfGVdRU4Cg7ywUHr1jMRejc7VDzd_XGdY21Snzog-YfKgugPQk/s320/ArchitectsOfIntelligence.jpg" width="213" /></a></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><a href="https://en.wikipedia.org/wiki/Martin_Ford_(author)">Martin Ford</a>
is a well-known futurist and author who has worked extensively on topics such
as AI, automation, robots and the future of work. His previous book, “<a href="https://en.wikipedia.org/wiki/Rise_of_the_Robots_(book)">Rise of the Robots
– Technology and the Threats of a Jobless Future</a>” is a thought-provoking
essay that addresses the issues of “<a href="http://organisationarchitecture.blogspot.com/2016/11/le-futur-du-travail-et-la-mutation-des.html">AI
and the future of work</a>” and which I have made a personal reference on this
topic. His new book, “<a href="https://www.amazon.com/Architects-Intelligence-truth-people-building-ebook/dp/B07H8L8T2J">Architects
of Intelligence</a>” is a list of 25 interviews with the world best-known scientists
in the field of Artificial Intelligence and Machine Learning. You may think of
it as an extended version of the Wired article “<a href="https://www.wired.com/story/how-to-teach-artificial-intelligence-common-sense/">How
to teach Artificial Intelligence common sense</a>”. Although each interview is
different, Martin Ford uses a common canvas of questions that have a clear
intersection with the 4 introductory issues. The exceptional quality of the
book comes both from the very distinguished list of scientists but also from
the talent and knowledge of the interviewer.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">In his first chapter Martin Ford says: “<i style="mso-bidi-font-style: normal;">All would acknowledge the remarkable achievements of deep neural
networks over the past decade, but they would likely argue that deep learning
is just “one tool in the toolbox” and that continued progress will require
integrating ideas from other spheres of artificial intelligence”. </i>This book
provides with a remarkable synthesis on the AI topic, but I should say
beforehand that you should read it, because this post only covers a small part
of the content. A summary is next to impossible since, even though there is a
strong common thread of ideas that are shared by the majority of experts, there
are also dissenting opinions. Therefore, what follows is my own synthesis that
represents an editor’s choice both with the topics and the selected voices, even
though I try to be as faithful as possible. Because of the multiple opinions
and the dissenting topics, I have decided to include a fair number of quotes
and to attribute them, consistently, to one of the interviewed scientists. A
synthesis of so many different viewpoints is biased by nature. I try to stay
faithful to the spirits both of the scientists to whom I borrow the quotations
and to Martin Ford as the book editor, but you may disagree.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<h3 style="text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="font-size: large;">2.1 Even the best experts are very careful about what
tomorrow’s AI will be an will do: we do not know what’s ahead</span></b><span lang="EN-US"><span style="font-size: large;">.</span><b style="font-size: medium;"><o:p></o:p></b></span></span></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span>
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">This is one of the most consensual statement I will make in this
synthesis: all experts are very careful about what the future of AI will look
like. <a href="https://en.wikipedia.org/wiki/Yoshua_Bengio">Yoshua Bengio</a>
insists that each new discovery changes the landscape of what will be possible
next: “<i style="mso-bidi-font-style: normal;">As we reach this satisfying
improvement that we are getting in our techniques—we reach the top of the first
hill—we also see the limitations, and then we see another hill that we have to
climb, and once we climb that one we’ll see another one, and so on. It’s
impossible to tell how many more breakthroughs or significant advances are
going to be needed before we reach human-level intelligence</i>.”<span style="mso-spacerun: yes;"> </span><a href="https://en.wikipedia.org/wiki/Fei-Fei_Li">Fei-Fei Li</a> explains that this
is only the beginning, that convolutional networks and deep learning are not
the final tools that will solve all problems. She warns us that “<i style="mso-bidi-font-style: normal;">Dating when a breakthrough will come, is
much harder to predict. I learned, as a scientist, not to predict scientific
breakthroughs, because they come serendipitously, and they come when a lot of
ingredients in history converge. But I’m very hopeful that in our lifetime
we’ll be seeing a lot more AI breakthroughs given the incredible amount of
global investment in this area</i>”. Many other scientists use the same language:
we don’t know, the path is unclear, etc. There is a strong worry about the hype
and exaggeration that <a href="https://www.ft.com/content/4367e34e-db72-11e7-9504-59efdb70e12f">could
cause a new winter</a> or unsubstantiated fears, as said by <a href="https://en.wikipedia.org/wiki/Andrew_Ng">Andrew Ng</a>: “<i style="mso-bidi-font-style: normal;">A lot of the hype about superintelligence
and exponential growth were based on very naive and very simplistic
extrapolations. It’s easy to hype almost anything. I don’t think that there is
a significant risk of superintelligence coming out of nowhere and it happening
in a blink of an eye, in the same way that I don’t see Mars becoming
overpopulated overnight</i>”. <a href="https://en.wikipedia.org/wiki/Rodney_Brooks">Rodney Brooks</a> explains
that hundreds of new algorithms need to be invented before we can address <span class="MsoHyperlink"><a href="https://www.nytimes.com/2018/11/05/opinion/artificial-intelligence-machine-learning.html">all
the limitations of current AI</a></span>. He also notices that even the
technology trends may become more difficult to forecast when we enter the end
of Moore’s Law: “<i style="mso-bidi-font-style: normal;">We’re used to
exponentials because we had exponentials in Moore’s Law, but Moore’s Law is
slowing down because you can no longer halve the feature size. What it’s
leading to though is a renaissance of computer architecture. For 50 years, you
couldn’t afford to do anything out of the ordinary because the other guys would
overtake you, just because of Moore’s Law</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: large;">2.2 Even though there is no consensus of what “hybrid”
may mean, it is most likely that a “system of systems” approach will prevail to
solve the current challenges of AI.</span></span></b></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span>
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">Even the fathers of the modern deep learning are looking for a way to
add structure and architecture to neural nets in order to address larger
challenges than perception and recognition. Yoshua Bengio says: “<i style="mso-bidi-font-style: normal;">Note that your brain is all neural networks.
We have to come up with different architectures and different training
frameworks that can do the kinds of things that classical AI was trying to do,
like reasoning, inferring an explanation for what you’re seeing and planning</i>”.
When we look at the human brain, there seems to be much structure and
specialization that occurs before the birth. Here is what <a href="https://en.wikipedia.org/wiki/Joshua_Tenenbaum">Joshua Tenenbaum</a>
says: “<i style="mso-bidi-font-style: normal;">Elizabeth Spelke is one of the
most important people that anybody in AI should know if they’re going to look
to humans. She has very famously shown that from the age of two to three
months, babies already understand certain basic things about the world …. It
used to be thought that that was something that kids came to and learned by the
time they were one year old, but Spelke and others have shown that in many ways
our brains are born already prepared to understand the world in terms of
physical objects, and in terms of what we call intentional agents</i>.” The
debate starts when it comes to define what the best paradigm could be to add
this structure. For <a href="https://en.wikipedia.org/wiki/Yann_LeCun">Yann
Lecun</a>, “<i style="mso-bidi-font-style: normal;">Everybody agrees that there
is a need for some structure, the question is how much, and what kind of
structure is needed. I guess when you say that some people believe that there
should be structures such as logic and reasoning, you’re probably referring to
Gary Marcus and maybe Oren Etzioni</i>”.</span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-GB</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="375">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hashtag"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Unresolved Mention"/>
</w:LatentStyles>
</xml><![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-pitch:variable;
mso-font-signature:-536870145 1107305727 0 0 415 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-536859905 -1073732485 9 0 511 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-noshow:yes;
mso-style-priority:99;
color:#954F72;
mso-themecolor:followedhyperlink;
text-decoration:underline;
text-underline:single;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}
</style>
</span></span></div>
-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--><br />
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">The majority of scientists advocate for a hybrid approach that combines
different forms of AI. <a href="https://en.wikipedia.org/wiki/Stuart_J._Russell">Stuart
Russel</a> explains that “<i>Carnegie
Mellon’s Libratus poker AI was another very impressive hybrid AI example: it
was a combination of several different algorithmic contributions that were
pieced together from research that’s happened over the last 10 or 15 years</i>”.
He explains the value of randomized algorithms, a technique applied universally
from AI (such as AlphaGo and <a href="https://en.wikipedia.org/wiki/Monte_Carlo_tree_search">MCTS</a>) to
operations research, network and cryptography algorithms. According to him, “<i>The only way that humans and robots can
operate in the real world is to operate at multiple scales of abstraction</i>. Andrew
Ng acknowledges that hybrid combination is de facto a standard for many systems:
“<i>At Landing AI we use hybrids all the
time to build solutions for industrial partners. There’s often a hybrid of deep
learning tools together with, say, traditional computer vision tools because
when your datasets are small, deep learning by itself isn’t always the best
tool</i>”. <a href="https://en.wikipedia.org/wiki/Judea_Pearl">Judea Pearl</a>
makes a great argument about the constraints imposed by small data sets but
then extends to the problem of understanding causality: “<i>Even today, people are building hybrid systems when you have sparse
data. There’s a limit, however, to how much you can extrapolate or interpolate
sparse data if you want to get cause-effect relationships. Even if you have
infinite data, you can’t tell the difference between A causes B and B causes A</i>”.
Evolutionary algorithms – where machine learning tries to simulate and
reproduce evolution – are a plausible path to develop hybrid architectures for
AI, as illustrated by Joshua Tenenbaum: “<i>Evolution
does a lot of architecture search; it designs machines. It builds very
differently, structured machines across different species or over multiple
generations. We can see this most obviously in bodies, but there’s no reason to
think it’s any different in brains. The idea that evolution builds complex
structures that have complex functions, and it does it by a process which is
very different to gradient descent, but rather something more like search in
the space of developmental programs, is very inspiring to me</i>.” </span><span style="font-size: 11pt;"><o:p></o:p></span></span><br />
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<h3 style="text-align: left;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: large;">2.3 <b style="mso-bidi-font-weight: normal;">Deep Learning is “the technology advance of
the decade” and we are only seeing the beginning of the consequences, but it is
not a universal problem solver technique.<span style="mso-spacerun: yes;">
</span></b></span></span></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: small;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><br /></span></b></span>
<span style="font-family: "verdana" , sans-serif; font-size: small;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">There is more to AI than deep
learning</span></b><span lang="EN-US">, Stuart Russel recalls that Deep Learning is a strict subset of Machine
Learning, which is only one kind of AI : “<i style="mso-bidi-font-style: normal;">it
would be a huge mistake for someone to think that deep learning is the same
thing as artificial intelligence, because the ability to distinguish Dalmatian
dogs from bowls of cherries is useful but it is still only a very small part of
what we need to give an artificial intelligence in order for it to be
successful</i>”. <span style="mso-spacerun: yes;"> </span>He recalls that AlphaGo
is a hybrid of classical search-based randomized algorithm and a deep learning
algorithm for position evaluation. This is also what <a href="https://en.wikipedia.org/wiki/Demis_Hassabis">Demmis Hassabis</a> says :
“<i style="mso-bidi-font-style: normal;">Deep learning is amazing at scaling, so
combining that with reinforcement learning allowed it to scale to these large
problems that we’ve now tackled in AlphaGo and DQN—all of these things that
people would have told you was impossible 10 years ago</i>”.</span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: small;"><span lang="EN-US"><br /></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><a href="https://en.wikipedia.org/wiki/Geoffrey_Hinton">Gary Marcus</a>
is famous for his position that we need more than Deep Learning, especially
because it requires a huge amount of data and delivers low levels of
abstraction from that data. This entails that these algorithms are well suited
to “the few big common problems” – such as vision or speech - and less for the
large number of less frequent ones: “<i style="mso-bidi-font-style: normal;">Neural
networks are able to capture a lot of the garden-variety cases, but if you
think about a long-tail distribution, they’re very weak at the tail</i>.” <span style="mso-spacerun: yes;"> </span><a href="https://en.wikipedia.org/wiki/Oren_Etzioni">Oren Etzioni</a> also sees
Deep Learning as one tool in the tool box, that is very good at what it does
but with a rather narrow scope: “<i style="mso-bidi-font-style: normal;">we
really have a long way to go and there are many unsolved problems. In that
sense, deep learning is very much overhyped. I think the reality is that deep
learning, and neural networks are particularly nice tools in our toolbox, but
it’s a tool that still leaves us with a number of problems like reasoning,
background knowledge, common sense, and many others largely unsolved</i>”. I
would argue, differently, that the problems that Deep Learning allow us to
solve – perception - had been plaguing the scientific community for decades and
that solving them makes Deep Learning <span style="mso-spacerun: yes;"> </span>more than a “really nice tool”. Like many
other scientists, I believe that the availability of DL for perception is
opening a new era of hybrid approaches (as is precisely demonstrated by
AlphaGo).<o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<h3 style="text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">2.4 The scientific investigation is running at full
speed, many domains are progressing fast and multiple techniques are added
constantly to the toolbox</span></b><span lang="EN-US">.<o:p></o:p></span></span></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span>
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">Natural Language Processing is a perfect instance of a field that is
making constant progress and that is fueled with the lower-abstraction
progresses of speech/text recognition brought by Deep Learning. We have made
great progresses – translation being a great example – but the consensus is
that we are reaching the <span class="MsoHyperlink"><a href="https://www.nytimes.com/2018/11/05/opinion/artificial-intelligence-machine-learning.html">barrier
of semantics</a></span> (there is only so much you can do with automatic
translation without understanding). This is just critical for dialogues (think
chatbots) as explained by <a href="https://en.wikipedia.org/wiki/Barbara_J._Grosz">Barbara Grosz</a> : “<i style="mso-bidi-font-style: normal;">If you consider any of the systems that
purport to carry on dialogues, however, the bottom line is they essentially
don’t work. They seem to do well if the dialogue system constrains the person
to following a script, but people aren’t very good at following a script. There
are claims that these systems can carry on a dialogue with a person, but in
truth, they really can’t</i>.” Yoshua Bengio explains the search of semantic
understanding: “<i style="mso-bidi-font-style: normal;">There’s a lot of research
in grounded language learning now trying to build an understanding of language,
even if it’s a small subset of the language, where the computer actually
understands what those words mean, and it can act in correspondence to those
words</i>”. <a href="https://en.wikipedia.org/wiki/David_Ferrucci">David Ferrucci</a>,
who was part of the Watson team, works along the same path: “<i style="mso-bidi-font-style: normal;">Elemental Cognition is an AI research
venture that’s trying to do real language understanding. It’s trying to deal
with that area of AI that we still have not cracked, which is, can we create an
AI that reads, dialogs, and builds understanding</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">It is well recognized that Deep Learning works better that we are able
to explain or understand, maybe <span class="MsoHyperlink"><a href="https://www.nature.com/articles/s42256-018-0002-3.pdf">for good reasons</a></span>.
This opens a huge research field of better understanding and characterizing the
deep learning and neural nets techniques. The work from Yoshua Bengio about
autoencoders is a good example of the multiple possible applications of these
techniques besides pure pattern recognition: “<i style="mso-bidi-font-style: normal;">There are two parts to an autoencoder, an encoder and a decoder. The
idea is that the encoder part takes an image, for example, and tries to
represent it in a compressed way, such as a verbal description</i>.” Better
explainability is another hot research topic; for instance, <a href="https://www.mckinsey.com/our-people/james-manyika">James Manyika</a>
talks about <span class="MsoHyperlink"><a href="https://www.oreilly.com/learning/introduction-to-local-interpretable-model-agnostic-explanations-lime">LIME</a></span>
(Local Interpretable Model Agnostic Explanation) : “<i style="mso-bidi-font-style: normal;">LIME tries to identify which particular data sets a trained model relies
on most to make a prediction. Another promising technique is the use of
Generalized Additive Models, or GAMs. These use single feature models
additively and therefore limit interactions between features, and so changes in
predictions cane be determined as features are added</i>”. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">Yann Lecun makes a very interesting distinction between three levels (in
a continuum) of learning from reinforcement learning, supervised learning to
self-supervised learning. Self-supervised learning supports the constant enrichment
of the learning model, as shown in another example brought by Oren Etzioni : “<i style="mso-bidi-font-style: normal;">Tom Mitchell’s work, with lifelong learning
at CMU, is also very interesting—they’re trying to build a system that looks
more like a person: it doesn’t just run through a dataset and build a model and
then it’s done. Instead, it continually operates and continually tries to
learn, and then learn based on that, over a longer extended period of time</i>”.
Yann Lecun is famous for his argument against the hype about reinforcement learning,
saying that you could not learn how to drive this way without too many –
possibly fatal - crashes. As a reinforcement learning practitioner, I find this
argument biased: one could grow the speed very progressively while the
evaluation function penalizes small deviations from safe situation, which is
more or less the way we learn to drive. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">Many large players such as Google or Salesforce are investing massively
into AutoML, the addition of another layer of machine learning methods to
automatically tune the parameters for lower level machine learning techniques.
Fei-Feil Li says: “<i style="mso-bidi-font-style: normal;">An example of what
we’re doing is a product we created that’s called AutoML. This is a unique
product on the market to really lower the entry barrier of AI as much as much
as possible—so that AI can be delivered to people who don’t do AI</i> “. AutoML
is a critical tool for continuous learning, thus it is much more than simply
saving time.<b style="mso-bidi-font-weight: normal;"> It supports the continuous
adaptation to an environment that may be changing</b>.<span style="mso-spacerun: yes;"> </span>This is why it is a core technology for
Digital Manufacturing as show by a startup like <span class="MsoHyperlink"><a href="https://www.tellmeplus.com/">TellMePlus</a></span>. AutoML is clearly a
technology to watch according to <a href="https://en.wikipedia.org/wiki/Jeff_Dean_(computer_scientist)">Jeffrey
Dean</a> : “<i style="mso-bidi-font-style: normal;">We also have a suite of
AutoML products, which are essentially designed for people who may not have as
much machine learning expertise, but want a customized solution for a
particular problem they have. Imagine if you have a set of images of parts that
are going down your assembly line and there are 100 kinds of parts, and you
want to be able to identify what part it is from the pixels in an image. There,
we can actually train you a custom model without you having to know any machine
learning through this technique called AutoML</i>.”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">Last, I want to point out a key insight from Judea Pearl: there are many
things that you cannot learn by simply watching, you have to act – causality cannot
be learned though simple observation. I will return to this idea when I write
about Judea Pearl’s book “<span class="MsoHyperlink"><a href="https://www.nytimes.com/2018/06/01/business/dealbook/review-the-book-of-why-examines-the-science-of-cause-and-effect.html">The
Book of Why – the new science of causes and effects</a></span>”, which is
probably the deepest book I have read in 2018. I believe that this insight will
have a profound effect on future machine learning algorithms, especially for
autonomous robots: “<i style="mso-bidi-font-style: normal;">This is how a child
learns causal structure, by playful manipulation, and this is how a scientist
learns causal structure—playful manipulation. But we have to have the abilities
and the template to store what we learn from this playful manipulation so we
can use it, test it, and change it. Without the ability to store it in a
parsimonious encoding, in some template in our mind, we cannot utilize it, nor
can we change it or play around with it</i>”. I see there a delightful parallel
with Nassim Taleb’s idea that you cannot really learn without “<a href="https://en.wikipedia.org/wiki/Skin_in_the_Game_(book)">skin in the game</a>”.<o:p></o:p></span></span></div>
<h3 style="text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: small;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><br /></span></b></span></h3>
<h3 style="text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="font-size: large;">2.5 <span style="mso-spacerun: yes;"> </span>Although
the AGI concept is difficult to pin down, there is a consensus that a “spectacularly
better level of AI” performance will be achieved this century</span></b><span lang="EN-US"><span style="font-size: large;">. </span><span style="font-size: small;"><o:p></o:p></span></span></span></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span>
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">Stuart Russel reminds us that the goal of AI has always been to create general-purpose
intelligent machines. Because this is hard, most of the work has been applied
to more specific subtasks and application tasks, but “<i style="mso-bidi-font-style: normal;">arguably, some of the conceptual building blocks for AGI have already
been here for decades. We just haven’t figured out yet how to combine those
with the very impressive learning capacities of deep learning</i>.”<span style="mso-spacerun: yes;"> </span>Fei-Fei Li position is not that different: “<i style="mso-bidi-font-style: normal;">So, let’s first define AGI, because this
isn’t about AI versus AGI: it’s all on one continuum. We all recognize today’s
AI is very narrow and task specific, focusing on pattern recognition with
labeled data, but as we make AI more advanced, that is going to be relaxed, and
so in a way, the future of AI and AGI is one blurred definition</i>”. Some
research scientists, like Demmis Hassabis, have no difficulty recognizing their
end goal: “<i style="mso-bidi-font-style: normal;">From the beginning, we were an
AGI company, and we were very clear about that. Our mission statement of
solving intelligence was there from the beginning. As you can imagine, trying
to pitch that to standard venture capitalists was quite hard</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">As told in the first section, it is impossible to speculate about future
scientific discoveries, so many scientists prefer to stay vague about the time
line. For instance, Stuart Russel says: “<i style="mso-bidi-font-style: normal;">So
that is why most AI researchers have a feeling that AGI is something in the
not-too-distant future. It’s not thousands of years in the future, and it’s
probably not even hundreds of years in the future</i>”. Yann Lecun has a
similar position: “<i style="mso-bidi-font-style: normal;">How much prior structure
do we need to build into those systems for them to actually work appropriately
and be stable, and for them to have intrinsic motivations so that they behave
properly around humans? There’s a whole lot of problems that will absolutely
pop up, so AGI might take 50 years, it might take 100 years, I’m not too sure</i>”.
One thing seems clear though, AGI is not around the corner, as told by Andrew
Ng: “<i style="mso-bidi-font-style: normal;">The honest answer is that I really
don’t know. I would love to see AGI in my lifetime, but I think there’s a good
chance it’ll be further out than that. … Frankly, I do not see much progress.
Other than having faster computers and data, and progress at a very general
level, I do not see specific progress toward AGI</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">It is hard to speculate about the “when”, but many scientists have their
opinion about what the path towards AGI could look like. For Stuart Russel, “<i style="mso-bidi-font-style: normal;">many of the conceptual building blocks
needed for AGI or human-level intelligence are already here. But there are some
missing pieces. One of them is a clear approach to how natural language can be
understood to produce knowledge structures upon which reasoning processes can
operate</i>.” For Gary Marcus, capturing common sense requires adding other
techniques than Deep Learning: “<i style="mso-bidi-font-style: normal;">Another
way to put it is that humans have all kinds of common-sense reasoning, and that
has to be part of the solution. It’s not well captured by deep learning. In my
view, we need to bring together symbol manipulation, which has a strong history
in AI, with deep learning. They have been treated separately for too long, and
it’s time to bring them together</i>”. Joshua Tenenbaum makes a compelling
argument that deep understanding of natural language (which has to be measured
in other ways than the Turing test, which most scientists recognize as too easy
to fool) is on the critical path towards AGI : “ <i style="mso-bidi-font-style: normal;">Language is absolutely at the heart of human intelligence, but I think
that we have to start with the earlier stages of intelligence that are there
before language, but that language builds on. If I was to sketch out a
high-level roadmap to building some form of AGI of the sort you’re talking
about, I would say you could roughly divide it into three stages corresponding
to three rough stages of human cognitive development</i>”. <o:p></o:p></span></span></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></b></h3>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: large;">2.6 Our future will be strongly impacted by the
constant progress of AI in applicability and performance.</span></span></b></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span>
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">In a way very similar to Kai-Fu Lee or the two books that I quoted in
the introduction, most scientists interviewed in Martin Ford’s book see AI as a
powerful transformation force. Start Russel says: “<i style="mso-bidi-font-style: normal;">what’s likely to happen is that machines will far exceed human
capabilities along various important dimensions. There may be other dimensions
along which they’re fairly stunted and so they’re not going to look like humans
in that sense</i>”. Yoshua Bengio also foresees a very strong impact of AI to
come: “<i style="mso-bidi-font-style: normal;">I don’t think it’s overhyped. The
part that is less clear is whether this is going to happen over a decade or
three decades. What I can say is that even if we stop basic research in AI and
deep learning tomorrow, the science has advanced enough that there’s already a
huge amount of social and economic benefit to reap from it simply by
engineering new services and new products from these ideas</i>”. Geoffrey
Hinton explains that there are many more dangerous technologies out there (such
as molecular biology) compared to the threat of “ultra-intelligent systems”. He
sees the probable outcome as positive even though he opens the need for social
regulation which we will discuss later on: “<i style="mso-bidi-font-style: normal;">I
hope the rewards will outweigh the downsides, but I don’t know whether they
will, and that’s an issue of social systems, not with the technology</i>”.
Andrew Ng is confident that AI technology has reached the critical mass for
delivering value and that we should not experience a new AI winter: “<i style="mso-bidi-font-style: normal;">In the earlier AI winters, there was a lot
of hype about technologies that ultimately did not really deliver. The
technologies that were hyped were really not that useful, and the amount of
value created by those earlier generations of technology was vastly less than
expected. I think that’s what caused the AI winters</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">Artificial Intelligence is seen very much as “Augmented Intelligence”, a
technique that will help humans to be more efficient. For instance, <a href="https://en.wikipedia.org/wiki/Rana_el_Kaliouby">Rana el Kaliouby</a>
says: “<i style="mso-bidi-font-style: normal;">My thesis is that this kind of
interface between humans and machines is going to become ubiquitous, that it
will just be ingrained in the future human-machine interfaces, whether it’s our
car, our phone or smart devices at our home or in the office. We will just be
coexisting and collaborating with these new devices, and new kinds of
interfaces</i>“. <span style="mso-spacerun: yes;"> </span>Barbara Grosz sees a
similar pattern in the world of multi-agent systems: <i style="mso-bidi-font-style: normal;">“This whole area of multi-agent systems now addresses a wide range of
situations and problems. Some work focuses on strategic reasoning; other on
teamwork. And, I’m thrilled to say, more recently, much of it is now really
looking at how computer agents can work with people, rather than just with other
computer agents</i>”. David Ferrucci at Elemental Cognition envision a future
where human and machine intelligence collaborate tightly and fluently: “<i style="mso-bidi-font-style: normal;">Through thought-partnership with machines
that can learn, reason, and communicate, humans can do more because they don’t
need as much training and as much skill to get access to knowledge and to apply
it effectively. In that collaboration, we are also training the computer to be
smarter and more understanding of the way we think</i>”. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">A key point that is made by many scientists is that AI is part of a
larger ecosystem – software, digitalization, connected objects and robots -,
and will not move forward independently but together with other technology
advances. For <a href="https://en.wikipedia.org/wiki/Daniela_L._Rus">Daniela
Rus</a>, “<i style="mso-bidi-font-style: normal;">the advances in navigation were
enabled by hardware advances. When the LIDAR sensor—the laser scanner—was
introduced, all of a sudden, the algorithms that didn’t work with sonar started
working, and that was transformational</i>”. Rodney Brooks insists that we need
to take a larger perspective when want to understand the future transformation:
“<i style="mso-bidi-font-style: normal;">I don’t deny that, but what I do deny is
when people say, oh that’s AI and robots doing that. As I say, I think this is
more down to digitalization</i>”. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<br /></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-bidi-font-size: 11.0pt; mso-fareast-font-family: "Times New Roman";"><span style="font-family: "verdana" , sans-serif; font-size: large;">2.7 Faced to the speed of change, it is likely that our
mature countries will need adaptive mechanisms, similar to “universal basic
income”.</span></span></b></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span>
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">The ideal mechanism to help the society adapt to an era of fast
transformation due to accrued automation is yet to be determined, but there is
a consensus among the scientists interviewed by Martin Ford that something is
necessary. Yann Lecun says: “<i style="mso-bidi-font-style: normal;">Economic
disruption is clearly an issue. It’s not an issue without a solution, but it’s
an issue with considerable political obstacles, particularly in cultures like
the US where income and wealth redistribution are not something that’s
culturally accepted</i>”. James Manyika has a strong opinion on the possible
scope of AI-fueled automation: “<i style="mso-bidi-font-style: normal;">By
looking at all this, we have concluded that on a task level in the US economy,
roughly about 50% of activities—not jobs, but tasks, and it’s important to
emphasize this—that people do now are, in principle, automatable</i>”. Gary
Marcus has a similar view, even if the timeline is stretched: “<i style="mso-bidi-font-style: normal;">Driverless cars are harder than we thought,
so paid drivers are safe for a while, but fast-food workers and cashiers are in
deep trouble, and there’s a lot of them in the workplace. I do think these
fundamental changes are going to happen. Some of them will be slow, but in the
scale of, say, 100 years, if something takes an extra 20 years, it’s nothing</i>”.
<span style="mso-spacerun: yes;"> </span>The conclusion, as pointed out by Daphne
Koller, is that society needs to think hard about the disruption that is
coming: “<i style="mso-bidi-font-style: normal;">Yes, I think that we are looking
at a big disruption on the economic side. The biggest risk/opportunity of this
technology is that it will take a lot of jobs that are currently being done by
humans and have those be taken over to a lesser or greater extent by machines.
There are social obstacles to adoption in many cases, but as robust increased
performance is demonstrated, it will follow the standard disruptive innovation
cycle</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">For many scientists, the solution will look very much like <a href="https://en.wikipedia.org/wiki/Basic_income">Universal Basic Income</a>
(UBI), from Geoffrey Hinton : “<i style="mso-bidi-font-style: normal;">Yes, I
think a basic income is a very sensible idea</i>” to Yoshua Bengio : “<i style="mso-bidi-font-style: normal;">I think a basic income could work, but we
have to take a scientific view on this to get rid of our moral priors that say
if a person doesn’t work, then they shouldn’t have an income. I think it’s
crazy</i>”. Gary Markus sees UBI as the only solution to the inevitable job
loss: “<i style="mso-bidi-font-style: normal;">I see no real alternative. We will
get there, but it’s a question of whether we get there peacefully through a
universal agreement or whether there are riots on the street and people getting
killed. I don’t know the method, but I don’t see any other ending</i>”. Ray
Kurzweil provides the optimistic version of this, since he thinks that the
positive outcome of AI will have raised the overall revenue: “<i style="mso-bidi-font-style: normal;">I made a prediction at TED that we will have
universal basic income, which won’t actually need to be that much to provide a
very high standard of living, as we get into the 2030s</i>”. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">The exact formula is not clear and some object to universal income as
“inactivity subsidy”, but everyone is calling for something to soften the
strength of the upcoming transformation. For instance, Demmis Hassabis says: “<i style="mso-bidi-font-style: normal;">I think that’s the key thing, whether that’s
universal basic income, or it’s done in some other form. There are lots of
economists debating these things, and we need to think very carefully about how
everyone in society will benefit from those presumably huge productivity gains,
which must be coming in, otherwise it wouldn’t be so disruptive</i>”. James
Manyika likes the debate about UBI because he agrees that something has to happen,
although he points out that work brings more than income, so the replacement of
jobs should not be income alone. We need to supply as well “<i style="mso-bidi-font-style: normal;">meaning, dignity, self-respect, purpose,
community and social effects, and more</i>” – hence UBI is not enough: “<i style="mso-bidi-font-style: normal;">My issue with it is that I think it misses
the wider role that work plays. Work is a complicated thing because while work
provides income, it also does a whole bunch of other stuff. It provides
meaning, dignity, self-respect, purpose, community and social effects, and
more. By going to a UBI-based society, while that may solve the wage question,
it won’t necessarily solve these other aspects of what work brings”</i>. David
Ferrucci also welcomes the need for regulation, while he points out how hard
this is, to regulate without slowing down the advances and the benefits of
technology for society. Eventually, what is needed is not only universal basic
income, but universal contribution to society and universal training. Joshua
Tenenbaum is more open about possible solutions in the future: “<i style="mso-bidi-font-style: normal;">We should think about a basic income, yes,
but I don’t think anything is inevitable. Humans are a resilient and flexible
species. Yes, it might be that our abilities to learn and retrain ourselves
have limitations to them. If technology keeps advancing, especially at this
pace, it might be that we might have to do things like that. But again, we’ve
seen that happen in previous eras of human history. It’s just unfolded more
slowly</i>”. Yann Lecun emphasizes the importance of training when society
needs to undergo a strong technology shift : “ <i style="mso-bidi-font-style: normal;">You would think that as technological progress accelerates, there’d be
more and more people left behind, but what the economists say is that the speed
at which a piece of technology disseminates in the economy is actually limited
by the proportion of people who are not trained to use it</i>”. A similar view
is expressed by Andrew Ng<i style="mso-bidi-font-style: normal;">: “I don’t
support a universal basic income, but I do think a conditional basic income is
a much better idea. There’s a lot about the dignity of work and I actually
favor a conditional basic income in which unemployed individuals can be paid to
study”</i>. <o:p></o:p></span></span></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></b></h3>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: large;">2.8 <span style="mso-spacerun: yes;"> </span>Most AI
experts are optimistic about the future that AI will make possible for our
societies, despite the complex transformation journey.</span></span></b></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: small;"><i style="mso-bidi-font-style: normal;"><span lang="EN-US"><span style="mso-spacerun: yes;"><br /></span></span></i></span>
<span style="font-family: "verdana" , sans-serif; font-size: small;"><i style="mso-bidi-font-style: normal;"><span lang="EN-US"><span style="mso-spacerun: yes;"> </span></span></i><span lang="EN-US">The consensus is rather positive about what AI will
enable society to accomplish in the years to come. For instance, Stuart Russel
says: “<i style="mso-bidi-font-style: normal;">As an optimist, I can also see a
future where AI systems are well enough designed that they’re saying to humans,
“Don’t use us. Get on and learn stuff yourself. Keep your own capabilities,
propagate civilization through humans, not through machines</i>.” Stuart Russel
explains that AI should be controllable and safe by design, otherwise it fails
its purpose. For Yann Lecun, the rise of automation will create a premium on meaningful
human interaction: “<i style="mso-bidi-font-style: normal;">Everything that’s by
done by machine is going to get a lot cheaper, and anything that’s done by
humans is going to get more expensive. We’re going to pay more for authentic
human experience, and the stuff that can be done by machine is going to get cheap</i>”.
For James Maniyika, the race for AI applications has already started (“<i style="mso-bidi-font-style: normal;">the genie is out of the bottle</i>”) and
this is good because “<i style="mso-bidi-font-style: normal;">we’re about to
enter a new industrial revolution. I think these technologies are going to have
an enormous, transformative and positive impact on businesses, because of their
efficiency, their impact on innovation, their impact on being able to make
predictions and to find new solutions to problems, and in some case go beyond
human cognitive capabilities</i>”. Oren Etzioni quotes one of his colleagues,
Eric Horvitz, to point out that the advances that AI will enable are badly
needed, that is, the risk of not using AI is higher than the risk of moving forward:
“<i style="mso-bidi-font-style: normal;">He has a great quote when he responds to
people who are worried about AI taking lives. He says that actually, it’s the
absence of AI technology that is already killing people. The third-leading
cause of death in American hospitals is physician error, and a lot of that
could be prevented using AI. So, our failure to use AI is really what’s costing
lives</i>”. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: small;"><span lang="EN-US"><br /></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">Although I use the term “race” to reflect the intensity of the
competition – and also as a link to Kai-Fu Lee’s book – most scientists do not
see the international competition as a zero-sum game. On the contrary, there is
room for collaboration as well. For instance, Andrew Ng says: “<i style="mso-bidi-font-style: normal;">AI is an amazing capability, and I think
every country should figure out what to do with this new capability, but I
think that it is much less of a race than the popular press suggests</i>”.
Still other see the competition as a race, as pointed out by David Ferrucci: “<i style="mso-bidi-font-style: normal;">To stay competitive as a nation you do have
to invest in AI to give a broad portfolio. You don’t want to put all your eggs
in one basket. You have to attract and maintain talent to stay competitive, so
I think there’s no question that national boundaries create a certain
competition because of how much it affects competitive economics and security</i>”.
This intense competition should receive the attention of public offices and
some form of regulation is called for. For instance, Oren Etzioni says: <i style="mso-bidi-font-style: normal;">“Yes, I think that regulation is both
inevitable and appropriate when it comes to powerful technologies. I would
focus on regulating the applications of AI—so AI cars, AI clothes, AI toys, and
AI in nuclear power plants, rather than the field itself. Note that the
boundary between AI and software is quite murky!” </i><span style="mso-spacerun: yes;"> </span>We see once more the idea that AI is not an isolated
technology, but a feature of advanced software systems. As told earlier, many
scientists insist on the critical need for training to help people accommodate this
new technology wave. To end on a positive note, Daniela Rus quotes the example
of BitSource: “<i style="mso-bidi-font-style: normal;">BitSource was launched a
couple of years back in Kentucky, and this company is retraining coal miners
into data miners and has been a huge success. This company has trained a lot of
the miners who lost their jobs and who are now in a position to get much
better, much safer and much more enjoyable jobs</i>”. <o:p></o:p></span></span></div>
<h2 style="text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;"><b><span lang="EN-ZA" style="color: black;"><br /></span></b></span></h2>
<h2 style="text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;"><b><span lang="EN-ZA" style="color: black;">3. Conclusion</span></b><span lang="EN-ZA" style="color: black;"> </span></span></h2>
<div class="MsoNormal" style="text-align: left;">
<span lang="EN-ZA" style="mso-ansi-language: EN-ZA; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></o:p></span>
<span lang="EN-ZA" style="mso-ansi-language: EN-ZA; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: FR;"><o:p><span style="font-family: "verdana" , sans-serif; font-size: small;"> </span></o:p></span><span style="font-family: "verdana" , sans-serif; font-size: small; text-align: justify;">This post is already quite long, due to the richness
of the source and the complexity of the questions. I will simply end with a small
summary of my key convictions (hence my key biases) about AI’s future in the
years to come:</span></div>
<ol style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "verdana" , sans-serif; font-size: small;">Nothing summarizes my way of thinking better than <span class="MsoHyperlink" style="text-align: justify; text-indent: -36pt;"><span lang="EN-ZA"><a href="https://en.wikipedia.org/wiki/The_Master_Algorithm">Pedro Domingo</a></span></span><span lang="EN-ZA" style="text-align: justify; text-indent: -36pt;">’s great quote that I used
earlier: “ <i>People worry that computers
will get too smart and take over the world, but the real problem is that
they’re too stupid and they’ve already taken over the world</i>”. This is the
first part of the introduction statement: the AI revolution – with all its
current shortcomings - has already started.</span></span></li>
<li style="text-align: justify;"><span style="font-family: "verdana" , sans-serif; font-size: small;">“Unit techniques” – such as deep neural nets or Bayesian networks - will continue to improve (because the domain
is still young, and because there is a lot that we do not understand about our
own successes with these techniques) but I expect to see more of the
improvement coming from “system of systems” approach. Hence system engineering
is critical part of AI science and technology, as the reading of Martin Ford’s
book makes abundantly clear. However, the better understanding of deep learning
is a fascinating quest (as shown in the book or in <span class="MsoHyperlink" style="text-align: justify; text-indent: -36pt;"><span lang="EN-ZA"><a href="https://distill.pub/2017/aia/">this great blog post from Google Brain’s
team</a></span></span><span lang="EN-ZA" style="text-align: justify; text-indent: -36pt;">) that may bring
revolutionary advances of its own.</span></span></li>
<li style="text-align: justify;"><span style="font-family: "verdana" , sans-serif; font-size: small;">It is very hard, not to say impossible, to forecast the next advances in AI
methods. This makes predicting China’s future superiority, or Europe’s
impediment, a risky proposition. Europe has a lot of strength in its science,
academic and innovation network. At the same time (“<i>en même temps</i>”) extracting the value from what is currently at hand
requires a level of investments, business drive, access to data and computing
resources, and software engineering skills that Europe is comparatively
lacking, as pointed out by Kai-Fu Lee. If you have a hard time to understand
why massive computing power matters with AI, listen to <span class="MsoHyperlink" style="text-align: justify; text-indent: -36pt;"><span lang="EN-ZA"><a href="http://exponentialview.libsyn.com/the-state-of-artificial-intelligence-jack-clark-and-azeem-azhar-in-conversation">Azeem
Azhar conversation with Jack Clark in this great podcast</a></span></span><span lang="EN-ZA" style="text-align: justify; text-indent: -36pt;">.</span></span></li>
<li style="text-align: justify;"><span style="font-family: "verdana" , sans-serif; font-size: small;">I am a strong believer that biomimicry will continue to lead AI research
towards new techniques and paradigms. For instance, it is safe to bet that progresses
in perception will lead to progresses with reasoning. Because there is a
continuum between narrow and general AI, or between weak and strong AI, <span class="MsoHyperlink" style="text-align: justify; text-indent: -36pt;"><span lang="EN-ZA"><a href="http://informationsystemsbiology.blogspot.com/2015/06/strong-artificial-intelligence-is.html">progress
will surprise us</a></span></span><span lang="EN-ZA" style="text-align: justify; text-indent: -36pt;">, even tough the “endgame ambition” of AGI is probably far away. The
excessive hype about what AI can do today, or the heated debates about
“superintelligence”, have created a reaction, especially from research
scientists over 50, telling that “there is nothing new nor truly exciting about
AI today”. I most definitely disagree. Though no one is able to foresee the
next advances in AI science, I have a strong conviction that the previous
accumulation of the past decade will create new amazing combinations and
applications in the decade to come.</span></span></li>
</ol>
<br />
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<!--EndFragment--></div>
Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com4tag:blogger.com,1999:blog-438942112364524044.post-64845467278378498302018-12-31T04:54:00.006-08:002018-12-31T05:00:01.483-08:00 What Today’s AI can and cannot do ? (Part 1)<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-GB</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="375">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hashtag"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Unresolved Mention"/>
</w:LatentStyles>
</xml><![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:decorative;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-pitch:variable;
mso-font-signature:-536870145 1107305727 0 0 415 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-1610611985 1073750139 0 0 159 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-noshow:yes;
mso-style-priority:99;
color:#954F72;
mso-themecolor:followedhyperlink;
text-decoration:underline;
text-underline:single;}
p
{mso-style-noshow:yes;
mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman",serif;
mso-fareast-font-family:"Times New Roman";}
p.MsoNoSpacing, li.MsoNoSpacing, div.MsoNoSpacing
{mso-style-priority:1;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
mso-add-space:auto;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
mso-add-space:auto;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
mso-add-space:auto;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
{mso-style-priority:34;
mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-type:export-only;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
mso-add-space:auto;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
@page WordSection1
{size:595.0pt 842.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:698707128;
mso-list-type:hybrid;
mso-list-template-ids:1563069766 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l1
{mso-list-id:767584576;
mso-list-template-ids:698360590;}
@list l1:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l1:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level5
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level8
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l2
{mso-list-id:1170829228;
mso-list-type:hybrid;
mso-list-template-ids:-652440772 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l2:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l2:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l2:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l2:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l2:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l2:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l2:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l2:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l2:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l3
{mso-list-id:1664628395;
mso-list-type:hybrid;
mso-list-template-ids:-389794944 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l3:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l3:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l3:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l3:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l3:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l3:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l3:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l3:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l3:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
</style>
</div>
<br />
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-ansi-language:EN-GB;}
</style>
<![endif]-->
<!--StartFragment-->
<br />
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<h2 style="text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b><span style="color: black; font-size: large;">1. Introduction</span></b></span></h2>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNoSpacing" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-family: "verdana" , sans-serif; font-size: small;">This last post of 2018
returns on the topic of the year : <a href="http://informationsystemsbiology.blogspot.com/2018/04/artificial-intelligence-applications.html">Artificial
Intelligence and Machine Learning</a>. Many new books have been published in
the second part of the year, including Kai-Fu Lee’s Book “<a href="https://aisuperpowers.com/">AI Superpowers – China, Silicon Valley and
the new world order</a>”. This thought-provoking book has achieved the New York
Times bestseller status, rightly so in my opinion because it brings the
multi-cultural insights of someone who knows very well the US AI ecosystem –
having worked, for instance, both at Apple and Google – and the new vibrant
China AI ecosystem. Besides, Kai-Fu Lee has made a number of provocative press
conferences and interviews where he is very forceful about China and US
superiority versus the rest of the world, especially <span style="mso-spacerun: yes;"> </span>Europe, where he sees “<a href="https://sifted.eu/articles/interview-kaifu-lee-artificial-intelligence/">no
chances for the AI sector</a>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";"><span style="font-family: "verdana" , sans-serif; font-size: small;">The core argument of Kai-Fu Lee’s Book is that
Artificial Intelligence has moved from Science to Engineering. This is a very
strong statement, with two parts: (a) the incredible advances of the past 10
years are ready for massive deployment and will have a huge impact on the work,
(b) what matters is there already and what will come next is too speculative to
be a foundation for the next ten years to come – hence the implementation race
has started. The first part is no surprise, the same message is at the core of our
<a href="http://academie-technologies-prod.s3.amazonaws.com/2018/04/06/13/49/30/183/Rapport_IA_DEF.pdf">NATF
report on AI and ML</a>, or in the two previous great books that I have quoted
many times : “<a href="https://www.boozallen.com/s/insight/publication/the-mathematical-corporation.html">The
Mathematical Corporation - Where Machine Intelligence and Human Ingenuity
Achieve the Impossible</a>” and “<a href="https://www.accenture.com/us-en/insight-human-machine-ai">Human + Machine
– Reimagining work in the age of AI</a>”. The second part is much more controversial.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";"><span style="font-family: "verdana" , sans-serif; font-size: small;">Indeed, many voices are saying the opposite of <i style="mso-bidi-font-style: normal;">the second part of the statement</i>: AI today
is still in its infancy and we have many hurdles to address before we can scale
to truly significant achievement. Among those, the great paper from Melanie Mitchell,
“<a href="https://www.nytimes.com/2018/11/05/opinion/artificial-intelligence-machine-learning.html">Artificial
Intelligence Hits the Barrier of Meaning</a>” has received a lot of well-deserved
attention. One could see a contradiction in the Kai-Fu Lee’s versus Melanie
Mitchell’s “state of AI” viewpoints. I believe that they are both right (hence
a little bit wrong as well), as is beautifully summarized by this great quote
from <a href="https://en.wikipedia.org/wiki/Pedro_Domingos">Pedro Domingos</a> –
the author of the “The Master Algorithm” bestseller :<span style="mso-spacerun: yes;"> </span>“<b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">People worry that computers will get too
smart and take over the world, but the real problem is that they’re too stupid
and they’ve already taken over the world</i></b>”. My goal with this two-part
blog post is to deep dive into this apparent contradiction.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: small;"><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";">Fortunately,
another great book was published recently by Martin Ford, “<a href="http://book.mfordfuture.com/">Architects of Intelligence: The Truth about
AI from the People Building it</a>”, which is clearly the best book that I have
ever read on this topic. This book is a series of 24 interviews from some of
the best minds in the world – a great selection of the best-known scientists
who have made AI advances in the past 30 years. This book, in my opinion, gives
all the necessary clues to see all that is relevant in Kai-Fu Lee’s great book –
including the call to action and the dire warnings – but also to see that this
is only a small part of the story : <i style="mso-bidi-font-style: normal;">the
future of today’s AI</i>. The other part, the future of tomorrow’s AI, is by
construction much harder to speculate about but it does not entail that what we
not know will not exist </span><span lang="EN-US" style="color: black;"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;">J</span></span><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";">
The first part of this post will address the future of today’s AI following the
steps of Kai-Fu Lee. The next part – in an upcoming blog post – will look at
the other half of the question following the footsteps of the “Architects of AI”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 12pt; text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: x-small;"><b><span lang="EN-US" style="color: black; font-size: large;">2. AI Superpowers – The upcoming revolution of today’s
AI </span></b><span lang="EN-US" style="font-size: small;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSNeHbNguIBs7rfSF0CtdYzCl7hfem3-Ox6vHcSoBfUTLJ1BUFN486tcrFgAtXTuuI4pBlUwyZMppK67mR4gXZ54m6zHio2gBsFIt2rDVyOMCWxSGsgI5oc0GDmJvIAp_Uh1krA7s-qkc/s1600/AISuperpowers.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="500" data-original-width="333" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSNeHbNguIBs7rfSF0CtdYzCl7hfem3-Ox6vHcSoBfUTLJ1BUFN486tcrFgAtXTuuI4pBlUwyZMppK67mR4gXZ54m6zHio2gBsFIt2rDVyOMCWxSGsgI5oc0GDmJvIAp_Uh1krA7s-qkc/s320/AISuperpowers.jpg" width="213" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";"><span style="font-family: "verdana" , sans-serif; font-size: small;">This very
synthetic book review should include a more detailed profile on the author,
Kai-Fu Lee, that you <a href="https://en.wikipedia.org/wiki/Kai-Fu_Lee">may
find here.</a> It is important to understand that Kai-Fu Lee has started his
career as a scientist in the field of AI<span style="mso-spacerun: yes;">
</span>- “<i style="mso-bidi-font-style: normal;">As a young Ph.D. student
researching artificial intelligence at Carnegie Mellon University, I studied
under pioneering AI researcher Raj Reddy. In 1986, I created the first software
program to defeat a member of the world championship team for the game Othello</i>”.
He has worked in many prestigious Silicon Valley companies and made significant
achievements in the field of natural language processing. He then returned to China
as the head of “Google China” before quitting to start his own VC activity in
China. The book is well written, deeply personal (I will not talk here about
the last part, which you should read by yourself), and I will simply here point
out some key ideas without any pretense of completeness.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";"><span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";"><span style="font-family: "verdana" , sans-serif; font-size: small;">The book
starts with a recollection of <a href="https://en.wikipedia.org/wiki/AlphaGo_versus_Ke_Jie">AlphaGo victory over
Ke Jie</a>. After the spectacular victory over <a href="https://en.wikipedia.org/wiki/Lee_Sedol">Lee Seedol</a> that stunned the
world, AlphaGo beat in May 2017 the Chinese champion considered the best world
player at that time. Kai-Fu Lee emphasizes the importance of Go in Chinese culture
and how it had been associated for a long time with human intelligence. Hence
the “machine victory” came as a huge surprise and a very strong waking call for
Chinese government and entrepreneurs: <span style="color: black; mso-themecolor: text1;">“<b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">To people here, AlphaGo’s victories were both a challenge and an
inspiration. They turned into China’s “Sputnik Moment” for artificial
intelligence</i></b>”.</span><span style="color: #4472c4; mso-themecolor: accent1;">
</span>Kai-Fu Lee considers that this victory over the Go champion played a
critical role for the Chinese government to make a strategic investment into AI:
“ <i style="mso-bidi-font-style: normal;">And less than two months after Ke Jie
resigned his last game to AlphaGo, the Chinese central government issued an
ambitious plan to build artificial intelligence capabilities</i>”. This is the
starting point for the rest of the book, which describes how China has become the
biggest playfield for Artificial Intelligence development in the world: “<i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;">But over the past three years China has caught AI fever, experiencing a
surge of excitement about the field that dwarfs even what we see in the rest of
the world</span></i><span style="color: #4472c4; mso-themecolor: accent1;">”.</span><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: small;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman"; mso-themecolor: text1;">A foundation idea of
this book is that AI requires a lot of data</span></b><span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman"; mso-themecolor: text1;">, and the more data you have the better your AI will be</span><span lang="EN-US" style="color: #4472c4; mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman"; mso-themecolor: accent1;">: “</span><i style="mso-bidi-font-style: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";">Given much
more data, an algorithm designed by a handful of mid-level AI engineers usually
outperforms one designed by a world-class deep-learning researcher. Having a
monopoly on the best and the brightest just isn’t what it used to be”. </span></i><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";">We see the same
pattern here, the combination of a well-admitted idea “you need lots of data to
develop world-class AI capabilities” – there is not one book or report that
does not explain this – and a more debatable point that says that if you have
more data, you will necessary win, independently of the amount of talents. Kai-Fu
Lee uses the remarkable story of machine vision, and the role of the ImageNet
data set, as an illustration of his vision: “<i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;">Doing this requires
massive amounts of relevant data, a strong algorithm, a narrow domain, and a
concrete goal. If you’re short any one of these, things fall apart”. </span></i><span style="color: black; mso-themecolor: text1;"><span style="mso-spacerun: yes;"> </span>The importance of massive data collection is
the first argument about China’s future superiority. China is collecting more
data because of its size, because of the advanced status of digital life in
China – from WeChat being the ubiquitous digital platform to the massive
deployment of connected objects and mass-market IoT, and because regulation is
much more “friendly” towards leveraging value through AI : “<i style="mso-bidi-font-style: normal;">t</i></span><i style="mso-bidi-font-style: normal;">he rich real-world interactions in China’s alternate internet universe
are creating the massive data that will power its AI revolution</i>”. There is
a very strong argument here, that we shall see in Martin Ford’s book as well,
that AI development thrives in a fully digitalized society. The result is the
first competitive advantage of China according to Kai-Fu Lee: “<i style="mso-bidi-font-style: normal;">China has already vaulted far ahead of the
United States as the world’s largest producer of digital data, a gap that is
widening by the day</i>”.<br /><br /><span style="color: black; mso-themecolor: text1;"><o:p></o:p></span></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";"><span style="font-family: "verdana" , sans-serif; font-size: small;">A key conviction
of Kai-Fu Lee is that,<b style="mso-bidi-font-weight: normal;"><span style="color: black; mso-themecolor: text1;"> after a decade of deep learning scientific
innovation, we are entering a decade of implementation</span></b>, where critical
masses of data, talents and energy will tell who wins the race. He sees a
paradigm shift, where the question is no longer to develop new tools but to
find as quickly as possible – because this is a race – where value may be found
using our existing tools: “ <i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;">That global shift is the product of
two transitions: from the age of discovery to the age of implementation, and
from the age of expertise to the age of data”. </span></i><span style="color: black; mso-themecolor: text1;">Following the two books that I quoted
in the introduction, Kai-Fu Lee issues a strong call to action: “</span><i style="mso-bidi-font-style: normal;">But making that distinction between
discovery and implementation is core to understanding how AI will shape our
lives and what—or which country—will primarily drive that progress</i>”. <span style="mso-spacerun: yes;"> </span>The paradigm shift towards implementation means
that software and engineering skills play a critical role, which I could not
agree more since this was the key message <a href="http://informationsystemsbiology.blogspot.com/2018/04/artificial-intelligence-applications.html">from
our NATF report</a>. There are many examples in the book where Kai-Fu Lee
insists on the specificities of software architecture and solutions that were developed
by Chinese entrepreneurs to adapt to their markets: “<i style="mso-bidi-font-style: normal;">Chinese companies have never truly embraced enterprise software or
standardized data storage, instead keeping their books according to their own
idiosyncratic systems</i>”. <span style="mso-spacerun: yes;"> </span>I will quote
his argument for “growing AI from local usage specificity” because it is both
very true and somehow contradictory with the concept of AI worldwide power-houses:
“<i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;">AI has a much higher localization quotient than earlier internet
services. Self-driving cars in India need to learn the way pedestrians navigate
the streets of Bangalore, and micro-lending apps in Brazil need to absorb the
spending habits of millennials in Rio de Janeiro.”</span></i><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";"><span style="font-family: "verdana" , sans-serif; font-size: small;">As previously
said, this paradigm shift comes with the – debatable – conviction that AI today’s
toolbox is now complete or good enough: “<i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;">Much of the difficult but abstract
work of AI research has been done, and it’s now time for entrepreneurs to roll
up their sleeves and get down to the dirty work of turning algorithms into
sustainable businesses”. </span></i><span style="color: black; mso-themecolor: text1;">This viewpoint is derived from the conviction that the time from the initial
idea to market-readiness of software technology is long, may decades: “<i style="mso-bidi-font-style: normal;">Deep learning marked the largest leap
forward in the past fifty years, and advances on this scale rarely come more
than once every few decades. Even if such a breakthrough does occur, it’s more
likely to emerge out of the open environment of academia”. </i>It is clear that
this is where many would disagree, especially Rodney Brooks, whom we shall meet
in the second part of this blog, and his famous paper “<a href="https://www.technologyreview.com/s/609048/the-seven-deadly-sins-of-ai-predictions/">The
Seven Deadly Sins of AI Prediction</a>”.</span><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
</div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: small; font-weight: 700;"><br /></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US">The core consequence of the previous analysis is that China will inevitably
rise as one of world AI “superpowers” (hence the title) because it combines
precisely the four following strengths. </span></b><span lang="EN-US" style="font-family: "verdana" , sans-serif; font-size: small;">Kaifu-Lee gives his
list of the four components that are necessary for a successful AI ecosystem: <i>“<b> </b>Harnessing the power of AI
today—the “electricity” of the twenty-first century—requires four analogous
inputs: <b>abundant data, hungry
entrepreneurs, AI scientists, and an AI-friendly policy environment</b>”.</i> We have already talked about the “data collection
advantage”, another fascinating part of the book is the description of the
internet entrepreneur ecosystem in China. As a venture capitalist, Kai-Fu Lee
is in a very good position to describe and explain the strength and the
differences – versus Silicon Valley and Europe startup ecosystems. One should
keep in mind though that, as an investor, this not an unbiased viewpoint – Kai-Fu
Lee has definitely “much skin in the game”. To him, China’s ecosystem is simply
“<i>the most cutthroat competitive
environment on the planet. They live in a world where speed is essential,
copying is an accepted practice, and competitors will stop at nothing to win a
new market</i>”. I will let you discover
the – sometimes caricatural – description of the extraordinary energy and willingness
to work long hours in the Chinese startups. As a VC, Kai-Fu Lee points out the
rapid adoption of “<a href="http://theleanstartup.com/">Lean Startup</a>
concepts” (MVP, pivoting, etc.) in the Chinese ecosystem: “<i>Core to its philosophy – The Lean Startup Book - is the idea that
founders don’t know what product the market needs—the market knows what product
the market needs</i>”. The race that motivates Chinese entrepreneurs is the
race of disruption through AI, they do not see themselves as technology
partners to larger incumbent companies, but as challengers: “<i>Instead of helping those companies access
AI, these startups want to disrupt them using AI. They aim to build AI-first
companies from the ground up, creating a new roster of industry champions for
the AI age</i>”. As mentioned earlier, Kai-Fu Lee sees that China is not simply
a country with more data – because of its size and a government that is indeed more
AI-friendly in its data privacy regulation – but also a country with better
data : “<i>But China’s data advantage extends from quantity into
quality. The country’s massive number of internet users—greater than the United
States and all of Europe combined—gives it the quantity of data, but it’s then
what those users do online that gives it the quality. The nature of China’s
alternate universe of apps means that the data collected will also be far more
useful in building AI-driven companies … that data is tailor-made for
building profitable AI companies</i>”.</span></span><br />
<br /></div>
<div style="text-align: left;">
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span style="font-family: "verdana" , sans-serif; font-size: small;"></span><br /></span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: small;"><b>What makes the “AI race” exciting is
that the goal is nothing short than a profound revolution and the opportunity to
acquire new leader positions in the future economy</b>. Because of the digital nature
of most those AI-related opportunities, there is indeed a race: “<i>The AI world order will combine winner-take-all economics with an
unprecedented concentration of wealth in the hands of a few companies in China
and the United States … The positive-feedback loop generated by increasing
amounts of data means that AI-driven industries naturally tend toward monopoly,
simultaneously driving down prices and eliminating competition among firms</i><span style="color: #4472c4;">”.</span><i> </i>This is nothing new, but AI will
amplify the opportunities: “<i>But as
remarkable as these accomplishments have been, these changes will pale in
comparison to what these entrepreneurs will do with the power of artificial
intelligence</i>”. Kai-Fu Lee
gives numerous examples of Chinese startups that he sees as future world
leaders of their fields. For instance, <a href="https://www.faceplusplus.com/">Face++</a>
is described as “<i>a world leader in face-
and image-recognition technology</i>”. He quotes another example from his own
field of expertise – but one should keep in mind that, as a VC, he is necessarily
biaised : “<i>Nearly twenty years and dozens
of AI competition awards later, <a href="http://www.iflytek.com/en/about/index.html">iFlyTek</a> has far surpassed
Nuance in capabilities and market cap, becoming the most valuable AI speech
company in the world</i>”. There is an interesting discussion about the availability
of skills and talents in China, and Kai-Fu Lee gives convincing arguments that
China is ready to develop the successive waves of AI : “<i>The complete AI
revolution will take a little time and will ultimately wash over us in a series
of four waves: internet AI, business AI, perception AI, and autonomous AI</i>”.
One could object that this enthusiasm, about Chinese investments and government
strong push, reminds us of the Japanese “<a href="https://en.wikipedia.org/wiki/Fifth_generation_computer">Fifth Generation</a>”
program in the 80s. Kai-Fu Lee is aware of this : “<i>While all of this may
sound exciting and innovative to the Chinese landscape, the hard truth is that
no amount of government support can guarantee that China will lead in autonomous
AI</i>”. His topic of
interest <i>is not the next generation of AI
or how government funding may steer that race,</i> but the current generation of
AI and how a well-structured ecosystem will deliver faster growth.</span></div>
<div style="text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: small;">
</span></div>
<div style="text-align: left;">
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
</div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: small;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";">The relative strong positioning of China in AI is not
simply a matter of size, it is the consequence of a deliberate plan to develop and
strengthen an ecosystem</span></b><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";">. I strongly urge any regulator to read carefully the
story of Guo Hong, a startup founder who became a key player for the Chinese
government and played a critical role in setting up the Chinese AI ecosystem.
Guo Hong worked hard to understand “<i style="mso-bidi-font-style: normal;">what
really made Silicon Valley tick”, </i>his first mission “<i style="mso-bidi-font-style: normal;">to build the Avenue of the Entrepreneurs was just the first trickle of
what in 2014 turned into a tidal wave of official policies pushing technology
entrepreneurship”. </i>A lot of thinking about emergent ecosystems and the role
of data went into play “<i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;">In the age of AI implementation, the
impact of these divergent data ecosystems will be far more profound. It will
shape what industries AI startups will disrupt in each country and what
intractable problems they will solve”. </span></i><span style="color: black; mso-themecolor: text1;"><span style="mso-spacerun: yes;"> </span></span><span style="mso-spacerun: yes;"> </span>In comparison, Kai-Fu Lee is not impressed
with the approach that Europe in general, and France in particular, is taking
to succeed this AI race because they focus too much on research and not enough
on usage ecosystems: “<i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;">Canada, the United Kingdom, France,
and a few other countries play host to top-notch talent and research labs, but
they often lack the other ingredients needed to become true AI superpowers: a
large base of users and a vibrant entrepreneurial and venture-capital ecosystem”.
</span></i><span style="color: black; mso-themecolor: text1;">Our proclivity toward
issuing reports is gently mocked, whether there are European or American reports:
“</span><i style="mso-bidi-font-style: normal;">But the report—issued by the most
powerful political office in the United States—had about the same impact as a
wonkish policy paper from an academic think tank</i>”. Very logically, Kai-Fu Lee
is not impressed with GDPR and the European desire to control rather than to develop
AI-based usage of data: “<i style="mso-bidi-font-style: normal;">While Europe has
opted for a more heavy-handed approach (fining Google, for example, for
antitrust and trying to wrest control over data away from the technology
companies), China and the United States have given these companies greater
leeway, letting technology and markets develop before intervening on the
margins</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; font-size: small;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";"><br /></span><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";">
<!--[if !supportLineBreakNewLine]-->
<!--[endif]--><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";"><o:p><span style="font-family: "verdana" , sans-serif; font-size: small;">
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-GB</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="375">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hashtag"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Unresolved Mention"/>
</w:LatentStyles>
</xml><![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-pitch:variable;
mso-font-signature:-536870145 1107305727 0 0 415 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-1610611985 1073750139 0 0 159 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-noshow:yes;
mso-style-priority:99;
color:#954F72;
mso-themecolor:followedhyperlink;
text-decoration:underline;
text-underline:single;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-ansi-language:EN-GB;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}
</style>
</span></o:p></span></div>
<div style="text-align: left;">
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US">Although Kai-Fu Lee is bullish on the future
impact of AI on society, he is also quite aware of the complexities and difficulties
of the journey ahead. </span></b><span lang="EN-US">He is especially sensitive to the social risk that
AI automation is likely to cause: “<i>Does that mean I see nothing but steady
material progress and glorious human flourishing in our AI future? Not at all.
Instead, I believe that civilization will soon face a different kind of
AI-induced crisis</i>”. His vision of the possible impact on job loss is <a href="https://organisationarchitecture.blogspot.com/2014/11/le-futur-du-travail-lentreprise-30-est.html">not
very different from the Frey-Osborne study</a> : “<i>Based on the current
trends in technology advancement and adoption, I predict that within fifteen
years, artificial intelligence will technically be able to replace around 40 to
50 percent of jobs in the United States... Actual job losses may end up lagging those
technical capabilities by an additional decade, but I forecast that the
disruption to job markets will be very real, very large, and coming soon”. </i>He proposes his own analysis in his book, based on a number
of job characteristics, such as requiring or not dexterity, using a structured
versus unstructured context and environment, or the level of social interaction
that is required. With a two-axis / four quadrant approach, he makes his own
predictions about which jobs will be impacted the most by AI-automation: “<i>While the simplest and most routine factory
jobs—quality control and simple assembly-line tasks—will likely be automated in
the coming years, the remainder of these manual labor tasks will be tougher for
robots to take over</i>”. I read where something
that I first head two years ago at the Singularity University : “<i>contrary to popular assumptions, it is
relatively easy for AI to mimic the high-level intellectual or computational abilities
of an adult, but it’s far harder to give a robot the perception and
sensorimotor skills of a toddler</i>”. There is an interesting discussion about
the need for solidarity, inclusion and some form of redistribution – Kai-Fu Lee
is not a proponent for Universal Basic Income, but what he calls for may not be
that different : “<i>I want to create a system that provides for all
members of society, but one that also uses the wealth generated by AI to build
a society that is more compassionate, loving, and ultimately human</i>”. This vision requires a massive investment in
education: “<i>To be clear, I do
believe that education is the best long-term solution to the AI-related
employment problems we will face … But the scale and speed of the coming
changes from AI will not give us the luxury of simply relying on educational
improvements to help us keep pace with the changing demands of our own
inventions”. </i>Eventually, many of the future jobs will turn to be “interaction
jobs”, but we need to find a way to redistribute some of the AI-created wealth,
since those jobs have no “market invisible hand” that would push their values forward:
“<i>Private companies already create plenty
of human-centered service jobs—they just don’t pay well.”. </i>As is proposed by
most futurists, Kai-Ful Lee quotes “health and personal care” as a great
example of such a domain: “<i>The U.S.
Bureau of Labor Statistics has found that home health aides and personal care
aides are the two fastest growing professions in the country, with an expected
growth of 1.2 million jobs by 2026</i>”.</span></span></div>
</div>
<span lang="EN-US"><br /></span>
<br />
<h2 style="text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: large;"><b><span lang="EN-US" style="color: black;">3. Temporary Conclusion</span></b><span lang="EN-US" style="color: black;"> </span></span></h2>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 12pt; text-align: left;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";"><span style="font-family: "verdana" , sans-serif; font-size: small;">To summarize, I believe
that there are some excellent points in this book that make it a must-read,
especially for anyone who is planning to use AI in their own business:</span></span></div>
<ul style="text-align: left;">
<li><span style="font-family: "verdana" , sans-serif; font-size: small;">The importance
of data collection is well spelled-out, not only the quantity but also the quality
and the virtuous circle that links usage data, data collection, data enrichment
and value creation.</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: "verdana" , sans-serif; font-size: small;">The description
of the Chinese digital and AI entrepreneur ecosystem is fascinating. Kai-Fu
holistic vision of what it takes to succeed should be required reading for
anyone in a public position planning to “foster” AI development and competitiveness.</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: "verdana" , sans-serif; font-size: small;">The book is
full of great examples of applying today’s AI to real-life situations. This
book echoes the NATF recommendation to companies: what matters to succeed with
AI is the willingness to try and the speed at which you execute.</span></li>
</ul>
<div>
<span style="font-family: "verdana" , sans-serif; font-size: small;"><br /></span></div>
<br />
<div class="MsoNormal" style="font-size: medium;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif; font-size: small;">On the other hand, there are a few debatable points. They do not change my positive opinion about the book, but they mean that this book does “not cover the whole story”. More precisely:</span></span></div>
<div>
<br /></div>
<ul style="text-align: left;">
<li><span style="font-family: "verdana" , sans-serif; font-size: small;">The book puts a
very high emphasis on data and describes “a new world where expertise may be
harvested from data”. <span style="text-indent: -18pt;"> </span><span style="text-indent: -18pt;">Actually, in most
cases, data-driven knowledge benefits from prior expertise and does not replace
existing knowledge but augment it. There is more to AI than Deep Learning, and
there is more to creating value with deep learning than brute-force application
independently of the expertise put in labelling.</span></span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: "verdana" , sans-serif; font-size: small;">There is a strong
claim that “<i style="text-indent: -18pt;">this era will reward the
quantity of solid AI engineers over the quality of elite researchers</i><span style="text-indent: -18pt;">”. Here
also, this statement applies to the “present of AI” but not to what will happen
in the future. As is pointed out by Melanie Mitchell, there is so much that we
do not know how to do that we clearly need “</span><i style="text-indent: -18pt;">elite
researchers</i><span style="text-indent: -18pt;">” to push out new boundaries. Let us illustrate this with a thought
experiment: If we are in 2028 and look at AI usage, what do you think the ratio
will be, of the value created by today’s methods versus the new methods that
will be invented in the decade to come: 10, 1, or 10% ? I have no crystal ball
and thus no answer. But I would disagree with anyone to claims to know.</span></span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: "verdana" , sans-serif; font-size: small;">As I stated
earlier, some of the strong claims made by Kai-Fu Lee about AI newcomers, such
as “<i style="text-indent: -18pt;">the widespread adoption of deep
learning in 2013 turbocharged these capabilities and gave birth to new
competitors, such as Element AI in Canada and 4th Paradigm in China. These
startups sell their services to traditional companies or organizations,
offering to let their algorithms loose on existing databases in search of optimizations”,
</i><span style="text-indent: -18pt;">will have to be checked a few years from now.</span></span></li>
</ul>
<br />
<div class="MsoListParagraphCxSpLast" style="text-align: left; text-indent: -18pt;">
<span style="font-family: "verdana" , sans-serif; font-size: small;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";">
<!--[endif]--><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";"><span style="font-family: "verdana" , sans-serif; font-size: small;">I have been following
the comments about the book on Twitter and found that I agreed with both sides.
I am a big fan of this book, especially because of the wonderful insights about
the China ecosystem. I have had the privilege to work with Chinese teams and
partners in my past three jobs and to visit the Shanghai startup ecosystem.
Reading the book has helped me to better understand what I saw (in the same way
that reading “<a href="https://en.wikipedia.org/wiki/Start-up_Nation">Start-up
nation</a>” is a must to go and work with Tel-Aviv entrepreneurs). I have also agreed
with the negative comments that said approximately : “wait … there so much more
about AI than what is said here” and those opportunities could be explored
everywhere in the world, including France and Europe.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";"><span style="font-family: "verdana" , sans-serif; font-size: small;">As stated in the
introduction, this paradox can be easily explained with the reading of Martin
Ford’s “<a href="http://book.mfordfuture.com/">Architects of Artificial
Intelligence</a>”. This will be the topic of “Part 2”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 12pt; text-align: left;">
<span style="font-family: "verdana" , sans-serif; font-size: small;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";"><br style="mso-special-character: line-break;" />
<!--[if !supportLineBreakNewLine]--></span><span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: "Times New Roman";">
<!--[endif]--><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<!--EndFragment--></div>
Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com1tag:blogger.com,1999:blog-438942112364524044.post-9285839498521978972018-10-31T07:41:00.000-07:002018-11-05T01:51:42.119-08:00From Digital Transformation to Service Architecture and Reliability Engineering<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="color: black;">1. Introduction</span></b></span></h2>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">This post talks about Digital Transformation from an
operational excellence perspective. I propose a simplified book review of “the
textbook” on <b style="mso-bidi-font-weight: normal;">reliability engineering</b>
as a path to hammer some key principles that make digital systems efficient.
There should be no surprises with this approach, since I have been advocating
for a while in my blogs that:</span></span></div>
<div class="MsoNormal">
</div>
<ul style="text-align: left;">
<li><span style="font-family: "verdana" , sans-serif;">Digital transformation
is about <a href="http://informationsystemsbiology.blogspot.com/2017/06/digital-experience-factories.html?_sm_au_=iVV74Vf71gwDMSJq">digital
capability</a><div class="separator" style="clear: both; text-align: center;">
<a href="http://informationsystemsbiology.blogspot.com/2017/06/digital-experience-factories.html?_sm_au_=iVV74Vf71gwDMSJq"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDql3w9Lxw_8X5zPMDx4NvqmPugK1QjqVsJQtYw52_f-X4EoUXZPTbWPZli_F5cireF36ZfB4yuxhlu1eGJpdS0lGFTRiVC9KC4RgsTIKjrSMwCQkJyj4aRMV_KEgN7eI7VLg0DSbZotk/s1600/TheWebGiants_OCTO.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="281" data-original-width="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDql3w9Lxw_8X5zPMDx4NvqmPugK1QjqVsJQtYw52_f-X4EoUXZPTbWPZli_F5cireF36ZfB4yuxhlu1eGJpdS0lGFTRiVC9KC4RgsTIKjrSMwCQkJyj4aRMV_KEgN7eI7VLg0DSbZotk/s1600/TheWebGiants_OCTO.png" /></a></div>
</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Customer satisfaction
is first about <a href="https://organisationarchitecture.blogspot.com/2018/06/la-transformation-numerique-emerge-de.html">operational
excellence</a></span></li>
<li><span style="font-family: "verdana" , sans-serif;">The playground
has changed - the GAFA have set new standards for operational excellence,
as explained by the <a href="https://www.octo.com/en/publications/22-the-web-giants">Web Giants
book</a>.</span></li>
</ul>
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US">Systems’ quality of service (QoS) is a topic that is very close to my heart.</span><span lang="EN-US"> I do not consider myself a true expert since I have not spent tens of years running systems full time daily (what it takes to be a true Ops expert) but I have a long experience thinking about and observing firsthand what makes systems reliable :</span></span><br />
<ul style="margin-top: 0cm;" type="disc">
<li><span style="font-family: "verdana" , sans-serif;">I have been
privileged to start my exposure to availability lectures as a teenager
from my departed father <a href="https://www.semanticscholar.org/paper/Throughput-Capacity-of-a-Sequence-of-Queues-with-to-Caseau-Pujolle/663f5f8da81399d0fbac3671965bf1f1aa8be59c">Paul
Caseau</a> on topics such as queuing theory, <a href="https://en.wikipedia.org/wiki/Jackson_network">Jackson networks</a>
and Markov processes. I was told about MTBF and MTTR from practical
examples such as shoes when still very young.</span></li>
<li><span style="font-family: "verdana" , sans-serif;">I started my
career as an Operations Research <a href="https://dblp.uni-trier.de/pers/hd/c/Caseau:Yves">scientist</a> with
many years spent on scheduling, planning and routing, with the later
addition of <a href="http://www.lirmm.fr/~bourreau/SOURCES/Bourreau%20CP01%20Towards.pdf">stochastic
optimization</a>.</span></li>
<li><span style="font-family: "verdana" , sans-serif;">I then got my
first exposure to real-life QoS issues as Bouygues Telecom CIO 15 years
ago. This resulted in my attempt to formalize what I saw in <a href="https://www.amazon.co.uk/Information-Technology-Chief-Executive-Organization/dp/1438911114">books</a>,
a new piece of simulation and research about SLA called “<a href="https://sites.google.com/site/yvesresearchagenda/home/research-agenda-2004-2006?authuser=0">Optimization
of Application Integration</a>” and later the opening of this blog. The
paper “<a href="https://www.sciencedirect.com/science/article/pii/S1474034605000443">Self-adaptive
Middleware: Supporting Business Processes and Service Level Agreements</a>”
is very similar to what this post will describe.</span></li>
<li class="MsoNormal" style="color: black; mso-list: l0 level1 lfo2; tab-stops: list 36.0pt; vertical-align: baseline;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">I had the
remarkable opportunity of a few in-depth conversations with key SRE people
at Google including world-class stars that are quoted in the book that I
will present today.</span></span></li>
<li class="MsoNormal" style="color: black; mso-list: l0 level1 lfo2; tab-stops: list 36.0pt; vertical-align: baseline;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Last, my
experience as a lecturer at <a href="https://www.slideshare.net/ycaseau1/cours-chapitre8-2012">Ecole
Polytechnique</a> has a helped me to formalize what I have learned from
the trenches.</span></span></li>
</ul>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="color: black;"><span style="font-family: "verdana" , sans-serif;">I plan to share a detailed summary of the “Google
SRE” book because most of what I have learned and know from experience may be
found in this book. On the one hand, this is a book about<b style="mso-bidi-font-weight: normal;"> large-scale distributed systems</b> and how to design and operate them
in a reliable manner. This is a complicated topic and there is a wealth of
knowledge to learn and share. On the other hand, the technology “lego box” has
changed : things that were very hard to design 10 years ago are much easier
today thanks to open source technologies such as cloud, containers, distributed
orchestration, distributed storage platforms, etc. High-availability is no
longer a “high end” feature and many small companies including startups build
high-availability architectures with QoS performance that would have been hard
to achieve for a telco 20 years ago. Many of the open source pieces that
created this “reliability revolution” come from Google components that are
described in the SRE book. Readers of this blog who know about “<a href="https://en.wikipedia.org/wiki/Autonomic_computing">Autonomic Computing</a>”
will notice that Google has done nothing less than delivering an ambition
proposed by IBM over 15 years ago. <i style="mso-bidi-font-style: normal;">Self-monitoring,
Self-optimization, Self-provisioning, Self-healing</i> are characteristics of
modern reliable systems <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">This is not a linear book review, because the material
is very deep (the book is 475 pages long). I selected nine key topics that are
closely related to digital transformation and to my experience as a CIO; then I
tried to summarize the key insights from the book. Managers are not the main
audience for this book, which is foremost written for practitioners. For
technical readers this book is a treasure trove of insights, examples, and
practical advice. However, I strongly suggest anyone to open this book and read
at least the first hundred pages. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;">
<br /></div>
<h2 style="margin-bottom: 12pt; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="color: black;">2</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="color: black;">. Google Site Reliability Engineering</span></b></span></h2>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBdi0BOYlIiXCP-LV8lbk8EvoYQspmUOre2svYLcYafWgFhcSjJMaXhFzUi8sPAKSOIaHjebwZv9ajNcRmEPET7Du7ycfGy0bCFZe6FoQ9kAsBUjt46NNSMW25BhKXbI9FaO7iqbQNA1Q/s1600/GoogleSRE.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="656" data-original-width="500" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBdi0BOYlIiXCP-LV8lbk8EvoYQspmUOre2svYLcYafWgFhcSjJMaXhFzUi8sPAKSOIaHjebwZv9ajNcRmEPET7Du7ycfGy0bCFZe6FoQ9kAsBUjt46NNSMW25BhKXbI9FaO7iqbQNA1Q/s320/GoogleSRE.jpg" width="243" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US" style="color: black;">The book “<a href="https://landing.google.com/sre/books/">Site Reliability Engineering</a> - How Google runs production systems”,
edited by Betsy Beyer, Chris Jones, Jennifer Petoff and Niall Richard Murphy,
is a collective book from Google SRE members: “</span><i style="mso-bidi-font-style: normal;"><span lang="EN-US">This book is a series of essays written by members and alumni of
Google’s Site Reliability Engineering organization. It’s much more like
conference proceedings than it is like a standard book by an author or a small
number of authors</span></i><span lang="EN-US">”. This heavy book is
filled with case stories and technical details about the different tools that
are used by Google engineers. Although the 33 chapters are mostly focused on
practical issues and problems, this is also a principled book about computing: <span style="mso-spacerun: yes;"> </span>“<i style="mso-bidi-font-style: normal;">We
apply the principles of computer science and engineering to the design and
development of computing systems: generally, large distributed ones</i>”. True
to the principles that I will present very soon, the book is rich with failure
analysis and “anatomy of unmanaged incident” examples.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal">
</div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;">The relationship with the theme of this blog, “biology
of distributed information systems” will become self-evident when you read this
post. As mentioned earlier, the ambition of “</span><i style="font-family: Verdana, sans-serif;">autonomic computing</i><span style="font-family: "verdana" , sans-serif;">” is also deeply embedded: “</span><i style="font-family: Verdana, sans-serif;">The global computer … must be self-repairing to operate once it grows
past a certain size, due to the essentially statistically guaranteed large
number of failures taking place every second</i><span style="font-family: "verdana" , sans-serif;">”. </span></div>
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /><o:p></o:p></span></span>
<br />
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
</div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">2.1. Information
System Reliability is a Strategic Imperative</span></span></b></h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /><o:p></o:p></span></span></b>
<br />
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The book starts with the observation that the real world of information
systems is chaotic, both because of the size and the complexity, but also
because of the astounding number of changes that affect the systems daily. The
first chapter is written by Ben Treynor Sloss, Google’s VP for 24/7 Operations,
originator of the term SRE, who claims that <b style="mso-bidi-font-weight: normal;">reliability is the most fundamental feature of any product</b>. Ben
Treynor is the father of SRE: “<i style="mso-bidi-font-style: normal;">SRE is
what happens when you ask a software engineer to design an operations team.
When I joined Google in 2003 and was tasked with running a “Production Team” of
seven engineers, my entire life up to that point had been software engineering</i>”.
SRE is the story of a quest towards reliability through automation and
simplification. He quotes C.A.R. Hoare in his Turing Award lecture: “<i style="mso-bidi-font-style: normal;">The price of reliability is the pursuit of
the utmost simplicity</i>”. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">SRE is the brainchild of a scientist and engineer who looks at failure
and reliability with cold unemotional eyes and tries to maximize the outcome
while reducing the effort. By construction it is a “DevOps” approach where the
skills of software engineering are applied to improving operations. Obviously,
this approach is draws from the scaling and size issues experienced at Google
over the years: “<i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;">Ensuring that the cost of maintenance scales sublinearly
with the size of the service is key to making monitoring (and all sustaining
operations work) maintainable</span></i><span style="color: black; mso-themecolor: text1;">”.<o:p></o:p></span></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><span style="color: black; mso-themecolor: text1;"><br /></span></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
</div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;">SREs (Site Reliability Engineers) work with the complete product team,
from product owners and development teams to operations specialists and
partner. Following engineering practices, business and users goals are
translated into explicit and measurable goals that can be “engineered”. With no
surprise to readers of this blog, key metrics that are used throughout the book
are </span><b style="font-family: Verdana, sans-serif;">availability, latency and throughput</b><span style="font-family: "verdana" , sans-serif;">
: </span><span style="font-family: "verdana" , sans-serif;"> </span><span style="font-family: "verdana" , sans-serif;">“</span><i style="font-family: Verdana, sans-serif;">User-facing
serving systems … generally care about availability, latency, and throughput</i><span style="font-family: "verdana" , sans-serif;">”.
As an engineer, one knows that a price must be paid for any complex
requirement, including performance and reliability. Failures and mistakes are
managed in a cold engineering approach, without exaggerating the requirements.
In many places, the book warns us against looking for “over-safe,
over-expensive” approaches, but to keep looking for a balance. </span></div>
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /><o:p></o:p></span></span>
<br />
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
</div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">2.2. Distributed
Systems</span></span></b></h3>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /><o:p></o:p></span></span></b>
<br />
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">As mentioned in the introduction, this is a book about distributed
systems: “<i style="mso-bidi-font-style: normal;">As SREs, we work with
large-scale, complex, distributed systems</i>.” Distributed systems engineering
is a wonderfully exciting discipline, albeit a difficult one. It takes time,
energy and dedication to become an expert in such matter. It also takes
humility and curiosity. <i style="mso-bidi-font-style: normal;"><span style="mso-spacerun: yes;"> </span>“Systems are complex. It’s quite likely that
there are multiple factors, each of which individually is not the cause, but
which taken jointly are causes. Real systems are also often path-dependent, so
that they must be in a specific state before a failure occurs.</i>”<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The emphasis on “distributed” here means that one must learn to step
back and look at the whole system, not the platform or the component that is
actively being built. One of my key action as a manager is to promote the “One
System” culture, which is the understanding that we (as an organization) are
building ONE large, complex and distributed system. This requires observing and
sharing : “<i style="mso-bidi-font-style: normal;">There are many ways to
simplify and speed troubleshooting. Perhaps the most fundamental are: Building
observability — with both white-box metrics and structured logs — into each
component from the ground up. Designing systems with well-understood and
observable interfaces between components</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The emphasis about logging and configuration management is obvious
throughout the book. There are far too many practical recommendations, such as
the use of different verbosity levels, to be reproduced here in this summary.
Some of them I learned many years ago at <a href="https://en.wikipedia.org/?title=Bellcore&redirect=no">Bellcore</a>,
when working with true distributed system experts such as my friend <a href="https://dblp.org/pers/hd/n/Nguyen:Quoc=Bao">Quoc-Bao Nguyen</a>. Being
able to debug, re-parameter, re-configure without shutting the system down has
been a good practice for decades. On the other hand, distributed issues that
used be very hard to solve, such as distributed locking, are now easier because
of the wealth of scalable and robust open-source solutions. Still, one must
understand the complex nature of distributed system and learn about tested protocols:
“<i style="mso-bidi-font-style: normal;">Whenever you see leader election,
critical shared state, or distributed locking, we recommend using distributed
consensus systems that have been formally proven and tested thoroughly.
Informal approaches to solving this problem can lead to outages, and more
insidiously, to subtle and hard-to-fix data consistency problems that may
prolong outages in your system unnecessarily</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The same remark can be made about the complexity of distributed
large-scale storage. One must understand and accept the <a href="https://en.wikipedia.org/wiki/CAP_theorem">CAP theorem</a> and learn to
live with eventual consistency (or learn to live with <i style="mso-bidi-font-style: normal;">right-time</i> versus <i style="mso-bidi-font-style: normal;">real-time</i>)
: “<i style="mso-bidi-font-style: normal;">A growing number of distributed
datastore technologies provide a different set of semantics known as BASE
(Basically Available, Soft state, and Eventual consistency). Datastores that
support BASE semantics have useful applications for certain kinds of data and
can handle large volumes of data and transactions that would be much more costly,
and perhaps altogether infeasible, with datastores that support ACID semantics</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">As mentioned earlier, the book is full of examples of self-adaptive
mechanisms to make distributed systems more reliable. Techniques that are
heavily used in network management such as exponential decay have obviously
their place at the application level. <a href="https://en.wikipedia.org/wiki/Throttling_process_(computing)">Throttling</a>
is a good example of self-adaptation: “<i style="mso-bidi-font-style: normal;">Client-side
throttling addresses this problem. When a client detects that a significant
portion of its recent requests have been rejected due to “out of quota” errors,
it starts self-regulating and caps the amount of outgoing traffic it generates.
Requests above the cap fail locally without even reaching the network</i>” <o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">2.3 Distributed
Systems Reliability at Google</span></span></b></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Google has developed a wealth of know-how on distributed systems
reliability. The goal of this book is to share some of that knowledge because
it is widely applicable in a context larger than Google or the web community.
Reliability is not a set of simple recipes; it is a discipline of redundant
protection through multiple layers:<span style="mso-spacerun: yes;"> </span>“<i style="mso-bidi-font-style: normal;">Given the many ways data can be lost (as
described previously), there is no silver bullet that guards against the many
combinations of failure modes. Instead, you need defense in depth. Defense in
depth comprises multiple layers, with each successive layer of defense
conferring protection from progressively less common data loss scenarios”</i>. Some
of the techniques, such as <a href="https://blog.greglow.com/2018/03/02/devops-should-migration-based-deployment-use-idempotent-scriptsents/">idempotent
scripts</a>, are now well understood in the DevOps community, but this book
offers a comprehensive survey which should be useful to most of us who are not
true geeks.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The model of the SRE team is to build a small team of highly trained ops
specialists with enough software engineering expertise to understand and manage
the systems: <span style="color: black; mso-themecolor: text1;">“<i style="mso-bidi-font-style: normal;">Ultimately, SRE’s goal is to follow a similar
course. An SRE team should be as compact as possible and operate at a high
level of abstraction, relying upon lots of backup systems as failsafes and
thoughtful APIs to communicate with the systems</i>” …</span><i style="mso-bidi-font-style: normal;"> “In order to work at scale, teams must be
self-sufficient. Release engineering has developed best practices and tools
that allow our product development teams to control and run their own release
processes”.</i> This dual DevOps capability is critical to perform “ProdTests”
(tests on the production environment). A SRE team should be autonomous in its
decision process, but it works together with the rest of the organization (SRE
teams supplements the engineering organization, it does not replace it).<span style="color: black; mso-themecolor: text1;"><o:p></o:p></span></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">How does one develop these highly trained specialists? By doing and
mostly by learning from previous failures: “<i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;">There is no better way to learn than
to document what has broken in the past. History is about learning from
everyone’s mistakes. Be thorough, be honest, but most of all, ask hard
questions”. </span></i><span style="mso-spacerun: yes;"> </span>The customer
focus is critical and visible throughout the book. SRE must understand the user
perspective and take extra care of customer-facing systems : “<i style="mso-bidi-font-style: normal;">The frontend infrastructure consists of
reverse proxy and load balancing systems running close to the edge of our
network. These are the systems that, among other things, serve as one endpoint
of the connections from end users (e.g., terminate TCP from the user’s
browser). Given their critical role, we engineer these systems to deliver an
extremely high level of reliability.</i>”<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">One key responsibility of SREs is to assist release engineering, that
is, how to test and release a new version of a software component or service.
There is a lot of emphasis on gradual releases, which goes hand in hand with
continuous release: “<i style="mso-bidi-font-style: normal;">Almost all updates
to Google’s services proceed gradually, according to a defined process, with
appropriate verification steps interspersed. A new server might be installed on
a few machines in one datacenter and observed for a defined period of time. If
all looks well, the server is installed on all machines in one datacenter,
observed again, and then installed on all machines globally</i>.”<o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">2.4 Automation and Monitoring</span></span></b></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">As the book points out, the simplest and most powerful principles behind
reliability engineering are automation and monitoring. Automation is the
natural solution to the efficiency/sublinear requirement made earlier, and the
best way to remove a large part of human errors which are still the roots of
most system failures. “<i style="mso-bidi-font-style: normal;">There’s an
additional benefit for systems where automation is used to resolve common
faults in a system (a frequent situation for SRE-created automation). If
automation runs regularly and successfully enough, the result is a reduced mean
time to repair (MTTR) for those common faults</i>.” The history of SRE, as told
by Ben Treynor, comes from the automatization of operations by software
engineers. Automation is a continuous task, not a once-for-all milestone. “<i style="mso-bidi-font-style: normal;">Automation code, like unit test code, dies
when the maintaining team isn’t obsessive about keeping the code in sync with
the codebase it covers</i>.”<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Operations need to be automated and monitored. Monitoring is, as told
earlier when we talked about the necessity of observation, the heart of
reliable operations. “<i style="mso-bidi-font-style: normal;">Whether it is at
Google or elsewhere, monitoring is an absolutely essential component of doing
the right thing in production. If you can’t monitor a service, you don’t know
what’s happening, and if you’re blind to what’s happening, you can’t be
reliable</i>.” Monitoring and automation go hand in hand. Alerts produced by
monitoring should trigger actions which are as automated as possible – back to
the autonomic computing ambition – human intervention should be seen as the
last resort option. Automation should come with heavy instrumentation to feed
the monitoring and ensure proper execution (Automation is no guarantee against
human errors, at first – only continuous improvement produced fail-proof
scripts). “<i style="mso-bidi-font-style: normal;">Running a service with a team
that relies on manual intervention for both change management and event
handling becomes expensive as the service and/or traffic to the service grows,
because the size of the team necessarily scales with the load generated by the
system</i>.”<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The regular practice of logging and monitoring provides massive opportunities
of using Artificial Intelligence and Machine Learning for operations. Using
algorithm ranging from classical time series data mining (e.g., with <a href="https://www.splunk.com/">Splunk</a>) to more advanced machine learning
techniques to detect correlations and patterns, one may generate advanced
alerts when the system requires tuning to avoid entering a hazard zone in the
future. Automation and monitoring act on the two components of reliability:
reducing MTBF (less error with automation, early detection and prevention with
monitoring) and reducing MTTR (better diagnosis with monitoring and faster
reparation through automation). <o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">2.5. The Most Common Cause
of Loss of Service Availability is Change</span></span></b></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US">The SRE team at Google has found that roughly 70% of outages are due to
changes in a live system: <span style="color: black; mso-themecolor: text1;">“<i style="mso-bidi-font-style: normal;">Most outages are caused by some kind of change
— a new configuration, a new feature launch, or a new type of user traffic —
the two teams’ goals are fundamentally in tension</i>”. This tension between
the need for change (and for continuous delivery) and the need for reliable
operations is wonderfully covered by the great book </span></span><span lang="EN-GB" style="background: rgb(246 , 246 , 246); color: black;">“</span><span lang="EN-GB"><a href="https://itrevolution.com/book/accelerate/" style="-webkit-text-stroke-width: 0px; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; widows: 2; word-spacing: 0px;"><span style="background: #f6f6f6; color: #6728b2;">Accelerate:
The Science of Lean Software and DevOps: Building and Scaling High Performing
Technology Organizations</span></a><span style="background: #f6f6f6; color: black;"><span style="-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-decoration-color: initial; text-decoration-style: initial; widows: 2; word-spacing: 0px;">”, </span></span></span><span lang="EN-US" style="color: black;">by Nicole Foresgreen, Jez Humble
and Gene Kim. The only path forward is to automate change and treat it as
seriously as possible at the same time. Companies that succeed to deliver
high-availability reliable quality of service are those who <a href="https://organisationarchitecture.blogspot.com/2018/06/la-transformation-numerique-emerge-de.html">perform
frequent changes</a>.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US" style="color: black;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US" style="color: black;">API management is a core
dimension of modern system engineering, including from an operations
perspective as is illustrated many times in this book. API modularity is
critical for keeping systems simple. API change management is equally critical </span><span lang="EN-US">and helps to understand while reliability engineering and software
engineering are mutually dependent: <i style="mso-bidi-font-style: normal;">“While
the modularity that APIs offer may seem straightforward, it is not so apparent
that the notion of modularity also extends to how changes to APIs are
introduced. Just a single change to an API can force developers to rebuild
their entire system and run the risk of introducing new bugs.”</i><span style="color: black; mso-themecolor: text1;"><o:p></o:p></span></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US"><i style="mso-bidi-font-style: normal;"><br /></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US" style="color: black;">A key component of change management
is <b style="mso-bidi-font-weight: normal;">Capacity planning</b>. <span style="mso-spacerun: yes;"> </span>This topic is covered in depth in this book,
with a systemic vision (not only one platform as a time, but with a global
perspective). </span><i style="mso-bidi-font-style: normal;"><span lang="EN-US">“Good capacity
planning can reduce the probability that a cascading failure will occur.
Capacity planning should be coupled with performance testing to determine the
load at which the service will fail</span></i><span lang="EN-US">.” <span style="color: black; mso-themecolor: text1;">System capacity planning is a complex modeling
and engineering task that may leverage techniques from operations research (cf.
the Auxon solver that </span>formulates a giant mixed-integer or linear program
based upon the optimization request received from the Configuration Language
Engine: <i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;">“At Google, many teams have moved to an approach we call
Intent-based Capacity Planning. The basic premise of this approach is to
programmatically encode the dependencies and parameters (intent) of a service’s
needs, and use that encoding to autogenerate an allocation plan that details
which resources go to which service, in which cluster.”<o:p></o:p></span></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US"><i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;"><br /></span></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Capacity planning needs to encapsulate reliability engineering and
propose designs that can operate under the simultaneous occurrence of planned
and unplanned outage. This type of thinking makes “N+2” configurations a
classical pattern to follow. Capacity planning should ensure that an acceptable
service may still be delivered when the two largest instances are unavailable.
Similarly, capacity planning needs to be mixed with load balancing policies. The
book covers load balancing policies (such as Weighted Round Robin) in depth
because they are a critical part of QoS : “<i style="mso-bidi-font-style: normal;">Avoiding
overload is a goal of load balancing policies. But no matter how efficient your
load balancing policy, eventually some part of your system will become
overloaded. Gracefully handling overload conditions is fundamental to running a
reliable serving system</i>.” <span style="mso-spacerun: yes;"> </span>Queues
management policies (FIFO, LIFO, CoDel, …) have similarly a key impact on QoS,
which is precisely the topic of the OAI simulations that I ran 10 years ago (cf.
“<a href="https://ieeexplore.ieee.org/document/1316740">Self-adaptive and
self-healing message passing strategies for process-oriented integration
infrastructures</a>”)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">2.6 The Practice of
the “Error Budget”</span></span></b></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The concept of the “error budget” is a key contribution of Google SRE
practice, where the operations organization finds a “QoS homeostasis” by
balancing its operations requirement with the current state of its services. The
aversion to change and the rigorous check-up of all necessary tests is not cast
in stone but adapts to the current quality of service as seen by the user. The
SRE team <i style="mso-bidi-font-style: normal;">“balances reliability and the
pace of innovation with error budgets (see “Motivation for Error Budgets”), which
define the acceptable level of failure for a service, over some period. …As
long as the service hasn’t spent its error budget for the month through the
background rate of errors plus any downtime, the development team is free
(within reason) to launch new features, updates, and so on</i> … <i style="mso-bidi-font-style: normal;">If the error budget is spent, the service
freezes changes (except urgent security and bug fixes addressing any cause of
the increased errors) until either the service has earned back room in the
budget, or the month resets.”<o:p></o:p></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The error budget must be managed from a customer-centric perspective. The
“unavailability budget” is computed as the outage time that is seen by the end
user: <i style="mso-bidi-font-style: normal;">“Measuring error rates and latency
at the Gmail client, rather than at the server, resulted in a substantial
reduction in our assessment of Gmail availability, and prompted changes to both
Gmail client and server code. The result was that Gmail went from about 99.0%
available to over 99.9% available in a few years.”</i><o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><i style="mso-bidi-font-style: normal;"><br /></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">There is an implicit but crucial point here: the outage/failure/error is
no longer a “bad thing” that must be avoided at all costs, it is an “expected
part of the process of innovation”, something that must be managed rationally. <span style="mso-spacerun: yes;"> </span>Launches are necessary, but the SRE team has multiple
ways of controlling the launch process : <i style="mso-bidi-font-style: normal;">“Google
defines a launch as any new code that introduces an externally visible change
to an application. Depending on a launch’s characteristics — the combination of
attributes, the timing, the number of steps involved, and the complexity — the
launch process can vary greatly. According to this definition, Google sometimes
performs up to 70 launches per week.”<o:p></o:p></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><i style="mso-bidi-font-style: normal;"><br /></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Among the variables that can be acted, the SRE team must schedule the
planned downtimes and the <b style="mso-bidi-font-weight: normal;">disaster
recovery tests</b>. Google spends a lot of energy on simulations of crashes and
live drills. As we shall see later, the only way to develop and certify
recovery capabilities is to test them regularly. Living with a failure is a
part of what it means to run operations. As pointed out in the book, most
people reaction when facing a failure is to start troubleshooting instantly and
spend all their energy to find a root cause as quickly as possible. The proper
set of action (as with a human accident) is to make first the system work as
well as possible in a degraded mode. This is the type of behavior that you can
only get with practice. Once again, <a href="https://medium.com/production-ready/how-complex-web-systems-fail-part-1-4aaffc11e0c7">failures
are a natural occurrence of large scale complex systems</a>. Minimizing impact
of these failures is the role of reliability engineering.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">2.7 Technical Debt and
Recovery Capabilities</span></span></b></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Complex systems that evolve constantly are poised to produce unnecessary
weight and complexity that should be assessed and removed periodically. This is
the principle of “taking constant care of one’s garden” (removing weeds, pruning,
digging, …), that is, <a href="https://informationsystemsbiology.blogspot.com/2018/07/managing-complexity-and-technical-debt.html">removing
“technical debt” in the words of information systems</a> : <i style="mso-bidi-font-style: normal;">“Without constant engineering, operations load increases and teams will
need more people just to keep pace with the workload.” </i><span style="mso-spacerun: yes;"> </span>This is also why the authors warn us against “over-engineering”
reliability : <span style="mso-spacerun: yes;"> </span>“<i style="mso-bidi-font-style: normal;">that would waste opportunities to add features to the system, clean up
technical debt, or reduce its operational costs</i>.”<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">When dealing with large-scale systems, <b style="mso-bidi-font-weight: normal;">data engineering becomes a critical skill</b>. In the past 20 years I
have lived through a number of very significant outages. Throughout theses
(tough) experiences, I have noticed that the time to recover, to move or to
install new data sets is always much longer than planned. In most cases, the
recovery plan is executed (hence the disaster is averted) but the total
recovery time is longer than what was planned initially, because unit
operations are longer. Google report similar stories in this book: <i style="mso-bidi-font-style: normal;">“Processes and practices applied to volumes
of data measured in T (terabytes) don’t scale well to data measured in E
(exabytes). Validating, copying, and performing round-trip tests on a few
gigabytes of structured data is an interesting problem.” <o:p></o:p></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><i style="mso-bidi-font-style: normal;"><br /></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">A fair amount of pages deals with backup and recovery. Obviously, what matters
is recovery, backups are just a tool. As a subcomponent of disaster recovery,
data recovery must be tested regularly. Designing data recovery is a hard
problem. More generally, designing reliable distributed systems is hard. As
mentioned earlier, the book points out the necessity of deep system skills and
expertise: <i style="mso-bidi-font-style: normal;">“Today, we hear a brazen
culture of “just show me the code.” A culture of “ask no questions” has grown
up around open source, where community rather than expertise is championed.
Google is a company that dared to think about the problems from first
principles, and to employ top talent with a high proportion of PhDs.” <o:p></o:p></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><i style="mso-bidi-font-style: normal;"><br /></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The proposed approach is to first create SRE teams with the proper mix
of expertise: <i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;">“To this end, Google always strives to staff its SRE
teams with a mix of engineers with traditional software development experience
and engineers with systems engineering experience.” <span style="mso-spacerun: yes;"> </span></span></i><span style="color: black; mso-themecolor: text1;">Then for these teams to succeed, it is critical that the
senior management recognizes reliability and quality of service as a strategic
imperative for the company. In all companies that I know, there are many “operations
anonymous heroes” that keep the systems running as well as possible. What distinguished
the digital champions such as Google is the recognition that these individuals
and teams play a major role in the value creation of the company and deserve a
just recognition: “</span><i style="mso-bidi-font-style: normal;">Another way to
get started on the path to improving reliability for your organization is to
formally recognize that work, or to find these people and foster what they do —
reward it</i>”. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">2.8 <span style="mso-spacerun: yes;"> </span>SRE : a Team with End-to-End Responsibility About
Operations</span></span></b></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">SREs are hybrid production teams, which combine ops and software
engineering capabilities (they aim at making Google systems run themselves)
with a dual ambition of customer satisfaction and continuous innovation. <i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;">“SRE is concerned with several aspects of a service, which are
collectively referred to as production. These aspects include the following:
System architecture and interservice dependencies; Instrumentation, metrics,
and monitoring; Emergency response, Capacity planning, <b style="mso-bidi-font-weight: normal;">Change management</b>; Performance: availability, latency, and
efficiency”.</span></i><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;"><br /></span></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">SRE teams follow many of the DevOps principles (software engineering and
operations skills working as a team, involvement of IT function in each phase
of a system’s design and development, heavy reliance on automation, …). SRE
teams are associated to a service (or a service domain) : they own the
responsibility of the run for this service: <i style="mso-bidi-font-style: normal;">“In
general, an SRE team is responsible for the availability, latency, performance,
efficiency, change management, monitoring, emergency response, and capacity
planning of their service(s).” </i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><span style="mso-spacerun: yes;"><br /></span></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Somewhere
in the book, the authors notice that most concepts, principles and technique
reported here are not special but rather part of a well-accepted
state-of-the-art practice. However they also notice that a surprising number of
ops team do not take these practices seriously, such as capacity planning, resulting
in unnecessary failures.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">As stated earlier, SREs make a heavy use of <b style="mso-bidi-font-weight: normal;">blameless postmortems</b> as a tool for training and evangelization. <i style="mso-bidi-font-style: normal;">“Google’s Postmortem Philosophy: The primary
goals of writing a postmortem are to ensure that the incident is documented,
that all contributing root cause(s) are well understood, and, especially, that
effective preventive actions are put in place to reduce the likelihood and/or
impact of recurrence</i>.” Blameless here means that the root cause analysis
focus “<i style="mso-bidi-font-style: normal;">on identifying the contributing
causes of the incident without indicting any individual or team for bad or
inappropriate behavior</i>”. <span style="mso-spacerun: yes;"> </span>Postmortems
are not meant to be kept for the SRE team but to be shared as extensively as
possible in the company.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Another key ritual of the SRE are the production meetings, where SRE
team members orchestrate the necessary knowledge sharing between all concerned
stakeholders (including product owners and software architects) : <i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;">“In general, these meetings are service-oriented; they are not directly
about the status updates of individuals. The goal is for everyone to leave the
meeting with an idea of what’s going on — the same idea. The other major goal
of production meetings is to improve our services by bringing the wisdom of
production to bear on our services”</span></i><span style="color: black; mso-themecolor: text1;">. A key role in the SRE team in the Launch Coordination
Engineer, which requires “</span><i style="mso-bidi-font-style: normal;">strong
communication and leadership skills</i>” to bring everyone together. In a true
DevOps spirit, when the operational load is too heavy, product development
teams should contribute so that SRE keep a balance between incident management
and continuous improvement. System architects should attend these production
meetings regularly to collect up-to-date availability, latency and throughput
which are absolutely necessary for reliable system engineering. Architecture
schemas that are purely functional lead to disastrous failures in operations.<i style="mso-bidi-font-style: normal;"><span style="color: red;"><o:p></o:p></span></i></span></span></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<h3 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">2.9 The Lean and TQM
roots of Google SREs</span></span></b></h3>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Throughout the book, the influence of Total Quality Management (e.g.,
Deming) and Lean Management is quite visible. There is a constant effort to
organize work so as to avoid overloads and work with a regular activity flow. Edward
Deming famous quote “cherish your mistakes” finds many echoes here: <i style="mso-bidi-font-style: normal;">“Google operates under a blame-free
postmortem culture, with the goal of exposing faults and applying engineering
to fix these faults, rather than avoiding or minimizing them.” <o:p></o:p></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><i style="mso-bidi-font-style: normal;"><br /></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Running complex operations, especially disaster recovery and incident
management, is more efficient with a playbook (lean “standard”) : <i style="mso-bidi-font-style: normal;">“When humans are necessary, we have found
that thinking through and recording the best practices ahead of time in a
“playbook” produces roughly a 3x improvement in MTTR as compared to the
strategy of “winging it.” </i>Another lean influence is the importance of “system
understanding” and making sure that indicators are picked scarcely and wisely. What
matters here is the ability for the team members to evaluate and reason
properly about a system’s health: <i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;">“Ineffective troubleshooting sessions
are plagued by problems at the Triage, Examine, and Diagnose steps, often
because of a lack of deep system understanding.”<o:p></o:p></span></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><i style="mso-bidi-font-style: normal;"><span style="color: black; mso-themecolor: text1;"><br /></span></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The system engineering culture has many aspects in common with Lean
SixSigma, namely the heavy use of statistics including the use of distributions
rather than mean values: “<i style="mso-bidi-font-style: normal;">We generally
prefer to work with percentiles rather than the mean (arithmetic average) of a
set of values. Doing so makes it possible to consider the long tail of
data points, which often have significantly different (and more interesting) characteristics
than the average”. </i>Performance and reliability engineering require taking
more than the average case into account.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Another lean trait is the search for constant elimination of dead weight
(<a href="https://www.lean.org/lexicon/muda-mura-muri">muda</a> in the lean
sense) which we mentioned earlier : “<i style="mso-bidi-font-style: normal;">The
term “software bloat” was coined to describe the tendency of software to become
slower and bigger over time as a result of a constant stream of additional
features</i>.” “<i style="mso-bidi-font-style: normal;">Software bloating</i>” or
“<a href="https://en.wikipedia.org/wiki/Feature_creep">feature creep</a>” is a common
plague of software systems that is a clear instance of the <a href="https://en.wikipedia.org/wiki/Tragedy_of_the_commons">Tragedy of the
Commons</a>. Adding more features always comes from a <i style="mso-bidi-font-style: normal;">local view</i>, where the benefit of the new feature is amplified and
the systemic cost of adding to the whole system is reduced if not ignored. To encourage
the team to adopt a “<i style="mso-bidi-font-style: normal;">one system</i>”
mindset forces to re-evaluate with less emphasis on the new feature and more on
the global resource consumption. Many resources such as available time (in an
ops planning), bandwidth, or memory capacity lead to a “<i style="mso-bidi-font-style: normal;">tragedy of the commons</i>” situation where the sum of “small local
incremental usages” translates into a global over-consumption.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<h2 style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="color: black;">3. Conclusion</span></b></span></h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8674AJSPPHhAzKEbW8DwDXipuguhfuTkuMDF_HdavPOl0YuqyrdO09RHodpONYTNhjNGpmUJejIircTjQSSaJYajb95bFENL5dhRdJPGjbAWueCc8IQLd7GQCnZbZqsbJLhi6apKAMp8/s1600/TwitterIASRE.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="540" data-original-width="720" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8674AJSPPHhAzKEbW8DwDXipuguhfuTkuMDF_HdavPOl0YuqyrdO09RHodpONYTNhjNGpmUJejIircTjQSSaJYajb95bFENL5dhRdJPGjbAWueCc8IQLd7GQCnZbZqsbJLhi6apKAMp8/s320/TwitterIASRE.jpg" width="320" /></a></div>
<div class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Although this book review is actually quite shallow compared to the
depth of the book, it is already substantial compared to what people expects
when discussing digital transformation. My intent here is to underline the importance
of execution with any digital transformation. As stated in the introduction and
wonderfully explained in “The Web Giants”, quality of service is a crucial part
of the customer experience. A company cannot be a digital leader without
mastering the skills and the practices that are described in this book. The
illustration on the right is taken from the Twitter launch of the <a href="https://informationsystemsbiology.blogspot.com/2018/04/artificial-intelligence-applications.html">NATF
report on Artificial Intelligence and Machine Learning</a>. What it says is
that the Google SRE book should be part of the skill set of any companies that
aim to develop a leading service based on data and AI. <b style="mso-bidi-font-weight: normal;">Engineering matters</b>.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><span style="mso-spacerun: yes;"> </span><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Site Reliability Engineering is foremost an ambition about people and
culture. Here is a very short summary about an ideal “End to End” operations
organization:</span></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt;">
</div>
<ul style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "verdana" , sans-serif;">It is made of
small autonomous teams that orchestrates, for instance through production
meetings as well as postmortems, all stakeholders involved with the delivery of
one (end-to-end) service.</span></li>
<li style="text-align: justify;"><span style="font-family: "verdana" , sans-serif;">The team owns
the responsibility of this service: availability (reliability), latency &
throughput , capacity planning, change management, monitoring, <span style="text-indent: -18pt;"> </span><span style="text-indent: -18pt;">incident management and recovery.</span></span></li>
<li style="text-align: justify;"><span style="font-family: "verdana" , sans-serif;"><span style="font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-US" style="text-indent: -18pt;">This should be
a customer-centric organization with is both measure-driven (analytics) and
adaptive (flexible). Its operations guideline should fluctuate using an “error
budget” to deliver stable quality of service and “change throughput” at the
same time.</span></span></li>
<li style="text-align: justify;"><span style="font-family: "verdana" , sans-serif;">This team is
necessarily “progress-centric” and operates under continuous improvement using
postmortems and root causes analysis. The team has the diverse skill set to own
and understand the complexity of the systems that it operates.</span></li>
<li style="text-align: justify;"><span style="font-family: "verdana" , sans-serif;">The
organization strives towards as much automation as possible. This requires both
to enroll software engineering skill and to let them operate on production
systems.</span></li>
</ul>
<div class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">This book tells mostly about reliability engineering but, as shown in
the previous section, it is also a textbook about distributed systems
engineering. Here is a short set of principles for building reliable
distributed systems that I have extracted from this reading and which I will
comment in a future post (the reference to “<b style="mso-bidi-font-weight: normal;">Biology of Distributed Information Systems</b>” – <a href="https://informationsystemsbiology.blogspot.com/2006/11/welcome-message.html">the
title chosen for this blog 10 yeas ago</a> – is quite deep) :</span></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt;">
</div>
<ol style="text-align: left;">
<li><span style="font-family: "verdana" , sans-serif;">Leverage APIs
to develop a multi-modal cell structure with variable rate of change, when
change flows from the outside towards the inside of the whole system (like a
cell)</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Organize
complexity in layers where advanced systems are backed up by simpler “life-support”
systems, the lower the complexity the higher the availability (biomimicry)</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Develop an
event-driven flow architecture to design <a href="https://www.lightbend.com/blog/reactive-manifesto-20" style="text-indent: -18pt;">reactive systems</a><span style="text-indent: -18pt;">
that are scalable, reliable and open</span></span></li>
<li><span style="font-family: "verdana" , sans-serif;">Use self-monitoring
and “digital twin” to provide self-adaptation, self-optimization and self-healing</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Journey
towards abstraction to move to “server less” systems (necessary to combine SaaS, cloud and on-premice operations)</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Leverage lean thinking
to deliver robustness and flexibility through more available capacity</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Don’t fight
CAP (theorem) and develop a reliable, high-availability, eventually consistent
data architecture (think of data consistency as a movie rather than a <a href="https://en.wikipedia.org/wiki/Snapshot_isolation" style="text-indent: -18pt;">snapshot</a><span style="text-indent: -18pt;">).</span></span></li>
</ol>
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<br /></div>
<div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
</div>
</div>
Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com0tag:blogger.com,1999:blog-438942112364524044.post-63131571622368598392018-07-22T07:37:00.000-07:002018-07-22T07:37:12.011-07:00Managing Complexity and Technical Debt : A Model for Quantifying Systemic Analysis<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 107%;"><span style="font-family: Verdana, sans-serif;">1. Introduction</span></span></b></h2>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">Today’s post is a summer recreation/musing
about <b style="mso-bidi-font-weight: normal;">how to model the effect of
complexity and technical debt</b>, in the same spirit of a the previous “<span class="MsoHyperlink"><a href="https://informationsystemsbiology.blogspot.com/2009/06/sustainable-it-budget-in-equation.html">Sustainable
IT Budget in an equation</a></span>” post. I used the word “recreation” to make
it clear that this is proposed as “food for thoughts”, because I have worked
hard to make the underlying model really simple, without the intent of
accuracy. I have worked on IT cost modelling since 1998 and have removed layers
of complexity and precision over the years to make this model a communication
tool. You may see the result, for instance, in <span class="MsoHyperlink"><a href="https://www.slideshare.net/ycaseau1/cours-chapitre5-2012">my lecture at
Polytechnique about IT costs</a></span>.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">This post is a companion to the previous “<span class="MsoHyperlink"><a href="https://informationsystemsbiology.blogspot.com/2017/12/sustainable-information-systems.html">Sustainable
Information Systems and Technical Debt</a></span>” with a few (simple)
equations that may be used to explain the concepts of sustainable development<span style="mso-spacerun: yes;"> </span>and complexity management to an audience who
loves figures and quantified reasoning. It proposes a very crude model, that
should be used to explain the systemic behavior of IT costs. It is not meant to
be used for forecasting. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">What is new in this model and in this post, is
the introduction of change and the cumulated effect of complexity. The previous
models looked at the dynamics of IT costs assuming an environment that was more
or less constant, which is very far from the truth, <span class="MsoHyperlink"><a href="http://informationsystemsbiology.blogspot.com/2016/05/exponential-information-systems.html">especially
in a digital world</a></span>. Therefore, I have extended this simple model of
IT costs into two directions:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">I
have introduced a concept of « decay » to represent the imperative
for change. I am assuming that the value delivered by an IT system decreases
over time following a classical law of “exponential decay”. This is a simple
way to represent the need for « <a href="http://complexitylabs.io/homeostasis/">homeostasis </a>», which is
the need to keep in synch with the enterprise’s environment. The parameter for
decay can be adjusted to represent the speed at which the external environment
evolves.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">I
have also factored the effect of cumulated complexity into the model, as a
first and simple attempt to model <span class="MsoHyperlink"><a href="http://informationsystemsbiology.blogspot.com/2017/12/sustainable-information-systems.html">technical
debt</a></span>. This requires modelling the natural and incremental rise of
complexity when IS evolves to adapt to its environment (cf. previous point) –
as noticed before, there is a deep link between the rate of change and the
importance of technical debt – as well as the representation of the effort to
clean this technical debt.</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">This model makes use of <span class="MsoHyperlink"><a href="file:///E:/Dropbox/Notes/Blog/cesam.community/fichier.php?id=282">Euclidean
Scalar Complexity</a></span>(ESC), a metric developed with Daniel Krob and
Sylvain Perronet to assess integration <span class="MsoHyperlink"><a href="http://informationsystemsbiology.blogspot.com/2010/01/taming-information-systems-complexity.html?showComment=1264506292612">complexity</a></span>
from enterprise architecture schema. ESC is easy to compute and is (more or
less) independent from scale.<span style="mso-spacerun: yes;"> </span>The
technical contribution of this new model and blog post is to propose a link
between ESC and technical debt. Although this link is somehow naïve, it
supports “business case reasoning” (i.e., quantifying common sense) to show
that managing technical debt has a positive long-term return on investment.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">This post is organized as follows. Section 2
gives a short summary of asset management applied to information systems, in
other words, how to manage information systems through replacement and
renovation rates. This is the first systemic lesson: investments produce assets
that accumulate and running costs follow this accumulation. The proposed
consequence is to keep the growth and the age of the assets under control.
Section 3 introduces the effect on computing (hardware) resource management on
IT costs. We make a crude distinction between legacy systems where hardware is
tied to application in a way that required a complete application
re-engineering to benefit from better generations of computing resources, as
opposed to modern virtualized architecture (such as cloud computing) that
supports the constant and (almost) painless improvement of these resources.
This section is a simplified application of the hosting cost model proposed <span class="MsoHyperlink"><a href="https://www.amazon.com/Information-Technology-Chief-Executive-Organization/dp/1438911114">in
my second book</a></span>, which yields similar results, namely that Moore’s
law benefits only show in IT costs if the applicative architecture makes it
possible. Section 4 introduces the need for change and the concept of
exponential decay. It shows why managing IT today should be heavily focused on
average application age, refresh rate and software asset inertia. It also
provides quantitative support for concepts such as <span class="MsoHyperlink"><a href="https://www.gartner.com/it-glossary/bimodal/">multi-modal</a></span>
Information Systems and <span class="MsoHyperlink"><a href="https://informationsystemsbiology.blogspot.com/2016/05/exponential-information-systems.html">Exponential
Information Systems</a></span>. Section 5 is more technical since we introduce
Information System complexity and the management of technical debt from a
quantified perspective. The main contribution is to propose a crude model about
how complexity increases iteratively as the information system evolves and how
this complexity may be constrained through refactoring efforts at the
enterprise architecture level. Although this is a naïve model, at a macro
scale, of technical debt, it supports quantified reasoning which is illustrated
throughout this blog post with charts produced with a spreadsheet.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 107%;"><span style="font-family: Verdana, sans-serif;">2. Asset Management and Information Systems</span></span></b></h2>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDyTWR71qV-JweMTgzeaun_dMpH0uAZq2fdOssXdfhScLAnhKILMh6CRUwbVZ6Dmdx0O6u4DjOh0Ku1N05jw_PlP04ZOm1j0qn6GuCLMtnj2hOtSkkE1tAtOz9HgAvsbQfklHETIHW1t8/s1600/Keene.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="240" data-original-width="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDyTWR71qV-JweMTgzeaun_dMpH0uAZq2fdOssXdfhScLAnhKILMh6CRUwbVZ6Dmdx0O6u4DjOh0Ku1N05jw_PlP04ZOm1j0qn6GuCLMtnj2hOtSkkE1tAtOz9HgAvsbQfklHETIHW1t8/s1600/Keene.jpg" /></a><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">We will introduce the model step by step,
starting with the simple foundation of asset management. <i style="mso-bidi-font-style: normal;">At its simplest, an information system is a set of software assets that
are maintained and renewed</i>. The software process here is very
straightforward: a software asset is acquired and integrated into the
information systems. Then it generates value and costs: hosting costs for the
required computing assets, support costs and licensing costs. The <a href="https://www.amazon.fr/dp/B007RHYKR8/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1">previously
mentioned book</a> gives much more details about the software assets TCO; this
structure is also found in <a href="https://www.amazon.fr/lInformatique-Savoir-vivre-avec-lautomate/dp/2717852190">Volle
</a><span style="mso-spacerun: yes;"> </span>or <a href="https://onlinelibrary.wiley.com/doi/abs/10.1002/hrdq.3920020312">Keen</a>
. The software lifecycle is made of acquisition, maintenance, renewal or kill. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">Since the main object of the model is the set
of software assets, the key metric is the size of this asset portfolio. In this
example we use the Discounted Acquisition Costs model, that is the sum of the
payments made for the software assets that are in use (that have not been
killed) across the information system’s history. <span style="mso-spacerun: yes;"> </span>The IS budget has <a href="https://www.cio.com/article/3005705/software/calculating-the-total-cost-of-ownership-for-enterprise-software.html">a
straightforward structure</a> : we separate the build costs (related to the
changes in the asset portfolio : acquisition, maintenance, etc.) and the run
costs (hosting, support and licensing). Run costs are expressed directly as the
product of resource units (i.e. the size of the IS / software assets) and unit
costs (these unit costs are easy to find and to benchmark).<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The model for the Build costs is more elaborate
since it reflects the IS strategy and the software product lifecycle.<span style="mso-spacerun: yes;"> </span>To keep things as simple as possible we
postulate that the information system strategy in this model is described as an
asset management policy, with the following (input) parameters to the model:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The
total IT budget</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The
percentage of Build budget that is spent on acquiring new assets (N%)</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The
percentage of Build budget that is spent on retiring old assets (K%)</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The
percentage of Build budget that is spent on renewals (R%)</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">With these four parameters, the computation of
each yearly iteration of the IT budget is straightforward. The run costs are
first obtained from the IS size of the previous year. The build budget is the
difference between total IT budget and run costs. This build budget is
separated into four categories: acquiring new assets, killing existing (old)
assets, replacing old assets with newer ones (we add to the model an efficiency
factor which means that renewals are slightly more efficient than adding a brand-new
piece of software) and “maintenance”. Maintenance (for functional or technical
reasons) is known to produce incremental growth (more-or-less, it depends on
the type of software development methodology) which we can also model with a
parameter.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">The model is,
therefore, defined through two key equations which tells how the asset
portfolio changes every year in size (S) <span style="mso-spacerun: yes;"> </span>and age (A).</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;"> Here is a simplified description (S’ is the
new value of “assets size”, S is the value for the previous year):<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ol>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-align: left; text-indent: -18pt;">Growth
of the assets: <i>S’ = S - Build x K% + Build x A% + Build x (1 – K% –
A% – R%) x G%</i></span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-align: left; text-indent: -18pt;">Ageing
of the assets: <i>A’ = (A + 1) x (S – Build * (1 – N% - R% - K%)) / S’</i></span></li>
</ol>
<br />
<div class="MsoListParagraphCxSpLast">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">Measuring software assets with Discounted
Acquisition Costs has benefits and drawbacks. The obvious benefit is that it is
applicable to almost all companies. The value that is used for discounting with
age has a small effect on the overall simulation (and what will be said in the
rest of the post). Typical values are between -3% to -10%. The drawback is that
money is a poor measure of complexity and richness of the software assets. A
better alternative is to use <a href="https://en.wikipedia.org/wiki/Function_point">function points</a>, but
this requires a fair amount of efforts, over a long period of time. When I was CIO
of Bouygues Telecom, I was a strong proponent of function points but I found it
very hard to make sure that measurement was kept simple (at a macro scale) to
avoid all the pitfalls of tedious and arguable accounting. What I have found
over the years is that it is almost impossible to use function points without
strong biases. However, as soon as you have a reasonable history, it works very
well for year-by-year comparisons. Used at a macro scale, it also gives good
benchmarking “orders of magnitudes”.<span style="mso-spacerun: yes;">
</span>There are many other alternatives (counting apps, databases, UI screens,
….) that suffers from the same benefits and drawbacks. Since I aim to propose
something generic here – and because discussing with CFOs is a critical goal of
such a model -, using DAC makes the most sense.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The
following chart gives an example of simulating the same information system,
with the same constant budget, under three strategies:<o:p></o:p></span></span></div>
<div class="MsoNormal">
</div>
<ul style="text-align: left;">
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The
“standard strategy” is defined by N% = 5%, K% = 3%, R% = 50%. With 50% of the
project budget spent on renewal, this is already a strong effort to keep the
assets under control. The imbalance between what needs to be added (5% of the
budget to meet new needs and a small effort for decommissioning) is quite
typical.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The
“clean strategy” is defined by N% = 5%, K% = 8%, R%=60%. Here we see the effect
of try to clean up the legacy (more renewal effort, and more decommissioning).</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The
“careless” scenario is defined by N% = 5%, K% = 3% and R% = 30%. This is not a
large change compared to the standard one, less effort is made on renewing
assets so that more money can be spent on adapting the existing assets to the
current needs.</span></li>
</ul>
<br />
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ruLU2NKGc5gUF8VOu95m9685OzskRBp9DVh5X8-0y63NtvkQ6mJiLELckRvFRZ_0734wJiLBu2UkUifXwQiX9jLG3xF0dWXRApZvvy5fQ6x9DUoC4DvL8fJjT55YKLKFssC1bVQUShE/s1600/ManagingTDPicture1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ruLU2NKGc5gUF8VOu95m9685OzskRBp9DVh5X8-0y63NtvkQ6mJiLELckRvFRZ_0734wJiLBu2UkUifXwQiX9jLG3xF0dWXRApZvvy5fQ6x9DUoC4DvL8fJjT55YKLKFssC1bVQUShE/s640/ManagingTDPicture1.jpg" width="640" /></a></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">These three
figures illustrate some of the key lessons that have been explained before, so
I will keep them short:<o:p></o:p></span></span></div>
<div class="MsoNormal">
</div>
<ul style="text-align: left;">
<li><b style="font-family: Verdana, sans-serif; text-align: justify; text-indent: -18pt;"><span lang="EN-US">Changes that may seem small in the
strategy</span></b><span lang="EN-US" style="font-family: Verdana, sans-serif; text-align: justify; text-indent: -18pt;"> (the
values from the three scenarios are not all that different) <b>produce significant differences over the
years</b>. Especially the “Build/Run” ratio changes significantly here
according to the strategy that is picked.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-align: justify; text-indent: -18pt;"><a href="https://www.sei.cmu.edu/research-capabilities/all-work/display.cfm?customel_datapageid_4050=6520">Beware
of accumulation</a>, both in size and ageing, because once the problem
accumulates it becomes hard to solve without a significant IT budget increase.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-align: justify; text-indent: -18pt;">The
effects of an aggressive cleanup asset management strategy are visible, and pay
for themselves (i.e., they help free build money to seize new opportunities),
but only after a significant period of time, because of the multiplicative
effects. Therefore, there is no short-term business case for such a strategy
(which is true for most asset management strategies, from real estates to wine
cellars).</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">As I will explain in the conclusion, showing
three examples does not do justice to the modelling effort. It is not meant to
produce static trajectories, but rather to be played with in a “what if” game.
Besides, there are many hypotheses that are specific to this example:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><b style="font-family: Verdana, sans-serif; text-indent: -18pt;"><span lang="EN-US">The ratio between the Build budget
and the value of the asset portfolio is critical</span></b><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">. This reflects the history of the company and
differentiates between companies that have kept their software assets under
control and those where the portfolio is too large compared to the yearly
budget, because accumulation has already happened.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">This
example is built with a flat budget, but the difference gets bigger if there
are budget constraints (additional project money is “free money” whereas “less
project money” may translate to forced budget increase because renewing the SW
assets is mandatory for regulatory reasons … or because of the competition).</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The
constants that I have used for unit costs are “plausible orders of magnitudes”
gathered from previous instances of running such models with real data, but
each company is different, and the numbers do change the overall story.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">We
do not have enough information here to discuss about the “business case” or the
“return on investment” for the “cleanup strategy”. It really depends on the
value that is generated by IT and the “refresh rate” constraints of the
environment, which is what we will address in Section 4.</span></li>
</ul>
<br />
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 107%;"><span style="font-family: Verdana, sans-serif;">3. Managing Computing Infrastructures to Benefit Moore’s Law</span></span></b></h2>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">In the previous model I have assumed that there
is a constant (cf. the unit cost principle) cost of hosting a unit of software
asset on computing resources. This is an oversimplification since hosting costs
obviously depends on many factors such as quality of service, performance
requirement and software complexity. However, when averaged over one or many
data centers, these unit costs tend to be pretty “regular” and effective to
forecast the evolution of hosting. There is one major difference that is worth
modelling: the ability to change, or not, the computing & storage hardware
without changing the software asset. As explained in my second book, <span style="mso-spacerun: yes;"> </span>“<a href="https://www.slideshare.net/ycaseau1/cours-chapitre5-2012">Moore’s Law
only shows in IT costs if it is leveraged</a>”, that is if you take advantage
of the constant improvement of hosting costs. To keep with the spirit of a
minimal model, we are going to distinguish two types of software:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><b style="font-family: Verdana, sans-serif; text-indent: -18pt;"><span lang="EN-US">Legacy</span></b><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">: when the storage/computing configuration is
linked to the application and is not usually changed until a renewal (cf.
previous section) occurs. In this case, unit costs tend to show a slow decline
over the years, due to automation and better maturity in operation, which is
very small compared to the cost decrease of computing hardware. This was the
most common case 20 years ago and is still quite frequent in most large
companies.</span></li>
<li><b style="font-family: Verdana, sans-serif; text-indent: -18pt;"><span lang="EN-US">Virtualized</span></b><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">: when a “virtualization layer”
(from VM, virtual storage to containers) allows a separation between software
and computing assets. This is more common nowadays with cloud (public or
private) architecture. Because it is easier to shift computing loads from one
machine to another, <a href="https://pdfs.semanticscholar.org/2131/f64578ea73dad9e501b583736938e81c9cc4.pdf">hosting
costs are declining more rapidly</a>. <a href="https://www.kapwing.com/blog/cloud-costs-arent-actually-dropping-dramatically/">This
decline is much slower than Moore’s law</a> because companies (or cloud
providers) need to amortize their previous investments.</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">This split is easy to add into our asset model.
It first requires to track software assets with two lines instead of one
(legacy and virtualized), and to create two set of unit costs (which will
reflect the faster reduction for virtualized hosting cost, as well as the
current difference which is significant for most companies since virtualized
load tend to run on “commodity hardware” whereas legacy software often runs on
specialized and expensive hardware (the most obvious example being the
mainframe).<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The software asset lifecycles are coupled as
follows. First the kill ratio K% must be supplemented with a new parameter that
says how much of the effort is made on the legacy portfolio compared to the
virtualized one. Second, we assume here – for simplification – that all
applications that are renewed are ported to a newer architecture leveraging
virtualized computing resources. <b style="mso-bidi-font-weight: normal;">Hence
the renewal parameter (R%) will be the main driver to “modernize” the asset
portfolio</b>. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The following curves show the difference
between three strategies, similarly to the previous section. We have taken a
generic example where the portfolio is balanced at first between legacy and
virtualized computing architecture. In this run, the new ratio (N%) is raised
to 10% to reflect a situation where more change is required. The difference is
mostly about the renewal rate (respectively 40%, 50% and 30%) and the kill rate
(respectively 3%, 5% and 3%). The figure shows the size of the two software
asset portfolios (Virtualized and Legacy) as well as the average age.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVU8K-2uFl0Bs8lfkffq0GB3r9tCF33pZZIuhhZx6nQbhkX42DflctkQfaDa__SIeHEU_IeSJI85DNGxG1S-E_p6-Tnqcix4NLmskKymo0z8_-AAMPdSGwUN9n6so6stKPDgnv4ZzhJgU/s1600/ManagingTDPicture2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVU8K-2uFl0Bs8lfkffq0GB3r9tCF33pZZIuhhZx6nQbhkX42DflctkQfaDa__SIeHEU_IeSJI85DNGxG1S-E_p6-Tnqcix4NLmskKymo0z8_-AAMPdSGwUN9n6so6stKPDgnv4ZzhJgU/s640/ManagingTDPicture2.jpg" width="640" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The model was run here with conservative costs
estimates on purpose. The reader is encouraged to run this type of computation
with the real values of unit cost that s/he may observe in her company. Even
with this conservative setting, the differences are quite significant:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">A
sustained renewal effort translates into a more modern portfolio (the
difference in average age is qui significant after 8 years) and lower run
costs. <b>It is easy to model the true
benefits of switching to commodity hardware and leveraging virtualization</b>.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The
difference in the Build/Run ratio is quite high, because the run costs are much
lower once a newer architecture is in place.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">These
efforts take time. Once again, the key “strategic agility” ration is
“build/run”. <b>When the asset portfolio
has become too large, the “margin for action” is quite low </b>(the share of
the build budget that can be freely assigned to cleanup or renewal once the
most urgent business needs have been served).</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">To make these simulations easier to read and to
understand, we have picked a “flat IT budget scenario”. It is quite interesting
to run simulations where the “amount of build project” has a minimal value that
is bound to business necessities (regulation or competition – as is often the
case in the telecom market). With these simulations, the worse strategy
translates into a higher total IT cost, and the gap increases over the years
because of the compounded effects.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 107%;"><span style="font-family: Verdana, sans-serif;">4. Managing Information Systems Refresh Rate to Achieve Homeostasis</span></span></b></h2>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 107%;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">I should apologize for this section title which
is a mouthful bordering on pretentious … however I have often used the concept
of “<a href="https://en.wikipedia.org/wiki/Homeostasis">homeostasis</a>” in the
context of <a href="https://organisationarchitecture.blogspot.com/2014/03/entreprises-numeriques-et-homeostasie.html">digital
transformation</a> because it is quite relevant. Homeostasis refer to the
effort of a complex systems (for instance a living organism) to maintain an
equilibrium with its environment. In our world of constant changes pushed by
technology rapid evolution, homeostasis refers to the constant change of the information
system (including all digital assets and platforms) to adapt to the changing
needs of customers and partners. From my own experience as an IT professional
for the past 30 years, this is the main change that has occurred in the past decade:
the “refresh rate” of information systems has increased dramatically. </span></span><span style="font-family: Verdana, sans-serif;">This is
an idea that I have developed in many </span><a href="http://informationsystemsbiology.blogspot.com/2017/06/digital-experience-factories.html" style="font-family: Verdana, sans-serif;">posts</a><span style="font-family: Verdana, sans-serif;">
from this </span><a href="http://informationsystemsbiology.blogspot.com/2014/04/software-ecosystems-and-application.html" style="font-family: Verdana, sans-serif;">blog</a><span style="font-family: Verdana, sans-serif;">.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">This is also a key idea from Salim Ismail’s
best seller book “<a href="https://exponentialorgs.com/">Exponential
Organizations</a>” which I have used to coin the expression “<a href="http://informationsystemsbiology.blogspot.com/2016/05/exponential-information-systems.html">Exponential
Information Systems</a>”. From our IT cost model perspective, what this says is
that there is another reason – other than reducing costs and optimizing TCO –
to increase the refresh rate. I can see two reasons that we can to capture:
first, the value provided by a software asset declines over time because the
environment changes. Second, no software asset is isolated any more, each is part
of a service (or micro service) orchestration patterns, that comes with its own
refresh rate constraints. I have found that the best way to express both
principles is to postulate that the value provided by a software asset declines
over time following a classical <a href="https://en.wikipedia.org/wiki/Exponential_decay">exponential decay</a>
law:<span style="mso-spacerun: yes;"> </span><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><span style="mso-tab-count: 1;"> </span><i style="mso-bidi-font-style: normal;">Value = V0 x exp(- lambda x time)<o:p></o:p></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><i style="mso-bidi-font-style: normal;"><br /></i></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">This formula is easy to introduce in our model,
and it adds a penalty to ageing software that is independent from the previously
mentioned TCO effects on licensing, maintenance, or hosting.<span style="mso-spacerun: yes;"> </span><b style="mso-bidi-font-weight: normal;">The
decay parameter (lambda) is a way to tell the model that “software must change
regularly” to cope with the constant changes of its environment</b>.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;">I will not offer any simulation or charts here,
because it is actually quite difficult to find data about this “decay” (need
for change) and it makes little sense to invent one for a generic simulation. Also,
not all software assets are equal with respect to exponential decay.
Software-as-a-service (SaaS) is precisely an answer to this need for constant
adaptation. Therefore, should we plan to run simulations seriously, we should
use different decay constants for different classes of assets. There are plenty
of software costs benchmarking materials that may be used to calibrate or
evaluate the unit costs for the two previous models but evaluating the “rate of
decay” is much more difficult and very specific to each industry.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">On the other hand, exponential decay / forced
rate of change is a really useful concept when planning about the long-term
future of information systems. When one plays with the previous model augmented
with decay<b style="mso-bidi-font-weight: normal;">, it becomes clear that the
desired rate of change, which is a business imperative, is not compatible with
the inertia that is exhibited by the model</b>. This should be clear in the
example shown in the previous section: the weight of the legacy portfolio is
too high to obtain a homogeneous high refresh rate. In most large and
established company, the Build/Run ratio is worse that what is proposed here,
which means that the ability to increase the refresh rate is even worse.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">This situation yields naturally to the concept
of “multi-modal IT”, including the famous “<a href="https://www.gartner.com/it-glossary/bimodal/">bimodal IT</a>”
pattern.<span style="mso-spacerun: yes;"> </span>A multi-modal information
system is organized in an “onion structure” with a core and layers towards the
periphery. Using API (<a href="https://en.wikipedia.org/wiki/Application_programming_interface">Application
Programming Interfaces</a>), the onion may be organized so that the refresh
rate is higher in the outside layers than in the core. This a direct
application from biology and a pattern that is used in many organization <a href="https://www.amazon.de/Organize-Complexity-High-Performance-Organization-Publishing/dp/0991537602">theories
such as betacodex</a>. This is also the foundation for <a href="http://informationsystemsbiology.blogspot.com/2016/05/exponential-information-systems.html">Exponential
Information Systems</a>: <b style="mso-bidi-font-weight: normal;">Use Enterprise
Architecture and modularity to support different refresh rates for different
parts of the information systems</b>. The core/shared/pivot/common data model,
that described the key business objects that are used throughout the multiple
layers (multi-modal component) is a critical component of the Enterprise
Architecture since it defines the agility through the API. A modular multimodal
architecture is one that leaves most of the changes in the layers that were
designed to accommodate high refresh rates. This means that modularity is a <a href="https://www.slideshare.net/ycaseau1/cours-chapitre2-2012-30449430">dynamic
property of system architecture</a> much more than a static one. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The lesson from this short section is that one
should think really hard about the required refresh rates of sections of their
information systems. For each functional domain, a target refresh rate (which
is equivalent to a target average age for software assets) should be set. This
target is both a business and technical imperative which should be based on
requirements from customers and partners, as well as constraints related to
software ecosystems. Many software environments, such as developing a mobile
application, come with their own refresh rate constraints because the key
features provided by the ecosystem change constantly … while upward
compatibility is approximate at best. Similarly, the <a href="http://informationsystemsbiology.blogspot.com/2018/04/artificial-intelligence-applications.html">ambition
to leverage artificial intelligence and machine learning</a> for a given
business domain should translate into setting a high refresh rate target. Keep
in mind that adapting to the outside environment is a business imperative: <b style="mso-bidi-font-weight: normal;">if the lack of architecture modularity and
the inertial of the accumulated weight of the asset portfolio prevent from
upgrading the portfolio fast enough, the obvious solution is to grow this
portfolio resulting in added complexity and IT costs</b>.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 107%;"><span style="font-family: Verdana, sans-serif;">5. Information Systems Complexity and Technical Debt</span></span></b></h2>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">This last section introduces complexity and its
effect on TCO in our IT cost model. We have seen throughout this post that the
accumulation of weight is a burden, we shall now see that the accumulation of
complexity is also a handicap that translates into additional costs, namely
integration, testing and support costs. Obviously, the complexity of
information systems reflects the complexity of their mission and the complexity
of their environment. Somehow, this complexity is where part of the business
value and differentiation is created. What we want to focus on here is the
excess of complexity, which is precisely the definition of <a href="http://informationsystemsbiology.blogspot.com/2017/12/sustainable-information-systems.html">technical
debt</a>.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">To introduce complexity in our model, we need a
way to define and measure it. We shall use “<b style="mso-bidi-font-weight: normal;">Euclidean Scalar Complexity</b>” because it is easy to understand and
has a set of unique properties that makes it the best candidate for managing
complexity at the Enterprise Architecture scale. The principle is quite simple.
Assume that you have an architecture schema of your information systems, with
boxes and links. Assume that you have a weight <i style="mso-bidi-font-style: normal;">w(b)</i> for each of the boxes, and that the existence of a link on
your schema represents an interaction between the two subsystems represented by
the box.<span style="mso-spacerun: yes;"> </span>The weight could be the DAC
measure of Section 2, the function points, or any additive metric that you like
(i.e. <i style="mso-bidi-font-style: normal;">w(a+b) = w(a) + w(b)</i>). The
Euclidean Scalar Complexity (ESC) of your architecture (abstraction of your
system) is the square root of the sum of:<span style="mso-spacerun: yes;">
</span><i style="mso-bidi-font-style: normal;">w(x) x w(y)</i> for all pairs of
boxes <i style="mso-bidi-font-style: normal;">x, y</i> that are either identical
or joined with a link on the architecture schema. Normalized ESC means dividing
the ESC value by the weight of the information systems, which yields a
complexity ratio that we shall use in our model, a number between 0 and 1 (1
means that everything is connected and a value close to zero means that every
piece is independent). <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">ESC is one of the few metrics that is “scale
invariant”, which is the first requirement for working at the whole IS schema
(each architecture schema is a crude abstraction) – see the <a href="http://cesam.community/fichier.php?id=282">2007 paper</a> “<i style="mso-bidi-font-style: normal;">Complexité des systèmes d’information: une
famille de mesures de la complexité scalaire d’un schéma d’architecture</i>”
by<span style="mso-spacerun: yes;"> </span>CASEAU Y., KROB D., PEYRONNET S. Being
scale invariant means that if a change of scale is applied to the
representation (more boxes and more links to represent the same information at
a different scale), the complexity does not change. Another short introduction
to ESC is provided in my <a href="https://www.slideshare.net/ycaseau1/cours-chapitre4-2012">Polytechnique
lecture</a>. There is no need to understand ESC in detail to see how it can be
used to extend our IT cost model to manage technical debt, but the key insight
that can help is to see that ESC is foremost a (static) modularity measure. ESC
works well because it captures the benefits of Enterprise Architecture patterns
such as gateways, integration buses, API encapsulation, etc. ESC is a great
metric to capture the complexity of micro-service architectures.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">As explained earlier, we do not suppose that
the ideal information system has no complexity, but rather that for a given set
of assets, there exists two complexity ratios, Cmin and Cmax, that represent on
the one hand the minimal achievable ESC (i.e. rebuilding the IS from zero using
the maximal possible modularity) and on the other hand, the complexity that one
would get by randomly adding and integrating software assets incrementally. We
used the normalized ESC, so these two numbers are between 0 and 1. Not all
architecture problems are equal: some information systems are easy to build
which translates into Cmin and Cmax being close. On the other hand, for many
systems, the difference between Cmin, Cmax and C (the actual ESC ratio) is
quite high. These two anchors makes possible the definition of <a href="https://pdfs.semanticscholar.org/2789/76835f8595c837af0ff5f693865468830a34.pdf">technical
debt</a> as: <i>w(S) x (C – Cmin) / (Cmax – Cmin)</i><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">Introducing technical debt into our cost model
means two things:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Measuring
the impact of this additional complexity on costs.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Defining
and measuring what “reducing the technical debt” (i.e., managing complexity)
may mean, in terms of effect and cost.</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The first part is easy, considering the
simplicity of our model and the fact we are just looking for simple orders of
magnitude. In a same way that we have take the effect of aging into account for
licensing, we upgrade the following formulas:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Integration
costs are proportional to the ESC : for a project with no complexity at all it
would be zero (negligible compared to the cost of building / buying the new
component) whereas for a truly complex (C = 1.0) system, integration (and
testing) costs are equal to the acquisition costs. This is very debatable
(because it is so simple and because integration costs may be even worse) but
it gives a first plausible value.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Support
costs are also impacted: a fraction of support costs is proportional to C. This
fraction is different for each information systems and depends on the nature of
support activities (for instance, level 1 support is less impacted than level 3
support). Thus, this fraction is left as a model parameter.</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The second part is the true extension of the
model and what makes this post a new contribution to IT cost modelling. <span style="mso-spacerun: yes;"> </span><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Complexity
without any refactoring effort evolves naturally towards Cmax as an asymptotic
value (which is the definition of Cmax). The speed of evolution depends on how
much of the information system is renewed each year, so the resulting
complexity is a weighted average of the previous one and Cmax, where the
weights are respectively the size of what is untouched in the portfolio and the
size of what is added.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Refactoring
is seen as a fraction of the renewal budget applied to reducing the complexity.
The effect is described by a <a href="https://en.wikipedia.org/wiki/Power_law">power
law</a> (declining return of the invested money). The maximal effect (the
asymptotic value) is getting the complexity to Cmin (also by construction). I
have used a power law with degree 4 which seems to reproduce the empiric
observation that the refactoring efforts have a law of strongly diminishing
returns (the last 60% benefits cost 80% of the effort).</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The following illustration compares three IT
strategies while taking technical debt into account. In this example we assume
Cmin = 0.3 and Cmax = 0.6, with C = 0.5 at present time. The new parameters
compared to section 1 are the amount of refactoring (F%) and how much of the
kill effort is targeted towards legacy (small effect since the kill effort is
small here).<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ol>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The
“standard strategy” is defined by N% = 5%, K% = 3%, R% = 40% and F%=15%. Here
40% of the project budget is spent on renewal, and 15% of that money is
reserved for refactoring. 70% of the kill effort is targeted towards legacy.
The ESC ratio evolves from 0.5 to 0.489.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The
“intense strategy” is defined by N% = 5%, K% = 5%, R%=50% and F= 30% with 80%
of kill effort put on legacy. This is a more sustained effort (since money
applied to refactoring is not applied to adding new software assets). The
complexity ration evolves from 0.5 to 0.464.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The
“careless” scenario is defined by N% = 5%, K% = 3% and R% = 30% and clean = 5%.
These values are quite representative of most IT strategies (cf. what we said
earlier, 30% of renewal is already the sign of a managed portfolio, many
companies suffer from worse accumulation). Here the complexity moves from 0.5
to 0.509</span></li>
</ol>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLL1hVT_NMheu47hpze0t7tW8_cE1r8l5T5tSUEMzEeJep114Eqh8SRdL2U79QX61_BX32kpurL1dhWswalW-RLa95B9CastsQnCpchsccsuSNnjB9QufexDNG7wVVPCwswOxsmeqPdqA/s1600/ManagingTDPicture3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLL1hVT_NMheu47hpze0t7tW8_cE1r8l5T5tSUEMzEeJep114Eqh8SRdL2U79QX61_BX32kpurL1dhWswalW-RLa95B9CastsQnCpchsccsuSNnjB9QufexDNG7wVVPCwswOxsmeqPdqA/s640/ManagingTDPicture3.jpg" width="640" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">These simulations are only proposed as an
illustration. What can be learned through repeated simulations is similar to
what we said in Section 2:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Efforts
to clean up the portfolio, to keep the age and the complexity under control,
are long-term efforts but they have lasting effects.</span></li>
<li><b style="font-family: Verdana, sans-serif; text-indent: -18pt;"><span lang="EN-US">Accumulation in complexity, as well
as accumulation in weight, has the dual effect of increasing the run costs and
reducing the agility</span></b><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">
(the effort to change the information system to add new capacities becomes
higher).</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Contrary
to section 2 and 3 where the models may be calibrated with well-known unit
costs, measuring the negative effect of complexity and the positive effect of
refactoring is hard. What is proposed here is a simple and conservative model
that has the benefit of showcasing the effects of both but finding the right
constant /parameters to match this model to your reality requires efforts and
will lead to some “guesstimates”.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">The
key benefit of keeping weight and complexity under control is to allow for a
higher refresh rate, which is itself a business imperative which can be
modelled through “value decay” (Section 4). In order to simulate the value
created by an aggressive “keep the complexity under control” strategy, you need
to work under the situation of strong need for refresh (high decay). <b>The weight of technical debt becomes a huge
burden as soon as the environment requires to constantly update the information
system</b>.</span></li>
</ul>
<br />
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="line-height: 107%;"><span style="font-family: Verdana, sans-serif;">6. Conclusion</span></span></b></h2>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The title
for this blog post is: “<b style="mso-bidi-font-weight: normal;">Managing
Complexity and Technical Debt: A Model for Quantifying Systemic Analysis</b>”.
There are two key ideas<span style="mso-spacerun: yes;"> </span>here : the first
one is “quantifying” and the second one is “systemic”. Both are related to the
fact that this proposed model is foremost a communication tool. I decided to
build a quantified model because this is the best way to communication with
business managers. It does not mean that this model should be used for
forecasting future IT costs, it is by far to simplistic. Using models and
simulation is a great way to communicate with CFOs; they are even more
effective if they rely on simple parameters/KPI such as unit costs that can be
evaluated through benchmarking (cf. the <a href="https://explore.apptio.com/it-cost-optimization/gartner-how-cios-work-with-cfos-to-optimize-cost">Gartner
paper on how CIOs can work with CFOs</a>). To make this communication tool work
for your case requires using your own data, as was said repeatedly.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">The second
benefit of working with a model is the benefit of simulation, which is a free
benefit once you have built your own spreadsheet. Being able to play “what if”
scenarios is critical to help your stakeholders understand the systemic nature
of the IT costs:<o:p></o:p></span></span></div>
<div class="MsoNormal">
</div>
<ul style="text-align: left;">
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;"><u>Delays</u>:
good decisions may have long delays before showing their positive consequences</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;"><u>Accumulation</u>:
this is the main difficulty of managing information systems, once the cost problems
are visible, they are much harder to solve.</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;"><u>Amplification
</u>(reinforcement): bad decisions produce waste that adds to the complexity and
the overall weight, producing further problems along the way.</span></li>
</ul>
<br />
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">Although the topic is very different
from the topics that I have covered using <a href="https://informationsystemsbiology.blogspot.com/2013/05/systemic-simulation-of-smart-grids-s3g.html">GTES</a>
(Game Theoretical Evolutionary Simulation), one can find the same pattern : a
simple model is used to create simulations that are organized into a <a href="https://organisationarchitecture.blogspot.com/2014/01/jeux-serieux-et-exercices-ludiques.html">serious
game</a> from which systemic insights may be gained. As was stated earlier, the goal here
is not to define the “best IT asset management strategy” using a crude model,
but to gain a systemic understanding why long-term complexity-constrained asset
management policies must be implemented.<o:p></o:p></span></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; mso-add-space: auto;">
<br /></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; mso-add-space: auto;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Verdana, sans-serif;">Here are the conclusions that I can
draw from playing with this generic model (more detailed conclusions would
require working a on a specific instance):<o:p></o:p></span></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 0cm; mso-add-space: auto;">
</div>
<ol style="text-align: left;">
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Keep
the age of your software assets under control</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Keep
the scope as small as possible (but not smaller, <a href="https://quoteinvestigator.com/2011/05/13/einstein-simple/">to paraphrase
Einstein</a>)</span></li>
<li><span style="font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span><b style="font-family: Verdana, sans-serif; text-indent: -18pt;"><span lang="EN-US">Constantly refactor your information
systems, at different scales</span></b><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">.</span></li>
</ol>
<br />
<div class="MsoListParagraphCxSpLast" style="margin-left: 0cm; mso-add-space: auto;">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<br /></div>
Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com1tag:blogger.com,1999:blog-438942112364524044.post-21870264454301194262018-04-30T08:29:00.000-07:002018-05-19T22:58:08.775-07:00Artificial Intelligence Applications Ecosystem : How To Grow Reinforcing Loops ?<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: left;">
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">1.
Introduction</span></span></b></h2>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii9mADtlbzgl_2oFiw9Qnl70db4mSp1Y9TErx5_tBbx1jHKhlnd4er9zx6FGmvzmRc-Ma89s3eEe-9-fU9Pql_IfljkjG1fMciMJH8GeDkxQ58DLUWm8xCAfUpx4tZ9xsHbSndXo_PepQ/s1600/ADTIAetApprentissage2018.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1200" data-original-width="824" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii9mADtlbzgl_2oFiw9Qnl70db4mSp1Y9TErx5_tBbx1jHKhlnd4er9zx6FGmvzmRc-Ma89s3eEe-9-fU9Pql_IfljkjG1fMciMJH8GeDkxQ58DLUWm8xCAfUpx4tZ9xsHbSndXo_PepQ/s320/ADTIAetApprentissage2018.jpg" width="219" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">Earlier
this month the National Academy of Technologies of France (<a href="https://www.academie-technologies.fr/en/">NATF</a>) issued its report on <a href="http://academie-technologies-prod.s3.amazonaws.com/2018/04/06/13/49/30/183/Rapport_IA_DEF.pdf">the
renewal of artificial intelligence and machine learning</a>. This report is the
work of the ICT (Information and Communication Technology) commission and may
be seen as the follow-up of <a href="http://informationsystemsbiology.blogspot.fr/2014/10/big-data-hides-more-than-one-paradigm.html">its
previous report on Big Data</a>. The<span style="mso-spacerun: yes;">
</span>relatively short 100 pages document that was released builds on previous
reports such as <a href="https://www.economie.gouv.fr/files/files/PDF/2017/Rapport_synthese_France_IA_.pdf">France
IA report</a> or the <a href="https://obamawhitehouse.archives.gov/blog/2016/12/20/artificial-intelligence-automation-and-economy">White
House reports</a>. It is the result of approximately 20 in-depth interviews (2
hours) with various experts from academy, software providers, startups and
industry. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">AI is a
transforming technology that <a href="https://www.techemergence.com/everyday-examples-of-ai/">will find its way
into most human activities.</a> When writing this report, we tried to avoid
what had been previously well covered in the earlier reports – which are
summarized on pages 40-45 – and to focus on three questions:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li style="text-align: justify;"><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">What
is Artificial Intelligence today?, from a practical perspective – from an AI
user perspective. Although the “renewal” of interest in AI is clearly the
consequence of the extraordinary progress of deep learning, there is more to AI
than neural nets. There is also more to AI than the combination of symbolic and
connectionism.</span></li>
<li style="text-align: justify;"><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">What
recommendations could be made to companies who are urged everyday by news
article to jump onto the “AI opportunity” – very often with too much hype about
what is feasible today ? Many startups that we interviewed feared that the
amount of hype would create disillusion (“<i>we bring a breakthrough, but they
expect magic</i>”).</span></li>
<li style="text-align: justify;"><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">What
could be proposed to public stakeholders to promote the French Artificial
Intelligence Ecosystem, in the spirit of <a href="https://www.wired.com/story/emmanuel-macron-talks-to-wired-about-frances-ai-strategy/">Emmanuel
Macron’s discourse</a>. Because of the diverse background of the NATF members,
and because of our focus on technology, software and industrial applications,
we have a large perspective of the AI ecosystem.</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">We never
start to write a report without asking ourselves why yet another report would
be needed. In the field of AI, Machine Learning or Big Data, more reports </span></span><span style="font-family: verdana, sans-serif;">have been written </span><span style="font-family: verdana, sans-serif;">than a bookcase </span><span style="font-family: verdana, sans-serif;">would hold</span><span style="font-family: verdana, sans-serif;">. Our “innovation thesis” – what
distinguishes our voice from others – can be roughly sumarized as follows:</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li style="text-align: justify;"><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">The
relative lag that we seen in France compared to other countries such as the USA
when looking at AI applications is a demand problem, not a supply problem.
France has enough scientists, startups and available software to surf the wave
of AI and machine learning and leverage the powerful opportunities that have
arisen from the spectacular progress in science, technology and practice since
2010.</span></li>
<li style="text-align: justify;"><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Most
successful applications of Artificial Intelligence and Machine Learning are
designed as continuous learning and adaptive processes. Most often, success
emerges from the continuous improvement that is fed by the iterative collection
of feedback data. The “waterfall” cascade “business question ->
specification of smart algorithm -> implementation -> execution” is
something of the past century.</span></li>
<li style="text-align: justify;"><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">There
is no successful AI application without software mastery. This is actually a
consequence of the previous point as this blog post will make abundantly clear.</span></li>
<li style="text-align: justify;"><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Similarly,
AI success is most often drawn from future data more than past data. Too much
emphasis has been put on “existing data as gold” while existing data in most
company is often too sparse, to heterogenous, without the relevant meta-data
(annotations). Data collection is a continuous active process, not something
that is not once, to ensure that insights derived from AI are both relevant to
the current world and constantly challenged by feedback.</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">This blog
post is both intended as a short summary for English-speaking readers and a
teaser for those who should read the full report. It is organized as follows.
Part 2 describes the “tool box” of available AI techniques and attempts to give
a sense of which are better suited to which types of problems. This part
represents a large share of the full report, since we found after a few
interviews that it was truly necessary to show what AI is from a practical
viewpoint. Most existing successful industrial applications of AI today are not
deep neural nets … while at the same time getting ready to leverage this “new”
technology through massive data collection is urgently necessary. Part 3
details a few recommendations for companies who want to embark into their “AI
journey”. From collecting the right amount of data, securing a large amount of
computing power, ensuring a modern and open software environment to running
teams in a “data science lab” mode, these recommendations are focused of favoring
the “emergence” of AI success, rather than a top-down, failure-proof approach. The
last part takes a larger perspective at the AI ecosystem and makes some
suggestion about improving the health of our French AI applications. This last
part is a follow-up to a number of brilliant posts about the “<a href="https://www.aiforhumanity.fr/en/">Villani report on AI</a>” and the lack
of systemic vision, such as <a href="http://www.oezratty.net/wordpress/2018/rapport-villani/">Olivier Ezratty
detailed and excellent review</a>, <a href="https://www.contrepoints.org/2018/04/04/313270-intelligence-artificielle-et-ethique-le-contresens-navrant-de-cedric-villani">Philippe
Silberzhan criticism on the French obsession with “plans”</a> and <a href="https://www.ft.com/content/99160c5a-3827-11e8-b161-65936015ebc3">Nicolas
Collin superb article about innovation ecosystems</a>.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">2. Taking
a wide look at AI and ML</span></span></b></h2>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">The
following picture is borrowed from the report (page 52) and tries to separate
five categories of <span style="mso-spacerun: yes;"> </span>AI & ML
techniques, sorted along two axes which represent two questions about the
problem at hand:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;"><i>Is
the question narrowly and precisely defined – such as recognition of a pattern
in a situation - or is it more
open-ended ?</i></span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;"><i>Do
we have lots of data available to illustrate the question – and to train the
machine learning algorithm – or not ?</i></span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">Sorting the
different kinds of AI techniques along these two axes is an obvious
simplification, but it helps to start. It also acts as a reminder that there is
more than one kind of AI ... and that the benefits of Moore’s Law apply
everywhere.<o:p></o:p></span></span></div>
<div class="MsoNormal">
</div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;"></span><br />
<div style="text-align: justify;">
<br />
<div class="separator" style="clear: both; text-align: center;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh7FPRdjYJ-fX8Wl8FVTgFJdjNb1tTegCMUv2msO-bHUBdeA0IuXDar-PwJDHzzkjsYRFDbZNXhVmUeNd1mfPJewcG2Ko0BxVPcX3N6-m-ErZCm2ZBu3KE30TKlHwCmFGOE5KlOig8oZU/s1600/AIBlogFigure1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="960" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh7FPRdjYJ-fX8Wl8FVTgFJdjNb1tTegCMUv2msO-bHUBdeA0IuXDar-PwJDHzzkjsYRFDbZNXhVmUeNd1mfPJewcG2Ko0BxVPcX3N6-m-ErZCm2ZBu3KE30TKlHwCmFGOE5KlOig8oZU/s640/AIBlogFigure1.jpg" width="640" /></a></span></span></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">
</span></span></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;">
</span><br />
<div class="MsoNormal">
</div>
<div style="height: 0px;">
</div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<span style="font-family: "verdana" , sans-serif;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<span style="font-family: "verdana" , sans-serif;">
</span>
<br />
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">Let us walk
quickly through each five categories:</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">The
“<a href="https://en.wikipedia.org/wiki/Repast_(modeling_toolkit">agent</a> /
simulation” category contains methods that exploits the available massive
computational power to run simulation of smart agents to explore complex
problems. Sophisticated interaction issues may be explored through the
framework of <a href="https://en.wikipedia.org/wiki/Evolutionary_game_theory">evolutionary
game theory</a> (for instance, GTES : <a href="https://www.rairo-ro.org/articles/ro/abs/2009/04/ro0936/ro0936.html">Game-Theoretical
Evolutionary Simulation</a>). There exists a very large variety of approaches,
which are well suited to the exploration of open questions and complex systems.
<a href="https://cosmotech.com/">COSMOTECH</a> is a great illustration of this
approach.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">The
“semantic category” is well illustrated by IBM Watson, although Watson is a
hybrid AI system that leverages many techniques. The use of semantic networks,
ontologies and knowledge management techniques has allowed “robot writers” to
become slowly by surely better at their crafts, as illustrated by their use in
few news articles. These techniques are well suited to explore very large
amount of data with an open-ended question, such as “please, make me a
summary”.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">The
middle category, which applicability spans over a large score, is made of
“classical” machine learning and data mining algorithms, which are used today
in most industrial applications (from predictive maintenance to fraud
detection). This category is in itself a “toolbox” with many techniques that
ranges from unsupervised clustering (very useful for exploration) to specific
pattern recognition. Getting the best of this toolbox may be obtained through a
“meta AI” that helps to select and parameterize the best algorithm or
combination thereof. Einstein from Salesforce or TellMePlus are great
illustration of these advanced “meta” AI techniques.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">The
fourth category is a combination of GOFAI (Good Old-Fashion AI), Rule-Based
Systems, Constraint and generic problem solvers, theorem provers and techniques
from Operations Research and Natural Language Processing. Here also, the
toolbox is very large; putting these techniques into an AI landscape usually
irritate scientists from neighboring domains, but the truth is that the
frontiers are very porous. The interest of these approach is that they do not
require a lots of training data, as long as the question is well defined.
Although “expert system” sounds obsolete, many configuration and industrial
monitoring systems are based on rules and symbolic logic.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">The
fifth category is deep learning, that is the use of neural nets with many
layers to solve recognition problems. Deep neural nets are extremely good at
complex pattern recognition problems such as speech recognition or <a href="https://www.ted.com/talks/fei_fei_li_how_we_re_teaching_computers_to_understand_pictures?language=fr">machine
vision</a>. On the other had they require massive amount of qualified data to
train. DNN are the <i>de facto</i> standard
method today for perception problems, but their applicability is much larger
(portfolio management, geology analysis, predictive maintenance, …) when the
question is clear, and the data is available.</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">This is a somewhat
naïve classification but is allows for a complete “bird view”. A more
up-to-date, such as PWC list of <a href="http://usblogs.pwc.com/emerging-technology/wp-content/uploads/2017/12/Top-10-AI-trends-for-2018_PwC.pdf?utm_content=buffera3906&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer">Top
10 AI technology Trends for 2018</a>, is necessary to better understand where
the focus is today, but is usually more narrow and misses the contribution of
other fields. A short description of deep neural nets (DNN) and convolution
neural nets (<a href="https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/">CNN</a>)
is proposed in our report, but this is a fast moving field and recent online
articles such as “<a href="https://medium.freecodecamp.org/understanding-capsule-networks-ais-alluring-new-architecture-bdb228173ddc">Understanding
Capsule networks</a>” have an edge on written reports. There are still many
open issues, that are recalled in the report, such as <a href="https://www.darpa.mil/program/explainable-artificial-intelligence">explicability</a>
(mostly for deep learning – which is one of the reason the other techniques are
often preferred), the robustness of the trained algorithm outside its training
set, the lack of “common sense” (a strength of human intelligence versus the
machine) and the ability to learn from small data sets. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">Even if
deep neural nets may not deserve to be called a “revolution” considering that
they have been around for a while, the spectacular progress seen since 2010 is
a definitely a game changer. From AlphaGo and machine vision to automatic <a href="http://news.stanford.edu/2016/08/24/stanford-study-speech-recognition-faster-texting/">speech
recognition</a>, the reports recalls a few of the dramatic improvement that the
combination of massive computing power, very large annotated data sets and
algorithmic improvements have produced. This is “almost a revolution” for two
reasons. First, although they require massive amount of training data and a
precise question to work on (of the classification kind), DNN are very broad in
their applicability. With the large availability of libraries such as
TensorFlow, DNN has become a new, general purpose, tool in the tool box that
may be applied to all types of applied business problems. Second, in a “system
of systems” approach, DNN provide “perception” to smart systems, from machine
vision to speech recognition, that may be used as input for other techniques.
This is obviously useful when explainability is required. In a biomimetic way,
DNN provides the low-level cognition methods (the recognition of low level
patterns) while more classical methods ranging from rules to decision trees
propose an explainable diagnosis. Similarly, semantic techniques and DNN for
speech recognition work well together. It is clear that the “revolution” caused
by the progress of DNN is in front of us, especially because machine vision
will become ubiquitous with the combination of cheap cameras and neuromorphic
chipsets.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">The beauty
of AI, and what makes it hard to understand from the outside, is the richness and
complexity of techniques that allow the customization and combination of the
techniques presented in the previous picture. There is an emerging consensus
that the next generation of AI breakthroughs will come from the combination of
various techniques. This is already the case today : many of the extraordinary
systems, such as <a href="https://en.wikipedia.org/wiki/Watson_(computer)">Watson</a>,
<a href="https://deepmind.com/research/alphago/">AlphaGo</a> or <a href="https://www.netexplo.org/en/intelligence/innovation/todai-robot-project">Todai
Robot</a>, use a number of techniques and meta (hybridization) techniques. Here
is a short overview to appreciate the richness of possible hybridization : <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;"><a href="https://en.wikipedia.org/wiki/Reinforcement_learning">Reinforcement
Learning</a> has been around for a long time, it is one of the oldest technique
from AI that is based on a continuous loop of incremental changes directed
through a reward function. <a href="https://en.wikipedia.org/wiki/Libratus">Libratus</a>,
the extraordinary AI poker player is based on the combination of smart
reinforcement learning and non-connectionist machine learning.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;"><a href="https://hackernoon.com/generative-adversarial-networks-a-deep-learning-architecture-4253b6d12347">Randomization</a>
(such as Monte-Carlo approach) and massive agents communities are borrowed from
simulation methods to help explore large search space. They are often combined
with “generation” methods, that are used to randomly explore parameterized sets
of models, to produce additional data sets when not enough data is available,
to explore meta-heuristic parameter sets (the smart “AI factories” such as
<a href="https://www.salesforce.com/blog/2016/09/introducing-salesforce-einstein.html">Einstein </a>or <a href="https://www.tellmeplus.com/#">TellMePlus</a> are examples of such approaches) or to increase the
robustness such as the “<a href="https://hackernoon.com/generative-adversarial-networks-a-deep-learning-architecture-4253b6d12347">Generative
Adversarial Networks</a>” example.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;"><a href="https://hackernoon.com/generative-adversarial-networks-a-deep-learning-architecture-4253b6d12347">Evolutionary
Game Theory</a> brings game theoretical equilibriums such as Nash equilibrium
into the iterative reinforcement loop (searching for the fixed point of what
game theorists call the “best response”). Evolutionary game theory is great for
simulating a smart group of actors that interact with each other (versus a
unique single “smart” system).</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Modular
learning is based on the idea that some low-level behavior may be learned on
one data set and transferred to another learning system. In the world of neural nets, we speak of “<a href="https://machinelearningmastery.com/transfer-learning-for-deep-learning/">transfer
learning</a>”. Modular learning is related of “systems of systems” architecture
which is in itself a complex topic that will deserve a complete blog post. I
refer as an example to the <a href="http://informationsystemsbiology.blogspot.fr/2015/12/event-driven-architecture-and-biomimicry.html">event-driven
architecture proposed in this older post</a>, which also related to biomimicry
( using not only the cortex, but the full cognitive/perception/emotion human
system as an inspiration).</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">What is not covered in the report due to lack
of time, is the “meta-meta level”, which is how the previous list of
meta-techniques can be combined, as they often are in truly advanced systems.
This shows that the first figure is naïve by construction and that practice
really matters. Knowing the list of primitive techniques and algorithms is not
enough to design a “smart” system that delivers value in a robust manner. There
is no surprise there, most of these meta/combination methods have been around
for a long time and used, for instance, in operations research application
development.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><o:p><span style="font-family: "verdana" , sans-serif;"> </span></o:p></span></b></h2>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">3.
Growing Continuous Learning Data Processing Flows</span></span></b></h2>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZUWAkwUDDDhFZ0QTsw8446TMUivE6dhyphenhyphenV7AAsKijuZtieQnVVdb-JX74-GLwM5Ip9KKsl2BR_HdOZ8PqUsxf2T5wwDQ8mD0GY2KQobBd3eY9LXr5hGkNFVwV2tyNbLKMHO7Wq5UkE3js/s1600/MathematicalCorporation.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="600" data-original-width="400" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZUWAkwUDDDhFZ0QTsw8446TMUivE6dhyphenhyphenV7AAsKijuZtieQnVVdb-JX74-GLwM5Ip9KKsl2BR_HdOZ8PqUsxf2T5wwDQ8mD0GY2KQobBd3eY9LXr5hGkNFVwV2tyNbLKMHO7Wq5UkE3js/s320/MathematicalCorporation.jpg" width="213" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><b>The first and main message that the report conveys to aspiring AI
companies is to build their “training data set” strategy</b>. There is nothing
original here, this is the advice that comes from all kinds of experts (see the
report), but there is more to it than it may sound.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal">
</div>
<ul style="text-align: left;">
<li style="text-align: justify;"><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">The foundation of an AI strategy, as well as a digital
strategy, is to collect, understand and distribute the data that is available
to a company. Collecting data into data
lakes require a common shared business data model (data models are the corner
stone of digital transformation, as well as collaborative and smart systems);
collating data into training data sets require meta-data that captures business
know-how as much as possible. I refer the reader to the “<a href="http://organisationarchitecture.blogspot.fr/2018/03/lentreprise-face-la-complexite-de-la.html">Mathematical
Corporation</a>” book that is full of great examples of companies that have
started their AI journey with a data collection strategy.</span></li>
<li style="text-align: justify;"><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Although it is not necessary to start experiment with
deep learning at first (simpler methods often deliver great results and make
for an easier first step in the learning curve), each company should become
ready to leverage the transforming power of deep neural nets, especially in the
machine vision field. As a consequence, one must get ready for collective
massive data sets (millions to billions sample) and start to collect images and
video in an industrial manner.</span></li>
<li style="text-align: justify;"><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">One must think about AI applications as processes that
are built from data, meta-data, algorithms, meta-heuristics and training protocols
in a continuous iterative improvement cycle. For most applications, data needs
to be collected continuously, both to get fresh data that reflects the present
environment (versus the pas) and to gather feedback data to evaluate the
relevance of the training protocol. Autonomous robots are perfect examples of
this continuous data flow acquisition and processing cycle.</span></li>
<li style="text-align: justify;"><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">The most critical expertise that companies will
develop through time are the annotated data and the training protocols. This is
where most of the business knowledge and expertise – hence the differentiation
- will crystallize. Algorithms will often
be derived semi-automatically from the training sets (cf. the “<a href="http://informationsystemsbiology.blogspot.fr/2014/10/big-data-hides-more-than-one-paradigm.html">data
is the new code</a>” motto from our previous report).</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><b>The second message of the report is that the time to act is now</b>. As
shown from the examples presented in “The Mathematical Corporation” or those
found in our report, the “AI toolbox” of today is already effective to solve a
very large number of business problems and to create new opportunities.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">As stated in the introduction, Artificial Intelligence
is a transforming technology. The journey of collecting, analyzing, and acting
on massive amounts of business data tend to transform business processes and to
produce new business insights and competitive IP.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">AI is a practice, it takes time to grow. The good news
is that AI expertise about your business domain is a differentiating advantage,
the bad news is that it takes time and it is hard to catch up with your
competitors if you get behind (because of the systemic effect of the loop that
will be shown in the next section).</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Computing power plays a critical role with the speed
at which you may learn from data. In the past two years, we have collected a
large evidence set of companies that have accelerated their learning by orders
of magnitude when switching from regular servers to massive specialized
resources such as GPU or <a href="https://cloud.google.com/tpu/docs/tpus">TPU </a>(ASIC).</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Everything that is needed is already there. Most
algorithms are easily available in open-source libraries. Many AI “workbench”
solutions are available that facilitate the automatic selection of learning
algorithms (to Einstein and TellMePlus we could add <a href="https://www.wipro.com/innovation/cognitive-computing/">Holmes</a> or <a href="https://solidware.io/en">Solidware</a>, for instance).</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">The
following picture – <a href="http://organisationarchitecture.blogspot.fr/2017/05/grec-et-chinois-anticipation-et-agilite.html">taken
from a presentation at MEDEF last year</a> -<span style="mso-spacerun: yes;">
</span>illustrates the conditions that need to be developed to be “AI-ready”.
In many companies, the right question is “<i style="mso-bidi-font-style: normal;">what
should we stop doing to prevent our teams from developing AI</i> ?” versus “ <i style="mso-bidi-font-style: normal;">what should we do/add/buy to develop our AI
strategy</i> ?”. This picture acts as “Maslow pyramid” : the foundation is the
understanding that creating value from these approaches is an emergent process,
that requires to “hedge one’s bets” and rely on empowered, distributed and
autonomous <a href="https://www.theguardian.com/technology/2018/apr/24/the-two-pizza-rule-and-the-secret-of-amazons-success">teams</a>.
The second step is, as we just saw, to collect data and to grant access widely,
modulo the privacy and IP constraints. The third step is to give the teams
access with the relevant software environment: as up-to-date as possible,
because algorithmic innovation is coming from the outside in a continuous flow,
and with enough computing power to learn fast. Last these teams need to operate
with a “data lab culture”, which is a combination of freedom and curiosity
(because opportunities may be hidden from first sight) together with <a href="https://www.linkedin.com/pulse/10-things-everyone-should-know-machine-learning-daniel-tunkelang/">scientific
rigor and skepticism</a>. False positives, spurious correlation, non-robust
classifiers … abound in the world of machine learning, especially when not
enough data is available.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcOmUNVmLk8Vlpnzjl1GNugHDJ5VC8JnedxxGkvKH-qKopf5KxJEnUE2iFDVv0g-kSy_M-5Y1AOV_-xpjWODDQNx1ZeIF4vwggM9-UjRndk-PAQQjg2tLGHclTRCUINxyoLXhPYqIwThM/s1600/AIBlogFigure2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="960" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcOmUNVmLk8Vlpnzjl1GNugHDJ5VC8JnedxxGkvKH-qKopf5KxJEnUE2iFDVv0g-kSy_M-5Y1AOV_-xpjWODDQNx1ZeIF4vwggM9-UjRndk-PAQQjg2tLGHclTRCUINxyoLXhPYqIwThM/s640/AIBlogFigure2.jpg" width="640" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p><span style="font-family: "verdana" , sans-serif;"><br /></span></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The third message that the reports addresses to companies is <b>to think of
AI in terms of flows (of enriched data) and (business) processes, not of technologies
or value-added functions</b>.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNGNPAHGxreHp-YsvAFhWULo03urJEckdotrdZmKGaDjmvA_gb33eiEHCuB4dROkaBV6C4Qr0uFP_EWz2Bti_JPo09zPP-UDD9U3EXatNSDLGjUSL0bn2mtZ11EM_Xo-Q5eqiJnv2Zr-o/s1600/MachineLearningQuantifiedSelf.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="230" data-original-width="153" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNGNPAHGxreHp-YsvAFhWULo03urJEckdotrdZmKGaDjmvA_gb33eiEHCuB4dROkaBV6C4Qr0uFP_EWz2Bti_JPo09zPP-UDD9U3EXatNSDLGjUSL0bn2mtZ11EM_Xo-Q5eqiJnv2Zr-o/s1600/MachineLearningQuantifiedSelf.jpg" /></a>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Although this is not a universal pattern, most
advanced AI systems (from Amazon’s or Netflix’s recommendation engines to
Criteo or Google AddSense add placement engines, through Facebook or Twitter
content algorithms) are built through the continuous processing of huge flows
of data as well as the continuous improvements of algorithms with millions of
parameters. Distributed System Engineering and Large Data Flows Engineering are
two critical skill domains to successfully bring AI to your company.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">One must walk before running: there is a learning
curve that applies to many dimensions. For instance, the path to complex
algorithms must be taken step by step. First one play with simple libraries,
then you associate with a local expert (university faculty member, for instance).
Then you graduate to more complex solutions and you organize a Kaggle or local
hackathon to look for fresh ideas. Once you have mastered these steps, you are
in a better position to hire a senior expert at the international level,
provided that your problem is worth it.</span></li>
<li><span style="font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">“Universal AI” is not ready : AI for your specific
domain is something that needs to be grown, not something that can be bought in
a “ready for use” state. Which is why most of the experts that we interviewed
were skeptics about the feasibility of “AI as a service” yet (with the
exception of lower-level components such specific pattern recognition). Today’s
(weak) AI is diversified to achieve the best results. The great “Machine
Learning for Quantified Self” book is a good illustration: none of the
techniques presented in this book are unique to Quantified Self, but the domain
specificity (short time series) means that some classical techniques are better
suited than others.</span></li>
</ul>
<br />
<ul>
<li><span style="font-family: "verdana" , sans-serif;">The numerous examples from the report or “The
Mathematical Corporation” show that data collection must expand beyond the borders
of the company, hence one must think as a “data exchange platform”.<span style="text-indent: -18pt;"> </span><span style="text-indent: -18pt;">This is another reason why software culture
matters in AI : open data systems have their own ecosystems, mindsets and
software culture.</span></span></li>
</ul>
<br />
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">4.
How to Stimulate a Demand-Based Application Ecosystem</span></span></b></h2>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The following figure is taken from the press conference when we
announced the report. It illustrates the concept of “multiple AI ecosystems”
around the iterative process that we have just mentioned. The process is the
backbone of the picture:<span style="mso-spacerun: yes;"> </span>pick an algorithm,
apply it to a data set to develop a “smart” system, deliver value/services from
running this new system, develop its usage and collect the resulting data that
will enrich the current data set (either to continuously enrich the dataset or
to validate/calibrate/improve the precision/value of the current system), hence
the loop qualified as “Iterative development of AI practice”. Each of the five
steps comes with its own challenges, some of which are indicated on the figure
with an attached bubble. Each step may be seen as an ecosystem with its
players, its dominant platforms, its state-of-the-art practices and its
competitive geography.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "verdana" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCf1X4dBAoCQW26NaWFKz8tDoWru9yv9vo1w8UEbNGRLHfWNKp3qL7_1R4LoGaI-aQbbL_JGyPYfQ6A_V0whyjrdcT2fuy_IzdNmjPtENcr-Ylp_puRzBGRISllBR36lfqan0IxbN3mKQ/s1600/AIBlogFigure3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="960" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCf1X4dBAoCQW26NaWFKz8tDoWru9yv9vo1w8UEbNGRLHfWNKp3qL7_1R4LoGaI-aQbbL_JGyPYfQ6A_V0whyjrdcT2fuy_IzdNmjPtENcr-Ylp_puRzBGRISllBR36lfqan0IxbN3mKQ/s640/AIBlogFigure3.jpg" width="640" /></a></span></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">This figure, as well as a number of twin illustrations that may be found
<a href="https://twitter.com/ycaseau">on Twitter</a>, illustrates the competitive
state of the French ecosystem:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">The “upstream” science & algorithms part of the
ecosystem is doing pretty well. French scientists are sought over, their open
source contributions are well spread and recognized, and the French AI startups
are numerous.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">The “system engineering” step is less favorable to
France since most major players are American (with the exception of China with
its closed technology borders). Because of the massive advance of US in the
digital world, practical expertise about large-scale distributed systems is
more common in the US than in France. Trendsetting techniques in system
engineering comes from the US, where they are better appreciated (cf. the
success of Google’s “<a href="https://landing.google.com/sre/book.html">Site Reliability
Engineering</a>” book).</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">The “service ecosystem” reflects the strength of
demand, that is the desire from CEOs and executive committees to leverage
exponential technologies to transform their organization. I am borrowing the
wording from “Exponential Organizations” on purpose: there is a clear
difference in technology-saviness and risk-appetite across the Ocean, as
recalled by most technology suppliers (large and small) that we interviewed.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">The “service usage” ecosystem shows the disadvantage
of Europe with its multiple languages and cultures compared to continent-states
such as US or China. Trust is a major component of the willingness to try new
digital services. We found that France is not really different from other European
countries or even from the US but is lagging behind Asian countries such as South
Korea or China.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Data collection is harder in Europe that elsewhere,
mostly because of stricter regulation and heavier bureaucracy. It is fashionable
to see GDPR as a chance for Europe but we believe that GDPR should be softened
with application rules that support experimentation.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Last, although access to computing technology is
ubiquitous, American companies tend to have a small edge as far as accessing
large amounts of specialized resources is concerned.</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">One could argue with each of these assessments, finding them biased or
harsh, but what matters is the systemic loop structure. To see
where France will be compared to US or China five years from now, one must assess our ability
to run the cycles many, many times for each “AI + X” domain. Hence a small
disadvantage gets amplified many times (which is also why companies that started
earlier and that have accumulated data and practice tend to learn faster than
newcomers).<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Stimulating the bottom-up growth of an emerging ecosystem is not easy,
it is much more difficult than promoting a top-down strategic plan.<span style="mso-spacerun: yes;"> </span>The report makes a few proposals, among which
I would like to emphasize the following four:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Technical literature has been declining because of the
Internet business model change, and this is especially keen for French technical
press which is close to extinct. These communication channels used to play a key
role for small innovative players to establish their credibility with regards
to large corporate customers. Through hackathons, contests and challenges,
technical evaluation, public spending and large-scale flagship projects, etc. public
stakeholders must invest to help small but excellent technical players made
their voices heard.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Stimulating the “pull”, i.e., the demand for AI and
machine learning solution, is itself a difficult task but it is not impossible.
The communication efforts of public stakeholders should focus more on successful
applications as opposed to the fascinating successes of technology providers.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">The NATF proposes to facilitate the setting up of Experimentation
Centers associated to “IA + X” domains, through the creation of critical masses
of data, talents, computing power and practices. An experimentation center
would be a joint effort by different actors from the same business domain – in the
spirit of an IRT – to build a platform where new algorithms could be tested against
existing data sets and vice-versa.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Last, following the recommendation <a href="https://www.economie.gouv.fr/files/files/directions_services/cge/Rapports/2016_05_13_Rapport_Algorithmes(1).pdf">from
the CGEIET report</a>, the NATF strongly supports the certification of data analytics
processes, where the emphasis is on end-to-end certification from collection to
continuous usage and improvement. Au</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">It should be also said that one will find in the NATF report a summary
of obviously relevant recommendations made in previous reports such as training
or better support for research and science. I strongly recommend the <a href="https://www.gov.uk/government/publications/growing-the-artificial-intelligence-industry-in-the-uk">UK
report written by Wendy Hall and Jérôme Pesenti</a> which addresses these topics
very thoroughly. <span style="mso-spacerun: yes;"> </span><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="text-align: left;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">5.
Conclusion</span></span></b></h2>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">The
following is another “ecosystem schema” that I presented at the press
conference earlier this month to position the NATF report with respect to the
large crowd of reports and public figures’ opinions about Artificial
Intelligence. The structure is the same as the previous cycle, but one may see
that major ecosystems players have been spelled out. The short story is that
the upstream ecosystem deserves some attention obviously but the numerous
downstream ecosystems is where the battle should be fought, recognizing that France
is really late for regaining domination in the software platform world.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEYFubiluggsgEKaglWBSiy4-GsL4rLCPQDOmHgik2M5q5sb37dF0z7bRYCyROqXau4zOyr0Ufj11W6CXEcDJHsDvgrSaGkFkvsaXgWzx4hAG4-HhN5-18vnq0oTD5zIALl828Vdbo8mY/s1600/AIBlogFigure4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="960" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEYFubiluggsgEKaglWBSiy4-GsL4rLCPQDOmHgik2M5q5sb37dF0z7bRYCyROqXau4zOyr0Ufj11W6CXEcDJHsDvgrSaGkFkvsaXgWzx4hAG4-HhN5-18vnq0oTD5zIALl828Vdbo8mY/s640/AIBlogFigure4.jpg" width="640" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">To summarize,
here is our contribution to the wonderful speech from the President Emmanuel
Macron about Artificial Intelligence: <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Don’t
pick your battles too strongly in an emergent battlefield, promote and
stimulate the large number of “AI+X” ecosystems. It is hard to guess where France
will be better positioned 5 years from now.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Follow
<a href="http://www.uhpress.hawaii.edu/p-3396-9780824828301.aspx">Francois Julien</a> recommendations on how to effectively promote an emergent ecosystem:
It is about growth (agriculture) more than selection (hunting). What is
required is more stimulation than actions.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Focus
on demand – how to encourage French companies to actively embrace the power of
AI in their business activity – more than supply. Successful medium and large
sizes AI companies will emerge in France if the local market exists.</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="color: black; mso-ansi-language: EN-US; mso-themecolor: text1;"><span style="font-family: "verdana" , sans-serif;">In the same spirit, here is what the report says to
companies: <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Start
collecting, sorting, enriching and thinking hard about your data,</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">“Let
your teams work” from a mindset and a working environment perspective,</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Think
long-term, think “<a href="https://www.forbes.com/sites/ciocentral/2017/06/07/how-ai-and-machine-learning-are-helping-drive-the-ge-digital-transformation/#40c3ef9b1686">platform</a>”
and think about data flows.</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "verdana" , sans-serif;">Let me
conclude with a disclaimer: the content of the report is a group effort that
reflects as faithfully as possible the wisdom shared by the experts who were
interviewed during the past 2 years. This blog summary is tinted by the author’s
own experience with AI during the past 3 decades:</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">1984-1994
: <a href="https://link.springer.com/article/10.1007%2FBF01530926">Rules &
Constraints on top of object-oriented language</a></span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">1993-2003
: <a href="https://arxiv.org/abs/cs/0405092">Program synthesis using
randomization and reinforcement learning</a></span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">2002-2012
: <a href="https://link.springer.com/chapter/10.1007%2F978-3-642-34404-6_2">GTES:
Evolutionary Game Theory</a></span></li>
</ul>
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
</div>
Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com7tag:blogger.com,1999:blog-438942112364524044.post-41877050010364048182017-12-03T11:27:00.002-08:002017-12-03T11:32:15.164-08:00Sustainable Information Systems Development and Technical Debt<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<h2 style="text-align: left;">
<b><span lang="EN-GB"><span style="font-family: "verdana" , sans-serif;">1. Introduction</span></span></b></h2>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-GB"><span style="font-family: "verdana" , sans-serif;">This
short blogpost is a revisit of the concept of <b>sustainable IS development</b> in the digital
age, that is in the age of constant change. Sustainable development for
information systems is how to make choices so that building the capability to
deliver the required services today does not hinder the capacity to deliver a
few years later the services that will be needed then. It is a matter of IS
governance and architecture. Each year money is allocated to building new
systems, updating others, replacing some and removing others. Sustainable
development is about making sure that the ratios between these categories are
sustainable in the long run. It is a business necessity, not a IS decision;
sustainable IS development is a classical short-term versus long-term
arbitrage.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB">The
initial vision of sustainable IS development comes from a financial view of IS.
In the word of constant change, the weight of complexity becomes impossible to
miss. This is why the concept of technical debt has made such a strong
comeback. The “</span><span lang="EN-GB"><a href="https://en.wikipedia.org/wiki/Technical_debt">technical debt</a></span><span lang="EN-GB">”
measures the time and effort necessary to bring back a system to a “standard
state” ready for change or upgrade. <b>In a
world with little change, technical debt may be left </b></span><b><span lang="EN-GB">“</span></b><b><span lang="EN-GB">unclaimed</span></b><b><span lang="EN-GB">”</span></b><b><span lang="EN-GB">,
but the intensification of change makes the debt more visible</span></b><span lang="EN-GB">. The
“debt” metaphor carries the ideas of interests that accumulate over time: the
cost and effort of cleaning the debt increases as the initial skills that
created the system are forgotten, as the aging underlying technologies become
more expensive to maintain and as the growing complexity makes additional
integration longer; more difficult, and more expensive.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-GB">From
a practical point of view, complexity is the marginal cost of integration</span></b><span lang="EN-GB">.
Complexity is what happens inside the information systems, but the most direct
consequence is the impact on the cost when one needs to change or to extend the
system. If you are a startup or if you begin a new isolated system, there is no
such complexity charge. On the other hand, the cost of change for legacy system
is multiplied by the weight of integration complexity. Complexity may be
measured as the ration of the total effort of building and integrating a new
function into an information system divided by the cost of developing this new
function itself.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-GB"><span style="font-family: "verdana" , sans-serif;">A
dynamic view of sustainable IS development, therefore, needs to take complexity
into account. Sustainable development needs to keep the potential for
innovation intact for the next generations (in the software sense, from months
to years). Complexity and change do not invalidate the previous financial analysis
of sustainable development based on refresh rate and obsolescence cost, they
make it more pregnant because the financial impact of technical debt grows as
the change rate grows. Other said, a static sustainable development model sees
change as a necessity to reduce costs whereas a dynamic model sees the
reduction of complexity as a necessity to adapt to external change.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB">The
post is organized as follows. The next section recalls some of the key ideas of
“Sustainable Information System Development”. SD initial framework is drawn
from a model of IT costs that looks at the cumulative effects of system aging.
The purpose of SD is to derive governance rules to keep the budget allocation
stable in the future and balanced between the maintenance of the current system
and the need to adapt to new business requirements. Section 3 provides a short
introduction to the concept of technical debt. “Technical debt” measures the
effort to return to a “ready for change” state and if often measured with
days/months. Time is a very practical unit but it does not make it easier to
master technical debt, especially when complexity is involved. Section 4 adds
the concept of complexity to the sustainable IS model. Cleaning technical debt
is both defined as returning to a “standard” – often defined by rules and best practices
– and reducing integration complexity. There is no such thing as a standard
here, this is the essence of IS architecture to define a modular target </span><span lang="EN-GB"><a href="https://fr.slideshare.net/ycaseau1/cours-chapitre4-2012">that
minimizes integration complexity</a></span><span lang="EN-GB">.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<h2 style="text-align: left;">
<b><span style="font-family: "verdana" , sans-serif;">2. Sustainable IS Development</span></b></h2>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB"><a href="http://ceur-ws.org/Vol-344/paper15.pdf">Sustainable IS Development</a></span><span lang="EN-GB"> is a
metaphor that borrows from the now universal concept of « sustainable
development »:</span></span></div>
<div class="MsoNormal" style="text-align: left;">
</div>
<br />
<ul style="text-align: left;">
<li><span style="font-family: "verdana" , sans-serif;">Th<span style="text-indent: -18pt;"><span lang="EN-GB" style="background: white; color: #231f20; text-indent: -18pt;">e following definition was
proposed by the </span><span lang="EN-GB" style="text-indent: -18pt;"><a href="http://www.iisd.org/topic/sustainable-development"><span style="background: white; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Bruntland commission</span></a></span><span lang="EN-GB" style="background: white; color: #231f20; text-indent: -18pt;">:
"<i>Sustainable development is
development that meets the needs of the present without compromising the
ability of future generations to meet their own needs</i>.</span></span></span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: "verdana" , sans-serif; text-indent: -18pt;">This is a great pattern to define
sustainable development for information systems: “</span><i style="color: #231f20; font-family: Verdana, sans-serif; text-indent: -18pt;">Sustainable IS development is how to build an information system that
delivers the services that are required by the business today without
compromising the ability of meet in a few years the needs of future business
managers</i><span style="background-color: white; color: #231f20; font-family: "verdana" , sans-serif; text-indent: -18pt;">.”</span></li>
</ul>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjafY2xqDhSz2QEjBI1GRHsBOmCjY30O_zpyuMnwzVRDK3gm7yD9vh25MDz1cFMQvOvC5uJ5YeM7S_aLfeNx6Aun93yT5Uqk2FYIvtIcUppEUCIQaEuzb3KPQVkI6456k8jYyxx-_luOro/s1600/SustainableITArchitecture.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="455" data-original-width="300" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjafY2xqDhSz2QEjBI1GRHsBOmCjY30O_zpyuMnwzVRDK3gm7yD9vh25MDz1cFMQvOvC5uJ5YeM7S_aLfeNx6Aun93yT5Uqk2FYIvtIcUppEUCIQaEuzb3KPQVkI6456k8jYyxx-_luOro/s320/SustainableITArchitecture.jpg" width="210" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB">This
definition may be interpreted at the budgeting level, which makes it a
governance framework. This is the basis of what I did 10 years ago – cf. </span><span lang="EN-GB"><a href="https://www.amazon.com/Information-Technology-Chief-Executive-Organization/dp/1438911114/ref=sr_1_1?ie=UTF8&s=books&qid=1227960896&sr=8-1">this
book</a></span><span lang="EN-GB"> or the course about Information Systems </span><span lang="EN-GB"><a href="https://fr.slideshare.net/ycaseau1/cours-chapitre5-2012">that I
gave at Polytechnique</a></span><span lang="EN-GB">. It may also be
interpreted </span><span lang="EN-GB"><a href="http://informationsystemsbiology.blogspot.fr/2007/10/sustainable-enterprise-architecture.html">at the
architecture level</a></span><span lang="EN-GB">, as shown in the book “</span><span lang="EN-GB"><a href="http://onlinelibrary.wiley.com/book/10.1002/9780470611746">Sustainable
IT Architecture: The Progressive Way of Overhauling Information Systems with
SOA</a></span><span lang="EN-GB">” by Pierre Bonnet, Jean-Michel Detavernier, Dominique
Vauquier, Jérôme Boyer and Erik Steinholtz. </span><span lang="EN-GB"><a href="http://informationsystemsbiology.blogspot.fr/2009/06/sustainable-it-budget-in-equation.html">In a
previous post almost 10 years ago</a></span><span lang="EN-GB">, I
proposed a simple IS cost model to derive sustainable IS development as an
equation (ISSD). I will not follow that route today, but here is a short
summary of the three most important consequences of this model.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB">ISSD
model is based on a simple view of IS, seen as a collection of software assets
with their lifecycles and operation costs (in </span><span lang="EN-GB"><a href="http://informationsystemsbiology.blogspot.fr/2009/04/selected-bibliography.html">the
tradition of Keen</a></span><span lang="EN-GB">). Governance is defined as an arbitrage between:</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; text-indent: -18pt;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Adding new components to the
system, which is the easiest way to add new functions modulo the complexity of
integration.</span></li>
<li><span style="font-family: "verdana" , sans-serif;"><span style="font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-GB" style="text-indent: -18pt;">Maintaining and upgrading
existing components.</span></span></li>
<li><span style="font-family: "verdana" , sans-serif;">Replacing components with newer
versions</span></li>
<li><span style="font-family: "verdana" , sans-serif;"><span style="font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-GB" style="text-indent: -18pt;">Removing components – the term
“applicative euthanasia” may be used to emphasize that old legacy applications
are never “dead”.</span></span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-GB"><span style="font-family: "verdana" , sans-serif;">ISSD
model is a set of equations derived from the cost model that express that the
allocation ratio between these four remains stable. The main goal (hence the
name “sustainable”) is to avoid that consuming too much money today on
“additions” will result in the impossibility to evolve the information system
tomorrow. This simple sustainability model (ISSD) shows that the ability to
innovate (grow the functional scope) depends on the ability to lower the run
cost at “iso-scope”, which requires constant refreshing.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB">At the
core of the SD model is the fact that </span><span lang="EN-GB"><a href="https://www.dunod.com/sciences-techniques/si-demystifie-neuf-scenes-vie-quotidienne-d-un-dsi">old
systems become expensive to run</a></span><span lang="EN-GB">. This
has been proven in many ways:</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif; text-indent: -18pt;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Maintenance & licence fees
grow as systems gets older, because of the cumulative effect of technical debt
from the software provider side, and because at some points there are fewer
customers to share the maintenance cost.</span></li>
<li><span lang="EN-GB" style="text-indent: -18pt;"><span style="font-family: "verdana" , sans-serif;">Older systems start to get more
expensive after a while, when their reliability declines. There is a famous
“bathtub” curve that shows the cost of operations as a function of age, and
while maturation helps at first (reducing bugs), there is an opposite aging
factor at work.</span></span></li>
<li><span style="font-family: "verdana" , sans-serif;">The relative cost of operations
grows (compared to newer system) because legacy technology and architecture
does not benefit from the constant flow of improvement, especially as far as
automation and monitoring is concerned. Think of this as the cost of missed
opportunity to leverage good trends.</span></li>
</ul>
<br />
<div class="MsoListParagraphCxSpLast" style="margin-left: 0cm; mso-add-space: auto; text-align: justify;">
<span lang="EN-GB"><span style="font-family: "verdana" , sans-serif;">The good practice from the ISSD model is <b>to keep the refresh rate (which is the
inverse of the average application age) high enough to benefits from HW/SW
productivity gains to accommodate for the necessary scope increase</b>.
Remember that “<a href="https://a16z.com/2016/08/20/why-software-is-eating-the-world/">software
is eating the world</a>”, hence the sustainable vision of IS is not one of a
stable functional scope. Sustainability must be designed for growth.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-GB"><span style="font-family: "verdana" , sans-serif;">The
average age of your apps has a direct impact on the build/run ratio. This is a
less immediate consequence of the ISSD model, but it says that you cannot hope
to change the B/R ratio without changing the age of your apps, hence without the
proper governance (whatever the technology vendor will tell you about their
solution to improve this ratio). This is another of stating what was said in
the introduction: <b>Sustainable IS
development is a business goal and it is a matter of business governance</b>.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<h2 style="text-align: left;">
<b><span lang="EN-GB"><span style="font-family: "verdana" , sans-serif;">3. Technical Debt</span></span></b></h2>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB"><a href="https://martinfowler.com/bliki/TechnicalDebt.html">The
concept of technical debt</a></span><span lang="EN-GB"> is attributed to </span><span lang="EN-GB"><a href="https://fr.wikipedia.org/wiki/Ward_Cunningham">Ward
Cunningham</a></span><span lang="EN-GB"> even though earlier references to similar ideas are easy to
point out. A debt is something that you carry around, with the option to pay it
off which requires money (effort) or to pay interest until you can finally pay
off. Similarly, the mediocre software architecture that results either from too
many iterative cycles or shortcuts often labelled as “quick and dirty” is a
weight that you can either decide to carry (pay the interest: accept to spend
more effort and money to maintain the system alive) or pay off (spend the time
and effort to “<a href="https://en.wikipedia.org/wiki/Code_refactoring">refactor</a>”
to code to a better state). For a great introduction to the concept of
technical debt, I suggest reading “</span><span lang="EN-GB"><a href="https://www.agilealliance.org/introduction-to-the-technical-debt-concept/">Introduction
to the Technical Debt Concern</a></span><span lang="EN-GB">” by
Jean-Louis Letouzey and Declan Whelan.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-GB">The
key insight about technical debt is that it is expressed against the need for
change</span></b><span lang="EN-GB">. I borrow here a quote from Ward Cunningham: “<i>We can say that the code is of high quality
when productivity remains high in the presence of change in team and goals</i>.”
The debt is measured against an idea standard of software development: “<i>When taking short cuts and delivering code
that is not quite right for the programming task of the moment, a development
team incurs Technical Debt. This debt decreases productivity. This loss of
productivity is the interest of the Technical Debt</i>”. The most common way is
to measure TD with time, the time it would take to bring the piece of
code/software to the “standards of the day” for adding or integrating new
features.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB">The
concept of “interest” associated with Technical Debt is all but theoretical. <b>There is a true cost to keep the technical
debt in your code</b>. Although TD is subjective by nature (it measures an
existing system versus a theoretical state) most of the divergences that
qualify as “technical debt” have a well-documented cost associated to them. You
may get a first view about this by reading Samuel Mullen’s paper “</span><span lang="EN-GB"><a href="http://samuelmullen.com/articles/the-high-cost-of-technical-debt/">The
High Cost of Technical Debt</a></span><span lang="EN-GB">”. Among many factors,
Samuel Mullens refers to maintenance costs, support costs or labor costs. One
would find similar results in any of the older cost models form the 80s such as
<a href="https://fr.wikipedia.org/wiki/Constructive_Cost_Model">COCOMO II</a>.
Another interesting reference is “</span><span lang="EN-GB"><a href="https://www.researchgate.net/publication/261464425_Estimating_the_size_cost_and_types_of_Technical_Debt">Estimating
the size, cost, and types of Technical Debt</a></span><span lang="EN-GB">” by
Bill Curtis, Jay Sappidi and Alexandra Szynkarski. This CAST study focus on 5 “health
factors” (that define the “desired standard”) with the following associated
weights:</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="text-indent: -18pt;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Robustness (18%)</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Efficiency (5%)</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Security (7%)</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Transferability (40%)</span></li>
<li><span style="font-family: "verdana" , sans-serif;"><span style="font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-GB" style="text-indent: -18pt;">Changeability (30%)</span></span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB">Here,
TD is the cost to return to standards in these 5 dimensions and the weight is
the average contribution of each dimension to this debt. Some other articles
point out different costs that are linked with technical debt such as </span><span lang="EN-GB"><a href="https://www.farreachinc.com/blog/far-reach/2017/10/05/the-true-cost-of-technical-debt">the
increased risk</a></span><span lang="EN-GB"> of failure and the higher rate of errors when the system
evolves.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB">Complexity
is another form of waste that accumulates as time passes and that contributes
to the technical debt. This was expressed a long time ago by Meir Lehman (a
quote from the CAST paper): “<i>as a systems
evolves, its complexity increases unless works is done to maintain or reduce it</i>”.
Complexity-driven debt technical is tricky because the “ideal state” that could
be used as a standard is difficult to define. However, there is no doubt that
iterative (one short step at a time) and reactive (each step as a reaction to
the environment) tend to produce un-necessary complexity over time. Agile and
modern software development methods have replaced architecture “targets” by a
set of “patterns” because the targets tend to move constantly, but this makes
it more likely to accumulate technical debt while chasing a moving target. Agile development is by essence an iterative
approach that creates complexity and requires </span><span lang="EN-GB"><a href="https://fr.slideshare.net/ycaseau1/xebico-npublic-nov2015">constant
care of the technical debt through refactoring</a></span><span lang="EN-GB">. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<h2 style="text-align: left;">
<b><span lang="EN-GB"><span style="font-family: "verdana" , sans-serif;">4. The Inertia of Complexity</span></span></b></h2>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrkintC3rLJs9n40SiDlisrGxJerj58_LxxOQH0TVHb2UH1dToHbCfu638ULMh0X-l3OxF5sQm7XjluzHEZ7uRPEKYwcPPcncYIUeYJBqqxcV5wkR45liAm-h0wZDJ3VQTWFjnRekXkNE/s1600/ComplexityGuidedTour.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="600" data-original-width="600" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrkintC3rLJs9n40SiDlisrGxJerj58_LxxOQH0TVHb2UH1dToHbCfu638ULMh0X-l3OxF5sQm7XjluzHEZ7uRPEKYwcPPcncYIUeYJBqqxcV5wkR45liAm-h0wZDJ3VQTWFjnRekXkNE/s320/ComplexityGuidedTour.jpg" width="320" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB">In the
introduction, I proposed to look at complexity as the marginal cost of
integration because it is a clear way to characterize the technical debt
produced by complexity. Let us illustrate this through a fictional example. We
have a typical company, and this is the time of the year when the “roadmap” and
workload (for the next months) has been arbitrated and organized (irrespectively
of an agile or waterfall model, this situation occurs anyway). Here comes a new
“high priority” project. As the IS manager you would either like to make
substitutions in the roadmap or let backlog priority works its magic, but your
main stakeholders ask, “let’s keep this simple, how much money do you need to
simply do this “on top” of everything else ?”. We all know that this is
everything but simple: depending from the complexity debt, the cost may vary
from one to 10, or it may simply be impossible. We are back to this
“integration cost ratio” (or overweight) that may be close to 1 for new
projects and young organizations while getting extremely high for legacy
systems. Moreover, adding money does not solve all the issues since the skills
needed for the legacy integration may be (very) scarce, or the update roadmap
of these legacy components may be dangerously close to saturation (the absence
of modularity, which is a common signature of legacy systems, may make the
analysis of “impact” – how to integrate a new feature – a project much more
difficult than the development itself). This paradox is explained with more
details in my </span><span lang="EN-GB"><a href="https://www.amazon.fr/Information-Technology-Chief-Executive-Organization/dp/1438911114">second
book</a></span><span lang="EN-GB">.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB">A
great tool to model IS complexity is </span><span lang="EN-GB"><a href="http://informationsystemsbiology.blogspot.fr/2010/01/taming-information-systems-complexity.html">Euclidian
Scalar Complexity</a></span><span lang="EN-GB">, because of its scale invariance. Scalar complexity works
well to represent both the topology of the integration architecture and the
de-coupling positive effects of API and service abstraction. Whereas a simple
model for scalar complexity only looks at components and flows, an
service-abstraction model adds the concept of API, or encapsulation, smaller
nodes between components that represent what is exposed by one components to
others. The scalar complexity of an information system represents an
“interaction potential” (a static maximal measure), but it is straightforward
to derive a dynamic formula if we may make some assumption about the typical
refresh rate of each components.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-GB"><span style="font-family: "verdana" , sans-serif;">This
model of the expected cost of “refreshing” the information system is useful
because, indeed, there is a constant flow of change. One of the most common
excuse for keeping legacy systems alive is a myopic vision of their operation
costs, which are often low compared to renewal costs. <b>The
better reason for getting rid of this technical debt is the integration
complexity that the presence of these legacy components adds to the system</b>.
However, this requires exhibiting a simple-yet-convincing cost model that
transforms this extra complexity into additional costs. Therefore, I be back in
another post with this idea of scalar complexity modelling of integration
costs. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB">Meanwhile,
the advice that can be given to properly manage this form of technical debt is
to be aware of the complexity through careful inventory and mapping; then to
strive for a modular architecture (there is a form of circularity here, since
modularity is defined as way to contain the adverse effects of change – cf. </span><span lang="EN-GB"><a href="https://fr.slideshare.net/ycaseau1/cours-chapitre4-2012">the
lecture that I gave at Polytechnique</a></span><span lang="EN-GB"> on
this topic). Defining a modular information system is too large a topic for one
blog post, although defining a common and share business data model, extracting
the business process logic from the applications, crafting a service-oriented
architecture through API, developing autonomous <a href="https://en.wikipedia.org/wiki/Microservices">micro-services</a> are some
of the techniques that come to mind (as one may find in <a href="https://www.amazon.fr/dp/B005OQB54U/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1">my
first book</a>).<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB">A much
more recent suggested reading is the article “</span><span lang="EN-GB"><a href="https://hackernoon.com/managing-technical-debt-1806424e7d40">Managing
Technical Debt</a></span><span lang="EN-GB">” by Carl Tashian. This is a great article about how to
reduce the complexity-driven technical debt. Here are the key suggestions that
he makes:</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<u style="font-family: Verdana, sans-serif; text-indent: -18pt;"><span lang="EN-GB"><br /></span></u></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><u style="font-family: Verdana, sans-serif; text-indent: -18pt;"><span lang="EN-GB">Keep points of flexibility</span></u><span lang="EN-GB" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">. This is at the heart of a good service-oriented architecture and a
foundation for microservices. However, as Tashian rightly points out,
microservices are not enough.</span></li>
<li><span style="font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span><u style="font-family: Verdana, sans-serif; text-indent: -18pt;"><span lang="EN-GB">Refactor for velocity</span></u><span lang="EN-GB" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">. Take this two ways: refactor to make your next project easier to
develop, but also to constantly improve This is a great insight: when
refactoring, you have the insight of
performance monitoring your existing system. It is easier to improve
performance while re-factoring than in a crisis mode when the run-time problem
has occurred.</span></li>
<li><u style="font-family: Verdana, sans-serif; text-indent: -18pt;"><span lang="EN-GB">Keep dependencies to the
minimum</span></u><span lang="EN-GB" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">. Here we see once again the constant search
for modularity.</span></li>
<li><u style="font-family: Verdana, sans-serif; text-indent: -18pt;"><span lang="EN-GB">Prune the low-performers</span></u><span lang="EN-GB" style="font-family: "verdana" , sans-serif; text-indent: -18pt;"> (usage). A simple-but-hard to follow piece of advice, intended to
reduce the total weight.</span></li>
<li><u style="font-family: Verdana, sans-serif; text-indent: -18pt;"><span lang="EN-GB">Build with test and code re</span></u><span lang="EN-GB" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">views. A great recommendation, that is outside the scope of this
post, but obviously most relevant.</span></li>
<li><span style="font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span><u style="font-family: Verdana, sans-serif; text-indent: -18pt;"><span lang="EN-GB">Reinforce the IS &
software engineering culture</span></u><span lang="EN-GB" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">.</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<h2 style="text-align: left;">
<b><span lang="EN-GB"><span style="font-family: "verdana" , sans-serif;">5. Conclusion</span></span></b></h2>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-GB"><span style="font-family: "verdana" , sans-serif;">This
post is the hybrid combination of two previously well-known ideas:<o:p></o:p></span></span></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l1 level1 lfo1; text-align: justify; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB">·<span style="font-stretch: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-GB">The sustainable management of
IT budget should be concerned with application age, lifecycle and refresh rate.
To paraphrase an old advertisement for batteries “IT technology progress – such
as Moore’s law – is only useful when used”. <o:p></o:p></span></span></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l1 level1 lfo1; text-align: justify; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: "verdana" , sans-serif;"><span lang="EN-GB">·<span style="font-stretch: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span lang="EN-GB">In the digital world, that is
the world of fast refresh rate, the inertia of the system should be kept
minimal. This is why the preferred solution is always “no code” (write as
little as you can), though a strict focus on value, through SaaS (letting other
worry about constant change), though abstraction (write as few lines of code as
possible), etc.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-GB"><span style="font-family: "verdana" , sans-serif;">The
resulting combination states that IT governance must address IS complexity and
its impact on both costs and agility in a scenario of constant change. The
constant refactoring both at the local (component) and global Enterprise
Architecture level (IS as a whole) should be a guiding factor in the resource
allocation process. Sustainable IS development is a business decision, which
requires the ability to assess the present and future cost of IS operations,
lifecycle and integration.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-GB"><span style="font-family: "verdana" , sans-serif;">Because
the digital world is exposed to more variability (e.g., of end-customer usage)
and a higher rate of change, best practices such as those reported in <a href="https://www.octo.com/en/publications/22-the-web-giants">Octo’s book “The
Web Giants”</a> are indeed geared towards minimizing inertia and maximizing
velocity and agility. The exceptional focus of advanced software companies to
keep their code minimal, elegant and modular is a direct consequence of
sustainable development requirements.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">This post was kept non-technical, without equations or
models. It is very tempting, though, to leverage the previous work on scalar
complexity and sustainability models to formalize the concept of complexity
debt. Scalar complexity is a simple way to assess the complexity of an
architecture through its graphic representation of boxes (components) and links
(interfaces). The assess the dynamic “dimension” of technical debt associated
to complexity, one needs a model for constant change. This way, the metaphor of
weight (the inertia of something ponderous like a boat or a whale) may be
replaced with a metaphor that captures the level of interaction between moving
components. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTiAjBgJTfVBUBSQ8SnBPCRLIa5dRz81aqxdVBhiFFF0kPFdDFZBQ32qCVD4HIEgYjRn3GyglAa3gVktKS0wrHRW__krMtB1WKYBPSmkXcnsucTIZehkIo3XFGBG500KgO5dvTNGPyKuM/s1600/FishSchool.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="408" data-original-width="612" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTiAjBgJTfVBUBSQ8SnBPCRLIa5dRz81aqxdVBhiFFF0kPFdDFZBQ32qCVD4HIEgYjRn3GyglAa3gVktKS0wrHRW__krMtB1WKYBPSmkXcnsucTIZehkIo3XFGBG500KgO5dvTNGPyKuM/s320/FishSchool.jpg" width="320" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Devising a proper metaphor is important since the “<b>school of fish versus whale</b>” metaphor
is often used and liked by business managers. Complexity debt adds a twist
about the “scalar complexity of the school of fish”: its needs to be kept to
the minimum to keep the agility of the actual school of fish (for the metaphor
to work). I will conclude with this beautiful observation from complex biological
system theory: The behavior of a school
of fish or a flock of birds is emergent from local behaviors: fishes and birds
only interact with their local neighbors (other said, the scalar complexity is
low). Thus the “school of fish” metaphor is actually a great one to design
sustainable information systems.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div style="height: 0px; text-align: left;">
<span style="font-family: "verdana" , sans-serif;">x</span></div>
</div>
Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com1tag:blogger.com,1999:blog-438942112364524044.post-88189309038370665552017-09-30T02:50:00.003-07:002017-09-30T02:56:38.149-07:00Hacking Growth, when Lean Management meets Digital Software<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<h2 style="text-align: left;">
<b><span lang="EN-US"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif; font-size: large;">1. Introduction</span></span></b></h2>
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAYxVcEh4-HCkHn_jjRyXx96N-MTI1VLFbMGP_jHXrk3qy8UvYKdPFFuwphc1BVi7p7I-Q_MZs4uJ_alSDnhDS94_V2OShDpRx7J2_L_JXdFg4Bv7AvO-IQ1OX4v1tzsiqOWqTcqAj6Kc/s1600/HackingGrowth.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="background-color: #f3f3f3;"><img border="0" data-original-height="499" data-original-width="331" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAYxVcEh4-HCkHn_jjRyXx96N-MTI1VLFbMGP_jHXrk3qy8UvYKdPFFuwphc1BVi7p7I-Q_MZs4uJ_alSDnhDS94_V2OShDpRx7J2_L_JXdFg4Bv7AvO-IQ1OX4v1tzsiqOWqTcqAj6Kc/s320/HackingGrowth.jpg" width="212" /></span></a></div>
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="font-size: 11pt;"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">This blogpost is both
about a truly great book “<a href="http://growthhacker.com/">Hacking Growth :
How Today’s Fastest-Growing Companies Drive Breakout</a>” by Sean Ellis and Morgan Brown – that could be
qualified as the reference textbook on Growth Hacking – and a follow-up on many
previous conversations <a href="http://informationsystemsbiology.blogspot.fr/2015/10/lean-startup-and-lean-software-factory.html"><span style="color: black; mso-themecolor: text1;">in this blog</span></a> and other posts (in French) about <a href="http://organisationarchitecture.blogspot.fr/2015/07/la-pratique-du-lean-startup-et-du.html"><span style="color: black; mso-themecolor: text1;">growth hacking</span></a>. There are
many ways to see Growth Hacking in relation to <a href="https://fr.wikipedia.org/wiki/Lean_startup"><span style="color: black; mso-themecolor: text1;">Lean Startup</span></a>. Following the lead <a href="http://www.theinnovatorsmethod.com/"><span style="color: black; mso-themecolor: text1;">of Nathan Furr and Jeff Deyer</span></a>, I see Growth Hacking as the
third step of a journey that starts with design thinking, followed by the
delivery of a successful MVP (<a href="https://en.wikipedia.org/wiki/Minimum_viable_product">minimum viable
product</a>) and continues to growth hacking. The goal of the design thinking
is to produce the UVP (<a href="https://unbounce.com/conversion-glossary/definition/unique-value-proposition/">Unique
Value Proposition</a>) – it is a first iterative loop that produces prototypes.
The goal of the “MVP step” is to produce a “vehicle” (a product) to learn how
to deliver the UVP through feedback and iteration. The growth hacking phase is
about navigating towards success and growth with this MVP.<br />
I like Nathan Furr idea of a “minimum
awesome product”, in the sense that very crude prototypes belong to the design
thinking phase (to validate ideas). Growth Hacking works with a product that is
“out there” with real customers/users in the real world, and it only works with
a “minimum awesome product” that
delivers the value of an awesome UVP (<a href="http://organisationarchitecture.blogspot.fr/2015/07/la-pratique-du-lean-startup-et-du.html"><span style="color: black; mso-themecolor: text1;">following Ash Maurya</span></a>). This
says the the classical “<b>Learn, Build,
Measure</b>” cycle is a common pattern of the three stages: design thinking,
MVP building and Growth Hacking.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="font-size: 11pt;"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">This post is also a
follow up to the post about “<a href="http://organisationarchitecture.blogspot.fr/2017/07/americains-et-japonais-culture.html"><span style="color: black; mso-themecolor: text1;">software culture and learning by doing
and problem solving</span></a>”. Growth Hacking is a perfect example of “lean
continuous improvement culture meets agile software development practice”. It
is a structured and standardized practice – in the lean sense – for extracting
value from a <b>user feedback learning loop</b>
– both in a quantitative and qualitative way. As such, it is more general than
typical digital products and may be applied to a large class of software
products, on closed as well as open markets. I would argue that learning from
users’ feedbacks and users’ usage is a must-do from any software organization,
from IT departments to ISVs.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="font-size: 11pt;"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">This post is
organized as follows. The next part is about Growth Hacking as a control loop.
I will first recall that growth hacking is about turning customer feedback into
growth thanks to the (digital) product itself (it may be applied to other
products that digital, but “hackings” says that it was designed for software
defined products). The third part is about the true customer-centricity of
Growth hacking and the importance of the “aha moment”, when the customer
experiences the UVP (Unique Value Proposition). The last part talks about the
dual relationship between teams and user communities. The product is used as a
mediation between a product team and a group of communicating users organized
into a community. The product plays a
key role for mediating between the two: it delivers new experiences and gather
new feedbacks, but there is more than numbers to Growth Hacking.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="background-color: #f3f3f3; font-size: 11pt;"><span style="font-family: "verdana" , sans-serif;">A last caveat before
jumping into our topic: this book is a “user manual” of Growth Hacking for
practitioners. A summary does not really work and I will highlight a few key
ideas and associated quotes, rather than attempting to cover the book’s
material. I urge you to read the book, especially if you are in charge of a
digital product or service and trying to grow its usage.</span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal">
</div>
<h2 style="text-align: left;">
<b><span lang="EN-US" style="font-size: 14pt;"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">2. The
Growth Hacking Control Loop</span></span></b></h2>
<b><span lang="EN-US" style="background-color: #f3f3f3; font-size: 14pt;">
<!--[if !supportLineBreakNewLine]--><br />
<!--[endif]--><o:p></o:p></span></b><br />
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="font-size: 11pt;">Growth hacking is about developing market and usage growth through the
product itself and a control loop centered on customer feedback. </span></b><span lang="EN-US" style="font-size: 11pt;">I borrow the following
definition from the beginning of the book : “</span><i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">Growth hacking allows
companies to efficiently marry powerful data analysis and technical know-how
with marketing savvy, to quickly devise more promising ways to fuel growth. By
rapidly testing promising ideas and evaluating them according to objective
metrics, growth hacking facilitates much quicker discovery of which ideas are
valuable and which should be dismissed</span></i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">”. What sets the software
world apart is that the product is the media. This is one of the key insights
of Growth Hacking (and part of the reasons for the “hacking word”). Using the
product as the media to communicate with users has many benefits: it is cheap –
fixed cost that is good for scaling –; it is efficient (there is a “rich bag of
tricks” that the book illustrates); it is efficient since it reaches 100% of
users and it is precise since software analytics enables to know exactly what
works and what does not. The authors summarize this as “<i>enabling our users to grow the product for us</i>.”</span></span><br />
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US" style="background-color: #f3f3f3; border: 1pt none; font-size: 11pt; padding: 0cm;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify; vertical-align: baseline;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="font-size: 11pt;">Growth
Hacking may be implemented at all scales – from a startup to a large company –
and for a large range of software-defined experience, from mass-market digital
goodies such as mobile apps to B2B commercial software</span></b><span lang="EN-US" style="font-size: 11pt;">. This is repeated many times in the book: “</span><i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">Nor is it just a tool for entrepreneurs; in fact,
it can be implemented just as effectively at a large established company as at
a small fledgling start-up</span></i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">”. As told
in the introduction, this makes the book valuable for most companies since “<a href="https://a16z.com/2016/08/20/why-software-is-eating-the-world/">software
is eating the world</a>”: “<i>General
Electric CEO Jeffrey Immelt recently said that “every industrial company will
become a software company,” and the same can be said for consumer goods
companies, media companies, financial services firms, and more</i>”. What makes
the value proposition of Hacking Growth so interesting is the success track
with all the Silicon Valley companies that have used this approach: Twitter,
Facebook, Pinterest, Uber, LinkedIn … and many more. Even though each story is
different and each “growth hack” must be tuned to the specifics of each
product, there is a common method: “<i>It
wasn’t the immaculate conception of a world-changing product nor any single
insight, lucky break, or stroke of genius that rocketed these companies to success.
In reality, their success was driven by the methodical, rapid-fire generation
and testing of new ideas for product development and marketing, and the use of
data on user behavior to find the winning ideas that drove growth</i>”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><span lang="EN-US" style="font-size: 11pt;"><br />
<b>Growth Hacking control loop is built around measure – in a classical <a href="https://en.wikipedia.org/wiki/PDCA"><span style="font-weight: normal;">Plan-Do-Check-Act</span></a>
cycle. </b>The first message here is that
Growth Hacking is grounded in data. This is very much in the lean startup spirit:
decisions are based on data, and the first step of the approach is to collect
the relevant data. This is especially true for large companies, as is explained
in the book with a number of examples: “</span><i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">Recognizing
that Walmart’s greatest asset is its data, Brian Monahan, the company’s former
VP of marketing, pushed forward a unification of the company’s data platforms
across all divisions, one that would allow all teams, from engineering, to
merchandising, to marketing, and even external agencies and suppliers, to
capitalize on the data generated and collected</span></i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">.” <b>A growth hacking strategy starts with a data analytics strategy</b>. Taking decisions based on data requires
quality (for precision) and quantity (for robustness). There is clearly a “data
engineering” dimension to this first step: a “data integration architecture and
platform” is often needed to start the journey. The story of Facebook is a good
case in point : “ <i>in January of 2009,
they took the dramatic step of stopping all growth experiments and spending one
full month on just the job of improving their data tracking, collection, and
pooling. Naomi Gleit, the first product manager on Facebook’s growth team,
recalls that “in 2008 we were flying blind when it came to optimizing growth</i>.”
This data fuels a PDCA cycle : “ <i>The
process is a continuous cycle comprising four key steps: (1) data analysis and
insight gathering; (2) idea generation; (3) experiment prioritization; and (4)
running the experiments, and then circles back to the analyze step to review
results and decide the next steps</i>.” Here we see the reference to the Lean approach,
or to the TQM heritage of Edward Deming. </span><span lang="EN-US" style="font-size: 11pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify; vertical-align: baseline;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="font-size: 11pt;">Growth
hacking is a learning process with fast cycle time.</span></b><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;"> Most growth
hacks do not yield positive results, so it is critical to try as many as
possible. At the end, success depends on “<i>the
rapid generation and testing of ideas, and the use of rigorous metrics to
evaluate—and then act on—those results</i>”. There is a lot of emphasis on the
speed (of implementation) and the rythm (of experimentation). Many examples are
given to show the importance of “fast tempo”: “<i>Implementing a method I call high-tempo testing, we began evaluating
the efficacy of our experiments almost in real time. Twice a week we’d look at
the results of each new experiment, see what was working and what wasn’t, and
use that data to decide what changes to test next</i>”. It really boils down to
the necessity to explore a large space of optimization, without knowing in
advance what will work and what will not. The authors quote Alex Schultz from
Facebook : “<i>If you’re pushing code once
every two weeks and your competitor is pushing code every week, just after two
months that competitor will have done 10 times as many tests as you. That
competitor will have learned 10 times, an order of magnitude more about their
product [than you]</i>.” To achieve this fast cycle, one must obviously
leverage agile method and continuous delivery, but one must also use simple
metrics, with one goal at a time. A great part of the book deals with the
“North Star” metric, the simple and unique KPI that drives a set of experiment:
“<i>The North Star should be the metric that
most accurately captures the core value you create for your customers. To
determine what that is you must ask yourself: Which of the variables in your
growth equation best represents the delivery of that must-have experience you
identified for your product?</i>”.</span></span><br />
<b style="text-align: left;"><span lang="EN-US" style="font-size: 14pt;"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></span></b>
<b style="text-align: left;"><span lang="EN-US" style="font-size: 14pt;"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></span></b>
<b style="text-align: left;"><span lang="EN-US" style="font-size: 14pt;"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">3. Growth Hacking is intensely
customer-centric</span></span></b></div>
<span style="background-color: #f3f3f3;"><span lang="EN-US" style="font-size: 11pt;"><br />
<br />
<span style="font-family: "verdana" , sans-serif;"><b>Growth Hacking starts when the product generates a “Aha moment” for the
user. </b>The “Aha moment” happens when
the user experiences the promise that was made in the UVP. The product actually
solves a pain point and the user gets it. Growth Hacking cannot work if the MVP
is not a “minimum awesome product” that delivers the promise of a great UVP
(redundant, since U means unique). As the authors say, “</span></span><span style="font-family: "verdana" , sans-serif;"><i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">no amount of marketing and advertising—no matter
how clever—can make people love a substandard product</span></i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">”, hence “<i>one of the cardinal rules of growth hacking
is that you must not move into the high-tempo growth experimentation push until
you know your product is must-have, why it’s must-have, and to whom it is a
must-have: in other words, what is its core value, to which customers, and why</i>”.
The book logically refers to the Sean Ellis ratio, and the corresponding survey
that is applied to customers to find out who would be truly annoyed if the
product was discontinued. Sean Ellis data mining over a very large sample of
startups shows that one must reach 40% for this ratio to say that consumers “<i>love your product</i>” and to start scaling
successfully.</span><span lang="EN-US" style="font-size: 11pt;"><o:p></o:p></span></span></span><br />
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; text-align: justify; vertical-align: baseline;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><span lang="EN-US" style="font-size: 11pt;">Getting to a product that may deliver a “Aha
moment” is the goal of the MVP cycle. This is another topic, but the book gives
a few pieces of sound advice anyway. The most salient one is to stick to the
“minimum” of MVP and adding features instead of focusing on simplicity: “</span><i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">all product developers must be keenly aware of the
danger of feature creep; that is, adding more and more features that do not
truly create core value and that often make products cumbersome and confusing
to use</span></i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">.”</span><span lang="EN-US" style="font-size: 11pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-HTGkO74rO69FMZBK0EVAQ5PFup-VlhqyTVlUj8kSOqBJapGAWE2KF0DbvYxSJ1kCVjF-4Ud8OoOMLjHfvxWIu4CTV2NDQYg1q2pDN6n9n2gtPMx_puCL6hXuRFdYCTN1_Et1iWsD16E/s1600/Hooked.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><img border="0" data-original-height="1600" data-original-width="1037" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-HTGkO74rO69FMZBK0EVAQ5PFup-VlhqyTVlUj8kSOqBJapGAWE2KF0DbvYxSJ1kCVjF-4Ud8OoOMLjHfvxWIu4CTV2NDQYg1q2pDN6n9n2gtPMx_puCL6hXuRFdYCTN1_Et1iWsD16E/s320/Hooked.jpg" width="207" /></span></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><span lang="EN-US" style="font-size: 11pt;"><br />
<b>The ultimate goal is to make one’s product a customer habit, up to an
addictive one. </b>This is a clear
consequence of the growth model that is made famous by the <a href="http://blog.popcornmetrics.com/pirate-metrics-aarrr-a-beginners-guide-for-entrepreneurs-marketers-and-agencies/">Pirate Metrics</a>, once the
acquisition flows, retention becomes the heart of the battle. In our world of
digital abundance, retention is only won when the product becomes a habit: “</span><i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">The core mission for growth teams in retaining
users who are in this midterm phase is to make using a product a habit; working
to create such a sense of satisfaction from the product or service that over
time</span></i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">”. The book is full of suggestions and insights to help the reader
design a product that could become a habit. For instance, it leverages the “<a href="https://www.nirandfar.com/hooked">Hook Model” proposed by Nir Eyal</a>. The hook model <a href="https://fr.slideshare.net/nireyal/hooked-model/35-A_A_hook_has_4">has
four parts</a>, organized into a cycle: trigger, action, reward, investment.
Many of the growth hacks follow this cycle to build up a habit. The book offers
a step-by-step set of examples to build triggers (based on customer journeys),
to develop all kinds of rewards and to foster customers’ investment into the
experience (for instance through personalization and self-customization,
leading to the feeling of ownership – a key component of <a href="https://en.wikipedia.org/wiki/Emotional_Design">emotional design</a>). As
the authors notice: “ <i>some of the most
habit-forming rewards are the intangible ones. There are many kinds of rewards
to experiment with in this category. There are social rewards, such as
Facebook’s “Like” feature, which has been a strong driver in making the posting
of photos and comments habitual</i>.”<o:p></o:p></span></span></div>
<div class="MsoNormal" style="vertical-align: baseline;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; text-align: justify; vertical-align: baseline;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><span lang="EN-US" style="font-size: 11pt;">The autors advocate about leveraging the
growing wealth of knowledge that is produced by psychology and behavioral
economics. Obviously, the work of <a href="https://fr.wikipedia.org/wiki/Daniel_Kahneman">Daniel Kahneman</a> is
quoted – cf. his great book “<a href="http://organisationarchitecture.blogspot.fr/2012/09/regles-simples-et-situations-complexes.html">Thinking,
Fast and Slow</a>”, but we could also
think of <a href="http://informationsystemsbiology.blogspot.fr/2016/12/behavioral-change-through-systemic-games.html">Dan
Ariely or Richard Thaler</a>. There are many other interesting references to
other frameworks to influence customer behavior, such as <a href="https://www.referralcandy.com/blog/persuasion-marketing-examples/">Robert
Cialdini’s six principles</a>. Among those principles, the principle of
reciprocity may be used to drive revenue by asking customers to make small
commitments, that create a solid bond that may be leveraged later on. The
principle of social proof is based on research that shows that we tend to have
more trust in things that are popular or endorsed by people that we trust.
Another book that is quoted here is “<a href="http://www.nytimes.com/2010/04/18/books/review/Postrel-t.html?mcubz=1">The
Art of Choosing</a>” by Sheena Lyengar, I strongly recommend <a href="https://www.youtube.com/watch?v=lDq9-QxvsNU">her video here</a>. It is
interesting to understand that choice has a cost, and that some of these
choices should be avoided : “</span><i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">Debora Viana
Thompson, Rebecca Hamilton, and Roland Rust, found that companies routinely
hurt long-term retention by packing too many features into a product,
explaining “that choosing the number of features that maximizes initial choice
results in the inclusion of too many features, potentially decreasing customer
lifetime value</span></i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">.</span><span lang="EN-US" style="font-size: 11pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; vertical-align: baseline;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal">
</div>
<h2 style="text-align: left;">
<span style="background-color: #f3f3f3;"><b><span lang="EN-US" style="font-size: 14pt;"><span style="font-family: "verdana" , sans-serif;">4.
Growth Hacking : Teams meet Communities</span></span></b><span lang="EN-US" style="font-size: 11pt;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></span></h2>
<span lang="EN-US" style="background-color: #f3f3f3; font-size: 11pt;">
<!--[if !supportLineBreakNewLine]--><br />
<!--[endif]--><o:p></o:p></span><br />
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="font-size: 11pt;">Growth Hacking is a team sport. </span></b><span lang="EN-US" style="font-size: 11pt;">The importance of teams is a common thread throughout
the book. These are teams in the sense of cross-functional, agile and empowered:
“</span><i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">the creation of a
cross-functional team, or a set of teams that break down the traditional silos
of marketing and product development and combine talents</span></i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">”. Following the
lean software principles, the cross-functional team is not a group of “siloed
experts”, but T-shaped profiles that bring their own skills and talents but
understand each other: “<i>You need
marketers who can appreciate what it takes to actually write software and you
need data scientists who can really appreciate consumer insights and understand
business problems</i>”. I borrow yet another quote on the importance of
cross-functionality, since this is a key idea to leverage effectively
technology into innovation, in a larger context than growth hacking: “<i>growth hacking is a team effort, that the
greatest successes come from combining programming know-how with expertise in
data analytics and strong marketing experience, and very few individuals are
proficient in all of these skills</i>”. </span><span lang="EN-US" style="font-size: 11pt;"><br />
<br />
<b>Growth Hacking leverages communities of communicating users. </b> Growth
Hacking is a story with three protagonists: the team, the product and a user
community – the product as the mediation between the team and the community.
The importance of user community is also superbly expressed <a href="http://organisationarchitecture.blogspot.fr/2015/11/innovation-et-entreprenariat.html"><span style="color: black; mso-bidi-font-weight: normal; mso-themecolor: text1;">by Guy
Kawasaki</span></a> … and <a href="https://postcron.com/en/blog/10-amazing-marketing-lessons-steve-jobs-taught-us/">Steve Jobs</a>. The community is the
preferred tool to get deep insights from users because analytics is not enough:
“</span><i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">Preexisting communities to
target for insight into how to achieve the aha moment can also, of course, be
identified digitally</span></i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">”. The combination of the “aha moment” that we saw
in the previous section and the community of “evangelist” is what is needed to
start the growth engine: “<i>Once you have
discovered a market of avid users and your aha moment—i.e., once product/market
fit has been achieved—then you can begin to build systematically on that
foundation to create a high-powered, high-tempo growth machine</i>”. The
community of active, engaged, communicating users is needed to get qualitative
feedback in addition to the quantitative feedback that one gets with software
analytics. This deeper insight is needed to truly understand customer behavior:
“<i>it’s crucial that you never assume why
users are behaving as they are; rather, you’ve always got to study hard data
about their behavior and then query them on the basis of observations you’ve
made in order to focus your experimentation efforts most efficiently on changes
that will have the greatest potential impact</i>”. This fine understanding of customer behavior
is necessary to eradicate friction, which is a key goal of experience design,
that is remove “<i>any annoying hindrances
that prevent someone from accomplishing the action they’re trying to complete</i>”.
<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><b><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">When striving
for growth, in the same way than one should focus on a single metric, it is
better to focus on a single – or very few - distribution channel</span></b><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">. A large part
of the book demonstrates this with illustrative examples. Focusing on a
distribution channel helps to narrow the diversity of customer experience and
makes the iterative optimization of Growth hacking better targeted and more efficient:
“<i>Marketers commonly make the mistake of
believing that diversifying efforts across a wide variety of channels is best
for growth. As a result, they spread resources too thin and don’t focus enough
on optimizing one or a couple of the channels likely to be most effective</i>”.</span><span lang="EN-US" style="font-size: 11pt;"> Growth Hacking is often associated with
virality. Indeed, virality is a key growth engine and, as Seth Godin explained,
virality must be designed as part of the product experience: “<i><span style="border: none windowtext 1.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">when you do focus on
instrumenting virality, it’s important that you follow the same basic principle
as for building your product—you’ve got to make the experience of sharing the
product with others must-have—or at least as user friendly and delightful as
possible</span></i><span style="border: none windowtext 1.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">”. However, virality is only one aspect that may
be tuned by the iterative Growth Hacking optimization cycle. Acquisition and
Retention come first in the customer journey and should come first in the
growth hacking process.</span><o:p></o:p></span></span></div>
<div style="border-top: solid windowtext 1.0pt; border: none; mso-border-top-alt: solid windowtext .75pt; mso-element: para-border-div; padding: 1.0pt 0cm 0cm 0cm;">
<div class="MsoNormal" style="border: none; mso-border-top-alt: solid windowtext .75pt; mso-padding-alt: 1.0pt 0cm 0cm 0cm; padding: 0cm; text-align: justify;">
<span lang="EN-US" style="display: none; font-size: 11pt;">Bottom of Form<o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; text-align: justify; vertical-align: baseline;">
<span style="background-color: #f3f3f3;"><span style="font-family: "verdana" , sans-serif;"><span lang="EN-US" style="font-size: 11pt;"><br />
As explained in the introduction, a summary would not do justice to this book, which
is full of great illustrative examples and relevant data points and
metrics. This is definitely useful for
growing mobile applications: “</span><i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">For example,
for mobile notifications, opt-in rates range from 80 percent at the high end,
for services like ride sharing, to 39 percent at the low end for news and media
offerings, according to Kahuna, a mobile messaging company</span></i><span lang="EN-US" style="border: 1pt none windowtext; font-size: 11pt; padding: 0cm;">”. Growth hacking is based on building growth
models that are validated, tuned or invalidated with experience cycles. The
book is filled with key ratios that are more than useful to start this modeling
with default values that make sense. Here is another example that is truly
valuable for anyone who tries to understand her or his application retention numbers:
“<i>According to data published by mobile
intelligence company Quettra, most mobile apps, for example, retain just 10
percent of their audience after one month, while the best mobile apps retain
more than 60 percent of their users one month after installation</i>”. Focusing
on measure is obviously the way to go, but making sense of measures requires
modelling and this book is a great help to achieve this.</span></span><span lang="EN-US" style="font-size: 11pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<h2 style="text-align: left;">
<b><span lang="EN-US" style="font-size: 14pt;"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">5. Conclusion</span></span></b></h2>
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "verdana" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_Q0llC6zWl6KEKQq5O_YyHni8NM2fxZyUhWS8CAYV9Mxwk6eWMJbXkOPPy-AEdkkyodZYtakbVJiidllnvriiYZDJrlGUFpf5iEgYFmz65LjrOIr4i_GteCML2jNijEQF1IPRRAolKUU/s1600/LeanStartupThreeLoops2016.jpg" imageanchor="1" style="background-color: #f3f3f3; margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_Q0llC6zWl6KEKQq5O_YyHni8NM2fxZyUhWS8CAYV9Mxwk6eWMJbXkOPPy-AEdkkyodZYtakbVJiidllnvriiYZDJrlGUFpf5iEgYFmz65LjrOIr4i_GteCML2jNijEQF1IPRRAolKUU/s640/LeanStartupThreeLoops2016.jpg" width="640" /></a></span></div>
<span style="background-color: #f3f3f3;"><br /></span>
<br />
<div class="MsoNormal">
<span lang="EN-US" style="font-size: 11pt;"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-size: 11pt;"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">Growth Hacking is the third
loop of the following representation of Lean Startup, which was developed and
used at AXA’s digital agency. As
explained in the introduction, the goal of the first loop is to produce the
proper UVP. No one should ever start developing a product or a service without
a first-class UVP – As Ash Maurya said : “<i>life
is too short to build products that people will not use</i>”. This is hard
work, but many good guides are available, such as Ash Maurya’s <a href="https://leanstack.com/running-lean-book/">Running Lean</a>. Once the UVP
is crafted, <b>there are three huge and
separate challenges</b>:<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-size: 11pt;"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal">
</div>
<ol style="text-align: left;">
<li><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><u style="text-indent: -18pt;"><span lang="EN-US" style="font-size: 11pt;">To build a MVP that delivers the promise of the UVP</span></u><span lang="EN-US" style="font-size: 11pt; text-indent: -18pt;">. This is actually incredibly difficult for large
organizations: there is always a short cut that seems faster (and the pressure
to deliver is huge) and there are too many stakeholders that will contribute to
dilute the UVP. My personal experience, from the innovation lab to the hands of
the customer, over the last 10 years, is that the UVP is lost 90% of the time.
As was sated earlier, Growth Hacking starts when the “aha moment” is delivered,
but this is not a zero-one situation and Growth Hacking may be used to debug or
improve this “aha moment”.</span><u style="text-indent: -18pt;"><span lang="EN-US" style="font-size: 11pt;"><br /></span></u></span></li>
<li><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><span style="text-indent: -18pt;"><span lang="EN-US" style="font-size: 11pt;">To craft and deliver the story of the UVP to the
customer</span></span><span lang="EN-US" style="font-size: 11pt; text-indent: -18pt;">. I have been amazed during
the same past 10 years at the number of times a great UVP was built into a
product, a service or an app, and customers were simply not aware of it. Each
time you would demonstrate the experience to a customer, you would see the “aha
moment” and the smile, but 1-to-1 personal demo is not a scalable method. This
book precisely addresses this problem. My experience over the years has been
that the crafting of this story should be codesigned with the development team.
<b>Understanding the link between the pain
points, the promise and the user stories is a key factor to build a consistent
and delightful experience</b>.</span><u style="text-indent: -18pt;"><span lang="EN-US" style="font-size: 11pt;"><br /></span></u></span></li>
<li><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><span style="text-indent: -18pt;"><span lang="EN-US" style="font-size: 11pt;">To help the customer</span></span><span lang="EN-US" style="font-size: 11pt; text-indent: -18pt;">, once the UVP is “in the box” and once the customer has understood what
it is, <u>so that this experience may actually be found</u> ! This is obviously
a question of <a href="http://organisationarchitecture.blogspot.fr/2016/03/lean-user-experience-et-lean-analytics.html">user
experience design</a> and usability, but it is a tough one. Here also, Growth
Hacking is more than relevant: continuous iteration is the only way to solve
this problem.</span></span></li>
</ol>
<span style="background-color: #f3f3f3;"><br /></span>
<br />
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<br /></div>
</div>
Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com3tag:blogger.com,1999:blog-438942112364524044.post-64317595229161661232017-06-18T03:07:00.003-07:002017-06-18T03:10:40.047-07:00Digital Experience Factories<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<h2 style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<span style="font-family: "verdana" , sans-serif;"> </span><span style="font-family: "verdana" , sans-serif;"><b>1. Introduction</b></span></h2>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">I have left AXA a month ago to join Michelin. This is always a great
moment to reflect on some of the ambitions of the previous past years. Today I
will write about <b>Digital Experience
Factories</b>. As AXA Group Head of Digital, I have worked on setting up a Digital
Experience Factory, a software development organization geared to produce
digital artefacts and experience, following my previous work on <i>lean software factories</i> at Bouygues
Telecom. The introduction of “experience” in the name is a way to emphasize the
importance of customer experience in the digital world, but this has always
been a key ambition of <a href="http://informationsystemsbiology.blogspot.fr/2014/06/12-principles-of-lean-software-factories.html">lean
software factories</a> as is shown on the illustration in the next section. The
goal of this post is to re-formulate the key ideas and principles of a Digital
Experience Factory, now that I have added a few more years of experience. It
should be said that the concept of <a href="https://en.wikipedia.org/wiki/Software_factory">software factory</a> is
now well established and that most of what looked new in 2012 is mainstream in
2017.<o:p></o:p></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">I have had a long history of experience and interest
with software factories, agile organizations and lean software, but I really
started to put the pieces together in 2012. I defined the “Lean Software
Factory” as the target for our Bouygues Telecom Internet product software
division (Internet gateways and set-top boxes) by merging principles from Agile (mostly
SCRUM), Extreme programming and Lean, as explained in <a href="http://informationsystemsbiology.blogspot.fr/2012/12/lean-scrum-agile-and-extreme-programming.html">this
previous post</a>. The theory and the background references were rich, but we
actually focused on four practices only:<o:p></o:p></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
</div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">Team
Problem Solving</span></li>
<li><span style="font-family: "verdana" , sans-serif;"><span style="font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-US" style="text-indent: -18pt;">Using
visual management in a project room</span></span></li>
<li><span style="font-family: "verdana" , sans-serif;"><span style="font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-US" style="text-indent: -18pt;">Reducing
WIP through Kanban</span></span></li>
<li><span style="font-family: "verdana" , sans-serif;">Love
your code (5S for the code, coding discipline, code review, gardening, etc.)</span></li>
</ul>
<br />
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">This vision has been presented at the <a href="https://www.youtube.com/watch?v=2-vDMYheb_E">Lean IT Summit in 2013</a>
and you may <a href="https://www.slideshare.net/InstitutLeanFrance/caseau-lean-itsummit2013">find
the slides here</a> with both the general principles and the four
practices. Four the French readers, a
simplified presentation was made at the <a href="https://www.youtube.com/watch?v=sBmnukYdvw4&t=7s">4th Lean IT Summit
in Lyon</a> (2014), with <a href="https://www.slideshare.net/InstitutLeanFrance/yves-caseau-lean-software-factory">the
attached slides</a>.<o:p></o:p></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">I will start this post with an illustration that was
produced in 2012, because I have reused it extensively at AXA in a digital
factory context. Although the picture was produced to illustrate our ambition
with set-top boxes, it is sufficiently user-centric and generic to be widely
applicable. I was happily surprised to find it so relevant five years later in
a different context. I will propose a short summary in the next section.<o:p></o:p></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Section 3 will focus on the critical dependency
between the innovation and the software factory. I have used the major part of
the past three years at setting up <a href="http://informationsystemsbiology.blogspot.fr/2013/10/lean-startup-lean-innovation-factory.html">lean
startup innovation processes</a>. I have already touched <a href="http://organisationarchitecture.blogspot.fr/2016/08/decouverte-et-deploiement-continus-de.html">in
a previous blogpost</a> at the importance of the relationship between the
innovation and software delivery processes, but I would like to emphasize the
co-dependance of these two processes which I have labelled “<i>from customer to code</i>” (lean startup)
and “<i>from code to customer</i>” (devops).
In the digital world (more generally in the modern complex world), “the strategy
is the execution” (i.e., you are what you do).<o:p></o:p></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt 36pt; text-align: justify; vertical-align: baseline;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US">The last section will talk about the role of digital
experience factories in the world of <a href="http://informationsystemsbiology.blogspot.fr/2016/05/exponential-information-systems.html">exponential
information systems</a>. </span><span lang="EN-US"> Since
“<a href="http://a16z.com/2016/08/20/why-software-is-eating-the-world/">software
is eating the world</a>”, it creeps precisely everywhere in companies’
businesses, inside the company (each piece of equipment in a factory or human
collaboration is becoming “smart or augmented”) and outside (customers’ digital
lives or business partners). Software factories have a role to play in a <a href="http://informationsystemsbiology.blogspot.fr/2014/04/software-ecosystems-and-application.html">larger
software ecosystem</a>, with a multiplicity of roles and stakeholders. <o:p></o:p></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<h2 style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US">2. Digital Experience Factory
Blueprint</span></b></span></h2>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The following picture is an illustration of a Digital
Experience Factory – as well as a lean software factory. Although it is pretty
old (in the digital time), I have found that it is still a good blue print for
setting up a software factory in the digital world. <o:p></o:p></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEUNLnvc_K9m_JNO4WzBlUjBKyZkMT38LRst_z_wSgS-Sn2sV1WozmSq3X49MN_Q3_Yx9yUSgPYfVnxf6DSI5tpPT6U-oDhZELCxBUax6ZZqmCQWwH_6yq0tK7peq_sRhe3pwZcwU9eyE/s1600/SofttwareFactorybyLHOC.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1236" data-original-width="1600" height="494" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEUNLnvc_K9m_JNO4WzBlUjBKyZkMT38LRst_z_wSgS-Sn2sV1WozmSq3X49MN_Q3_Yx9yUSgPYfVnxf6DSI5tpPT6U-oDhZELCxBUax6ZZqmCQWwH_6yq0tK7peq_sRhe3pwZcwU9eyE/s640/SofttwareFactorybyLHOC.jpg" width="640" /></a></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US">This picture is pretty much self-explanatory but I
would like to point out a few things, i.e., explain the choice of a few
keywords. To keep things short, let’s define the seven foundations of the
Digital Experience Factory:</span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
</div>
<ol>
<li><span style="font-family: "verdana" , sans-serif;">The
input for the factory is made of “<b style="text-indent: -18pt;">pain
points</b><span style="text-indent: -18pt;">” & “</span><b style="text-indent: -18pt;">user stories</b><span style="text-indent: -18pt;">”. No
one should be surprised to see user stories for an agile software shop, but I
have found that they should not be separated from the “original paint points”
which they are derived from. Our practice at AXA has been to build “UVP trees”,
which a graphical representation that links the pain points, the UVP (</span><a href="http://organisationarchitecture.blogspot.fr/2015/07/la-pratique-du-lean-startup-et-du.html" style="text-indent: -18pt;">unique
value proposition</a><span style="text-indent: -18pt;">) and the user stories. Sharing UVP with everyone in the
software shop improves considerably the quality of the code (from a customer
experience point of view). More generally, a key principle of a lean
organization is to make sure that “the customer is represented on the
production floor” and that customer testimonies – including pain points – are
available (visually) to all actors of the process (not just the designers or
product marketers).</span></span></li>
<li><span style="font-family: "verdana" , sans-serif;">The
output of any software development is end-user <b style="text-indent: -18pt;">experience</b><span style="text-indent: -18pt;"> and is measured with user satisfaction. </span><b style="text-indent: -18pt;">Customer satisfaction</b><span style="text-indent: -18pt;"> is the “true
north” of any lean (in the Toyota Way sense) organization. Because customer
satisfaction is complex (in a systemic sense), it requires an incremental
approach and a </span><b style="text-indent: -18pt;">feedback</b><span style="text-indent: -18pt;"> loop.</span></span></li>
<li><span style="font-family: "verdana" , sans-serif;">CICD
(<a href="https://www.slideshare.net/Robert_McDermott/anatomy-of-a-continuous-integration-and-delivery-cicd-pipeline" style="text-indent: -18pt;">Continuous
Integration and Continuous Delivery</a><span style="text-indent: -18pt;">) is the crown jewel of modern software
organization. This is where the huge productivity gap resides, but this also
requires significant efforts to setup. I refer you to the great Octo book, </span><a href="http://www.octo.com/en/publications/22-the-web-giants" style="text-indent: -18pt;">the Web Giants</a><span style="text-indent: -18pt;">,
which I have used extensively to evangelize and promote change in the past 5
years. CICD starts with </span><b style="text-indent: -18pt;">Continuous Build
and Integration</b><span style="text-indent: -18pt;"> and continued with Continuous Delivery using DevOps
practices. This is probably the part of the picture that has evolved the most
in the past 5 years </span><a href="http://www.mckinsey.com/industries/financial-services/our-insights/ings-agile-transformation?cid=eml-web" style="text-indent: -18pt;">since
DevOps is now a mainstream critical recommendation</a><span style="text-indent: -18pt;">.</span></span></li>
<li><span style="font-family: "verdana" , sans-serif;"><b style="text-indent: -18pt;"><span lang="EN-US">Test-driven development</span></b><span lang="EN-US" style="text-indent: -18pt;"> is also a critical aspect of a digital
experience factory because it fuels the CICD ambition (automated tests and
automated delivery go hand in hand), but also because it helps to produce
higher quality code with less stress, hence more pleasure. I urge you to read <a href="http://organisationarchitecture.blogspot.fr/2016/01/bienvenue-dans-lere-du-management.html">Rich
Sheridan wonderful book “Joy, Inc”</a> to understand the importance of culture
and pride in software development. This obviously goes back to the three tenets
of self-motivation <a href="http://organisationarchitecture.blogspot.fr/2012/11/motivation-lean-et-stress.html">according
to Daniel Pink</a>: autonomy, mastery and purpose.</span></span></li>
<li><span style="font-family: "verdana" , sans-serif;"><b style="text-indent: -18pt;"><span lang="EN-US">Visual Management & Kanban</span></b><span lang="EN-US" style="text-indent: -18pt;"> are the most visible parts that are
borrowed from the <i>lean management
principles</i> in a Digital Experience Factory. There are two plagues in most
software organizations: rework (and its
cousin, dead code) and waiting (people waiting for one another). Any software
development audit that I have had to undergo in my past 15 years of
professional experience has found these two issues. Visual Management, in
general, and Kanban, in particular, is the best way to tackle these two
problems.</span></span></li>
<li><span style="font-family: "verdana" , sans-serif;"><span style="font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-US" style="text-indent: -18pt;">“Source
code is king” in a digital software factory. The new world of software is
characterized by the increased rate of change and innovation. This creates two
new requirements : (a) <a href="http://informationsystemsbiology.blogspot.fr/2012/07/lean-software-factory.html">one
must love one’s source code because it will be required to be looked at and
changed constantly</a> (b) one must
reuse as much existing code as possible, hence the importance of <a href="http://informationsystemsbiology.blogspot.fr/2014/04/software-ecosystems-and-application.html">leveraging
<b>open source</b></a> as a code feed (cf.
the illustration).</span></span></li>
<li><span style="font-family: "verdana" , sans-serif;"><b style="text-indent: -18pt;"><span lang="EN-US">Synchronized team work</span></b><span lang="EN-US" style="text-indent: -18pt;"> : the digital experience factory is
organized into <a href="http://www.full-stackagile.com/2016/02/14/team-organisation-squads-chapters-tribes-and-guilds/">squads</a>,
autonomous cross-functional teams. There are at least three important ideas
here. First, Squads are cross-functional teams where all necessary skills are
working together. Second, synchronized work means working together at the same
time on the same problem. This creates an environment where everyone
“understands a little bit of everything” which reduces informational friction
considerably. Last, the squad is autonomous, both for speed and motivation.</span></span></li>
</ol>
<br />
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<h2 style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US">3. Innovation Factories and Learning Loop</span></b></span></h2>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left; vertical-align: baseline;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify; vertical-align: baseline;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The following picture is borrowed <a href="https://www.slideshare.net/ycaseau1/xebico-npublic-nov2015">from a
presentation</a> that I <a href="https://www.youtube.com/watch?v=xutQcuFOrOE">made
at XEBICON 2015</a>. It is the best illustration that I have of the
interdependence of the innovation process and the software delivery process,
and it illustrates what I have been attempting to build at AXA during the past
few years. <o:p></o:p></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left; vertical-align: baseline;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAtJOvtUJDsIBTCyx2Urp4cNo-vano2dnjF_IMzvYKy9JAmH8MQhj-TPrM0m806xjm3T47bWriivB-TjqrRXcimVfIgkrpJv54VDs8PcvDVhUb6RweNvuKa4Hw48o2exAPESrP5XDtmzk/s1600/XEBICONnov2015Slide4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="960" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAtJOvtUJDsIBTCyx2Urp4cNo-vano2dnjF_IMzvYKy9JAmH8MQhj-TPrM0m806xjm3T47bWriivB-TjqrRXcimVfIgkrpJv54VDs8PcvDVhUb6RweNvuKa4Hw48o2exAPESrP5XDtmzk/s640/XEBICONnov2015Slide4.jpg" width="640" /></a></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify; vertical-align: baseline;">
<span lang="EN-US" style="font-size: 11pt;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify; vertical-align: baseline;">
<span lang="EN-US" style="font-size: 11pt;"><span style="font-family: "verdana" , sans-serif;"><span style="font-family: Verdana, sans-serif;">The key point of this picture is that,
although there are two processes, there is only one team and one product that
is being built. Other said, these are the same people who participate to the
two processes. The capability that the first process it aiming to build is to
produce digital artefacts (mobile or web apps, connected object, cloud service,
etc. – i.e., code) from listening to, and observing, the customer. The
capability of the second process is being able to deliver to customers – at
scale – a product/ service from the original code that is produced by the
developer in a continuous, high frequency and high-quality manner. What I have
learned over the years is that these two processes are very dependent on each
other, which is, once more, a lesson from <a href="http://informationsystemsbiology.blogspot.fr/2016/09/the-business-value-of-code-elegance-in.html">the
Web Giants</a> ! It is very difficult to run a lean software factory without
the true customer centricity of a lean startup approach (cf. the importance of
customer pain points, satisfaction, user stories and testimonies in the
previous section). It is equally difficult to implement a lean startup approach
without the performance of a great <a href="http://informationsystemsbiology.blogspot.fr/2011/11/lean-it-devops-and-cloud-programming.html">Devops</a>
software factory : the iterative process requires the high frequency of
delivery, customer satisfaction demands high quality software with high
performance and as few defects as possible.</span><span style="font-family: verdana, sans-serif; font-size: 11pt;"><o:p></o:p></span></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify; vertical-align: baseline;">
<span lang="EN-US" style="font-size: 11pt;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify; vertical-align: baseline;">
<span lang="EN-US" style="font-size: 11pt;"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify; vertical-align: baseline;">
<span lang="EN-US" style="font-size: 11pt;"><span style="font-family: "verdana" , sans-serif;">As stated earlier, strategy and execution
are merged in the digital world : a strategy only becomes real when it has been
executed and adapted to the “real-time”
environment, and execution requires to grow and adapt the strategy
continuously. Success becomes a function of the “<a href="http://organisationarchitecture.blogspot.fr/2017/05/grec-et-chinois-anticipation-et-agilite.html">digital
situation potential</a>”, which is a <b>combination
of skills, low technical debt and a flexible open architecture</b>. The
following illustration is borrowed from the same blog post. It shows the
importance of separating different time scales:<span style="font-size: 11pt;"><o:p></o:p></span></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify; vertical-align: baseline;">
</div>
<div style="text-align: left;">
</div>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">T0:
The immediate time scale of customer satisfaction: delivering what is
requested. This is the takt time of the factory process.</span></li>
</ul>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">T1:
The “mid-term” time of continuous improvement. This is the kaizen time, which
is more uncertain since some problems take longer to solve</span></li>
</ul>
<ul>
<li><span style="font-family: "verdana" , sans-serif;">T2:
The “long-term” time of learning. In a complex word, most learning is performed
“by doing”. Training happens “on the gemba”, through practice.</span></li>
</ul>
<br />
<br />
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5m3IGZa0-i9JZh2Ln-0xZEwQkKk7ruos3IAN6OMl7MwW8StutceDizU7rmK3z5jOlth4gtNw_Gci9mWZO0dE9CM5Vg0BHF3fxKPvFZuPa_xpD3MmVGjdZxAz3JDIdueTxW5JIrzURGXY/s1600/GrecEtChinoisEnglish.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5m3IGZa0-i9JZh2Ln-0xZEwQkKk7ruos3IAN6OMl7MwW8StutceDizU7rmK3z5jOlth4gtNw_Gci9mWZO0dE9CM5Vg0BHF3fxKPvFZuPa_xpD3MmVGjdZxAz3JDIdueTxW5JIrzURGXY/s640/GrecEtChinoisEnglish.jpg" width="640" /></a></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US">This picture is also a great illustration of how the double benefits of the </span></span><span style="font-family: "verdana" , sans-serif;">digital experience factory </span><span lang="EN-US" style="font-family: "verdana" , sans-serif;">agile and lean roots. <a href="https://www.forbes.com/2010/01/11/software-lean-manufacturing-technology-cio-network-agile.html">Lean
and Agile reinforce each other</a>. Agile software development practices are
mostly T0 (and some T1 with reflection practices) while lean emphasizes T1
(kaizen) and T2 (kaizen again ! plus dojo practices). Agile and SCRUM are born
as “project development methods” whereas lean software programming is geared
towards <a href="http://www.poppendieck.com/">product development</a>. I have
covered this topic with more detail in my post about <a href="http://informationsystemsbiology.blogspot.fr/2013/01/lean-architect-do-we-need-abstraction.html">Lean
and Architecture</a>. Long-term
sustainable development requires architecture and it is somehow not easy to see
where architecture fits in the agile framework, while architecture is a
cornerstone for lean sustainable development. I also refer you to the book
: </span><span lang="EN-US" style="background: rgb(246 , 246 , 246); font-family: "verdana" , sans-serif;">“<b><a href="http://informationsystemsbiology.blogspot.fr/2013/07/follow-up-on-lean-architecture.html"><span style="font-weight: normal;">Lean Architecture – for Agile Software
Development</span></a></b>” from James O. Coplien & Gertrud Bjørnvig.</span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<span style="font-family: "verdana" , sans-serif; text-align: justify;">A key piece of the Digital Experience Factory illustration is the
feedback loop from customer experience (i.e., the satisfaction or the absence of
satisfaction / the usage or the absence of usage). I have formalized the “</span><b style="font-family: Verdana, sans-serif; text-align: justify;">Customer Feedback learning Loop</b><span style="font-family: "verdana" , sans-serif; text-align: justify;">” (CFLL)
over the years, and </span><a href="http://organisationarchitecture.blogspot.fr/2016/08/decouverte-et-deploiement-continus-de.html" style="font-family: Verdana, sans-serif; text-align: justify;">our
experience at AXA has helped a lot to setup best practices</a><span style="font-family: "verdana" , sans-serif; text-align: justify;"> that may be
easily reproduced.</span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
</div>
<ul style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "verdana" , sans-serif;">CFLL is
practiced with three “channels”: implicit, explicit and social.<span style="text-indent: -18pt;"> </span><span style="text-indent: -18pt;">Implicit listening means using the power of
imbedded analytics to track the effective usage of customers. Explicit is
“active listening” of users to hear about their usage and satisfaction.
Explicit means that we look for </span><i style="text-indent: -18pt;">verbatim</i><span style="text-indent: -18pt;">
(e.g., in the stores), testimonies from users (through interviews). Active
means that this is a conversation, we may ask questions or answer to customers.
Social listening requires setting communities/digital tools so that users may
act as a group. Experience over the past 15 years has shown that the dynamics
of feedback is very different with a group, which feels more empowered, than
with individuals</span></span></li>
<li style="text-align: justify;"><span style="font-family: "verdana" , sans-serif;"><span style="font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-US" style="text-indent: -18pt;">CFLL is
managed as any quality improvement loops, using a “Toyota-style A3” which
supports a PDCA (Plan-Do-Check-Act) approach. Looking for root causes using the
“5 whys”, setting up kaizens with the whole team, and careful formulation of
assumptions is critical, since digital troubleshooting is hard and full of
counter-intuitive surprises.</span></span></li>
<li style="text-align: justify;"><span style="font-family: "verdana" , sans-serif;"><span style="font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-US" style="text-indent: -18pt;">CFLL is
part of the Growth Hacking toolbox and also leverages “source code as a
marketing tool”, that is making the digital product a marketing and sales
channel for itself.</span></span></li>
<li style="text-align: justify;"><span style="font-family: "verdana" , sans-serif;">Because
social tools are useless without a community, a key task of the CFLL approach
is to grow and nurture a community of engaged users. This is very well
explained by Guy Kawasaki in his book “<a href="http://organisationarchitecture.blogspot.fr/2015/11/innovation-et-entreprenariat.html" style="text-indent: -18pt;">The
Art of the Start</a><span style="text-indent: -18pt;">” :</span><span style="text-indent: -18pt;"> </span><span style="text-indent: -18pt;">Success comes
from fast iterations applied to a rich feedback ; there is no better way to get
this rich feedback than building an “ambassador communities”.</span></span></li>
</ul>
<br />
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<h2 style="text-align: left;">
<br /><span style="font-family: "verdana" , sans-serif;"><b><span lang="EN-US">4. Software is eating the
world</span></b></span></h2>
</div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US">I will conclude this post by stepping back and discussing
about the role of the software factory in the larger software ecosystem</span><span lang="EN-US"> that companies need to be part of, since “<a href="https://www.wsj.com/articles/SB10001424053111903480904576512250915629460">software
is eating the world</a>”. A first logical consequence of Marc Andreessen
observation is that software is everywhere in the companies, with a much larger
footprint than our “traditional information systems”. I use the world “software”
because “digital” is ambiguous. It its broad sense, everything that using bits,
digital information, is part of the “digital world”, hence software is part of
it. In a narrower sense, which is used many companies, “digital” is what
matters to customer, the impact of software, computers, bits … in their daily
lives. Many company separate digital and IT because they use a narrower
definition of digital (with the broader sense, smart factories, IOT, computer-mediated
communication, information systems, web, mobile and cloud services, etc. are
all part of the digital scope). To avoid that confusion, I use the word “software”
as the common root for customer digital, information systems, Internet of
Things, smart control of machines, and digital communication. This helps to understand
that <b>no software factory</b> (in the
digital, IS or other organizations) <b>is
an island. </b> It is part of multiple
ecosystems, internally within the company and externally with other partners
and stakeholders. In a world which <a href="http://informationsystemsbiology.blogspot.fr/2014/04/software-ecosystems-and-application.html">is
dominated by platforms</a>, a software
factory is not only a process that produces code, it is also a host of a
software environment (usually centered around a platform) and an ecosystem
player through API (<a href="https://sproutsocial.com/insights/what-is-an-api/">Application
Programming Interfaces</a>). This also
means that software factories are de facto partners with the company
information systems, while at the same time it is clear that <b>the footprint of software in companies is
growing faster than their information systems</b>. To reuse an old term from
the 2000s, “<a href="https://www.amazon.com/Information-Technology-Chief-Executive-Organization/dp/1438911114/ref=sr_1_4?ie=UTF8&qid=1497771949&sr=8-4&keywords=Yves+CASEAU">shadow
IT</a>” will grow and not shrink in the future.</span></span><span style="font-family: "verdana" , sans-serif;"> </span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">There is indeed a common software ecosystem – of data models, API,
architecture patterns – for each company that requires careful thinking and
management, which comes from a global viewpoint. Platform engineering demands a
common data exchange model (not necessarily a unique data model) as well as
common engineering practices (know-how & culture) for API. In other words, “software
is eating the world” but it will eat better and faster the world of your own
business if you care to manage this emergent process. This is a great
opportunity for information systems (IS) organization to play a “backbone role”
for the various software ecosystems. Many of these software ecosystem issues
are technical (software hosting and security constraints) and architectural
issues (event-driven architecture, distributed data architecture) which require
skills and experience that are part of <a href="http://informationsystemsbiology.blogspot.fr/2009/04/selected-bibliography.html">information
systems DNA</a>. On the other hand, the loose coupling of platforms that are
produced by autonomous teams may be a “new art” for the more traditional IS organizations.
In the digital world, <b>the platform is
the team and the team is the platform</b>: the platform is a live object that
evolves continuously to adapt to its environment. A software platform is not
something that you buy, not even something that you build, but something that
you grow.<o:p></o:p></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ9AOv4hnkXQvBq7rxO6qJIjo1ifGYt1SRkTT-Ba49io8YALGTyHyZwHxWhq5dlaf7T7XJa8TYACrdRdpPn_RRi7HduvS_0FvOHJEaoCXajMUmx3Lq9n-k6PNHffzEvzZryzHdToZqDjQ/s1600/ExponentialOrganizatons.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1500" data-original-width="938" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ9AOv4hnkXQvBq7rxO6qJIjo1ifGYt1SRkTT-Ba49io8YALGTyHyZwHxWhq5dlaf7T7XJa8TYACrdRdpPn_RRi7HduvS_0FvOHJEaoCXajMUmx3Lq9n-k6PNHffzEvzZryzHdToZqDjQ/s320/ExponentialOrganizatons.jpg" width="200" /><span style="font-family: "verdana" , sans-serif; text-align: justify;"> </span></a></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"> I will conclude with a simple but powerful idea: <b>Digital Experience Factories are technology
accelerators</b>, i.e. open ports for a companies to leverage the continuous flow
of exponential innovation. What I mean is that Digital factories are part of <a href="http://informationsystemsbiology.blogspot.fr/2016/05/exponential-information-systems.html">exponential
information systems</a>, they make the edge (the border) of the information
systems that is in contact with consumers, business partners, and innovative
players. In a fast-evolving world, most companies are looking for ways to
become “future-proof”. The architecture of exponential information systems draws
from biology with a core that evolves slower while the frontier (membrane)
evolves at a faster rate from the contact with the outside environment. Digital
Factories are part of this “Fast IT” with a clear opportunity to leverage the
flow of new technologies such as Artificial Intelligence, Machine Learning or
Natural Language Processing. <a href="http://organisationarchitecture.blogspot.fr/2017/05/grec-et-chinois-anticipation-et-agilite.html">As
I explained in a previous post</a>, there are four requirements to harness
these new software techniques:<o:p></o:p></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">A</span><span lang="EN-US" style="text-indent: -18pt;"><span style="font-family: "verdana" , sans-serif;">ccess to
data (intelligent software drinks huge amounts of multi-sourced data)</span></span></li>
<li><span style="font-family: "verdana" , sans-serif;">Use of
modern software stacks (i.e., leverage latest open sources libraries &
APIs</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Autonomous
cross-functional teams</span></li>
<li><span style="font-family: "verdana" , sans-serif;">Lab
culture (fact-based decision and iterations and failure are welcome)</span></li>
</ul>
<br />
<div style="margin: 0cm 0cm 0.0001pt; text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">One can recognize in this list the foundations of the Digital Experience
Factory as explained in the second section :)<o:p></o:p></span></span></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="margin: 0cm 0cm 0.0001pt; text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
</div>
Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com2tag:blogger.com,1999:blog-438942112364524044.post-72983002108882434752017-03-05T02:42:00.002-08:002017-03-05T03:01:18.648-08:00Regulation of Emergence and Ethics of Algorithms<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<h2 style="text-align: justify;">
<b><span lang="EN-US" style="line-height: 115%;"><span style="font-family: "verdana" , sans-serif;">1. Introduction</span></span></b></h2>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US"><br /></span></span>
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US"><a href="http://www.dailymail.co.uk/sciencetech/article-4214264/How-algorithms-secretly-run-world.html">Algorithms governance</a> is a key topic, <a href="http://governingalgorithms.org/">which is
receiving more and more attention</a> as we enter this 21<sup>st</sup> century.
The rise of this complex and difficult topic is no surprise, since “<a href="https://www.wsj.com/articles/SB10001424053111903480904576512250915629460">software
is eating the world</a>” – i.e., the part of our lives that is impacted by
algorithms is constantly growing – and since <a href="http://informationsystemsbiology.blogspot.fr/2015/06/strong-artificial-intelligence-is.html">software
is “getting smarter” every year</a>, with the intensification of techniques
such as Machine Learning or Artificial intelligence. The governance question is
also made more acute since smarter algorithms are achieved through more
emergence, serendipity and weakening of control, following the legendary
insight of Kevin Kelly in his 1995 “<a href="https://en.wikipedia.org/wiki/Out_of_Control:_The_New_Biology_of_Machines,_Social_Systems,_and_the_Economic_World">Out
of control</a>” best seller: “ </span><span lang="EN-US" style="background: rgb(246, 246, 246); line-height: 115%;">«<span class="apple-converted-space"> </span><em>Investing machines with the ability to adapt on
their own, to evolve in their own directions, and grow without human oversight
is the next great advance in technology. Giving machines freedom is the only
way we can have intelligent control</em>. »</span><span lang="EN-US"> Last, the algorithmic governance issue has
become a public policy topic since Tim O’Reilly coined the term “<a href="https://en.wikipedia.org/wiki/Algorithmic_regulation">Algorithmic
Regulation</a>” to designate the use of algorithms for taking decision in
public policy matters.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj85rP5Pu47iFAzoc3UxNyic5ozGF30WnllNhabyrT790g879ljxoXViq52iqk9iW2BHkZUIg-EkdORMITXNwMX1UOkEsqACmuMwUYwDYMRZj52H2px1Ayvjn1F8VQyYsPGPvQw7JgZWGg/s1600/Rapport_Algorithmes.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj85rP5Pu47iFAzoc3UxNyic5ozGF30WnllNhabyrT790g879ljxoXViq52iqk9iW2BHkZUIg-EkdORMITXNwMX1UOkEsqACmuMwUYwDYMRZj52H2px1Ayvjn1F8VQyYsPGPvQw7JgZWGg/s400/Rapport_Algorithmes.jpg" width="282" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><a href="http://thegovlab.org/algorithmic-scrutiny/">Algorithm governance</a> is a complex topic that may be addressed from multiple angles. Today
I will start from the report written by Ilarion Pavel and Jacques Serris “<a href="http://www.economie.gouv.fr/files/files/directions_services/cge/Rapports/2016_05_13_Rapport_Algorithmes(1).pdf">Modalities
for regating content management algorithms</a>”. This report was written at the
request of Axelle Lemaire and focuses mostly on web advertising and
recommendation algorithms. Content management – i.e. deciding dynamically which
content to display in front of a web visitor – is one of the most automatized
and optimized domain of the internet. Consequently, web search and content
recommendation are domains where big data, machine learning and “smart
algorithms” have been deployed at scale. Although the report is focused on
content management algorithms, it takes a broad view of the topic and includes
a fair amount of educational material about algorithms and machine learning. Thus, this report addresses a large number of algorithm
governance issues. It includes five recommendations about algorithm regulation
intended for public governance stakeholders with the common intent of more
transparency and control for algorithms that are developed in the private
sector.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">This short
blog post is organized as follows. The first part provides a very simplified
summary of the key recommendations and the main contribution of this report. I
will focus on a few major ideas which I found quite interesting and
thought-provoking. This report addresses <a href="http://www.lefigaro.fr/secteur/high-tech/2016/12/16/32001-20161216ARTFIG00266-la-france-se-penche-sur-la-regulation-des-algorithmes.php">some
of the concerns that occur from the use of machine learning and artificial
intelligence in mass-market services</a>. The second part is a reply from the
angle of <a href="http://informationsystemsbiology.blogspot.fr/2014/10/big-data-hides-more-than-one-paradigm.html">our
NATF work group on Big Data</a>. As was previously explained, I find that we
have entered a “new world” for algorithms that could be described as “<i>data is the new code</i>”. This cast a
different shadow on some of the recommendations from the Ilarion Pavel & Jacques
Serris report. As algorithms become grown from data sets through training
protocols, it becomes more realistic to audit the process than the result. The
last part of this post talks about the governance of emergence, or how to
escape what could be seen as an oxymoron. The question could be stated as “<b>is there a way to control and regulate
something that we do not fully understand</b> ?”. As a citizen, one expects a
positive answer. Other sciences have learned to cope with this question a long
time ago, since only computer scientists from Silicon Valley believe that we
may control and fully understand life today (these issues arise constantly in
the worlds of medicine, protein design or cellular biology for instance). But
the existence of this positive answer for Artificial Intelligence is a topic
for debate, as illustrated by Nick Bostrom’s book “<a href="https://en.wikipedia.org/wiki/Superintelligence:_Paths,_Dangers,_Strategies">Superintelligence
– Paths, Dangers, Strategies</a>”. To dive deeper into this topic, I strongly recommend the reading of "<a href="http://www.pewinternet.org/2017/02/08/code-dependent-pros-and-cons-of-the-algorithm-age/">Code-Dependent : Pros and Cons of the Algorithmic Age</a>" by Lee Rainee and Janna Anderson<o:p></o:p></span></span></div>
<h3 style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></h3>
<h2>
<b><span lang="EN-US" style="line-height: 115%;"><span style="font-family: "verdana" , sans-serif;">2. Algorithm Regulation</span></span></b></h2>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span>
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">First, I
should start with my usual <i>caveat</i>
that you should read the report versus this very simplified and partial
summary. The five recommendations can be summarized as follows:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Design
a software platform to facilitate the study, the evaluation, and the testing of
content / recommendation algorithms in a private/public collaboration opened to
research scientists</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Create
an algorithm audit capability for public government</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Mandate
private companies to communicate about algorithm behavior to their customers,
through a “chief algorithm officer role”</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Start
a domain-specific consultation process with private/public stakeholders to
formalize what these “smart content management services” are and which best
practices should be promoted nationally or internationally.</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Better
train public servants who use algorithms to deliver their services to citizens</span></li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN_XvLXxn9-zmUMLWGPLL0CvFBgMh-AiF8X5nYXZrmqf5l4-ZpJ03Per9t_pX0FFjOUa9msYXiHMI29FRZc_7WTAYLy-8m1Ca2SoEiCDv4_kK5KUwyGM4uzLyLBRVOAzgIe8ADohHG_jM/s1600/TAI_ai.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN_XvLXxn9-zmUMLWGPLL0CvFBgMh-AiF8X5nYXZrmqf5l4-ZpJ03Per9t_pX0FFjOUa9msYXiHMI29FRZc_7WTAYLy-8m1Ca2SoEiCDv4_kK5KUwyGM4uzLyLBRVOAzgIe8ADohHG_jM/s320/TAI_ai.png" width="320" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">A fair
amount of the report talks about Machine Learning and Artificial Intelligence,
and the new questions that these techniques raise from an algorithm ethic point
of view. The question “how does one know what the algorithm is doing” is
getting harder to answer than in the past. On page 16, the concept of “<b>loyalty</b>” (<i>is the algorithm true to its stated purpose ?</i>) is introduced and
leads to an interesting debate (cf. the classical debate about <a href="https://en.wikipedia.org/wiki/Filter_bubble">the filter bubble</a>). The
authors argue – rightfully – that with the current AI & ML techniques the
intent is still easy to state and to audit (for instance because we are still
mostly in the era of supervised learning), but it is also clear that this may
change in the future. A key idea that is
briefly evoked on page 19 is that machine learning algorithms should be evaluated
as a process, not on their results. Failure to do so is what <a href="http://www.theverge.com/2016/3/24/11297050/tay-microsoft-chatbot-racist">triggered
the drama of the Microsoft chatbot who was made non-loyal</a> (not to say
racist and fascist) through a set of unforeseen bet perfectly predictable
interactions. One could say there is the equivalent of <a href="https://en.wikipedia.org/wiki/Variety_(cybernetics)#The_Law_of_Requisite_Variety">Ashley’s
law of requisite variety</a> in the sense that the testing protocol should
exhibit a complexity commensurate to the desired outcome of the algorithm.
Designing training protocols and data sets for algorithms that are built from
ML to guarantee the robustness of their loyalty is indeed a complex research
topic that justifies the first recommendation.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;">We hear a
lot of conflicting opinions about the threat of missing the train of AI
development in Europe or in France, compared to the US or China. The topic is
amplified by the huge amount of hype around AI and the enormous investments
made in the last few years, while at the same time there seems to be a “</span><b style="font-family: Verdana, sans-serif;">race to open source</b><span style="font-family: "verdana" , sans-serif;">” from the most
notorious players. The authors propose three scenarios of AI development. In
the first scenario, the current trend of sharing dominates and produces
“algorithms as a commodity”. AI becomes a common and unified technology, such
as compilers. Everyone uses them, but differentiation occurs elsewhere. The
second scenario is the opposite where a few dominant players master the smart
systems (data and algorithms) at a skill and scale level that produces a unique
advantage. The third scenario focuses on data ecosystems but recognizes that
the richness and regulatory complexity of data collection make it more likely
to see a large number of “data silos” emerge (larger number of locally dominant
players, where the value is derived more from the data than the AI & ML
technology itself). As will become clear in the rest of this blog, I see the
future as the combination of 2 and 3 : massive concentration for a few topics
(cf. Google and Facebook) that coexists with a variety of data ecosystems (if
software is eating the world and tomorrow’s software is derived from data, this
is too much to chew for a single player, even with Google’s span).</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">A key
principle proposed by the authors is to “embody” the algorithm intent through
the role of “chief algorithm officer”, with the implicit idea that (a)
algorithms have no will or intent of their own, that there is always a human
behind the code (b) companies should have someone who understands what the
algorithm does and is able to explain it to stakeholders, from customer to
regulators. The report makes a convincing case that “writing code that works is
not enough”, the of “chief algorithm officer” should be able to talk about it
(say what it does) and prove that it works (does what is intended). <b>There is no proof, on the other hand, that
this is feasible, which is why the topic of algorithm ethics is so interesting</b>.
The authors recognize on page 36 that auditing algorithms to “understand how
they work” is not scalable. It requires too much effort, will prove to be
harder and harder as techniques evolve, and we might expect some <a href="https://en.wikipedia.org/wiki/Halting_problem">undecidability theorems</a>
to hit along the way. What is required is a relaxed (weaker) mandate for
algorithm regulation and auditing: to be able to audit the intent, the
<a href="https://www.ibm.com/blogs/think/2017/01/ibm-cognitive-principles/">principles</a> that guarantee that the intent is not lost, and the quality of the
testing process. This is already a formidable challenge.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<h2 style="text-align: justify;">
<b><span lang="EN-US" style="line-height: 115%;"><span style="font-family: "verdana" , sans-serif;">3. Data is the New Code</span></span></b></h2>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvT3yBo5_waaIBMzoqOTF45M9To1qhV3CyoBTsJJGDPlIkDQH3VzGvb9jHXoTnTGw_U7O_XEI-P2lIENWl6dvlmXwkLWqLcamavvna-_B2VCPfGco5RgJYeIWkwN60e03mGewxLMCu5KY/s1600/BigDataADT2015.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvT3yBo5_waaIBMzoqOTF45M9To1qhV3CyoBTsJJGDPlIkDQH3VzGvb9jHXoTnTGw_U7O_XEI-P2lIENWl6dvlmXwkLWqLcamavvna-_B2VCPfGco5RgJYeIWkwN60e03mGewxLMCu5KY/s320/BigDataADT2015.jpg" width="225" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">This tagline means that the old separation between data and code is
blurring away. The code is no longer written separately following the great
thinking of the chief algorithm officer and then applied to data. The code is
the result of a process – a combination of machine learning and human learning
– that is fed by the available data. “Data is the new code” was introduced in
our NATF report to represent the fact that when Google values software assets
for acquisition, it’s the quantity and quality of collected data that gives the
basis for valuation. The code may be seen as the by-product of the data and the
training process. There is a lot of value and practical expertise with this training
process, which is why I do not subscribe to the previously mentioned scenario
of “AI as a commodity”. Smart systems is first and foremost an engineering
skill.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">A first consequence is that the separation of the Chief Data Officer
from the Chief Algorithm Officer is questionable. The code that implements
algorithms is no longer static, it is the result of an adaptive process. Data
and algorithms live in the same world, with the same team. It is hard to
evaluate / audit / understand / assess the ethical behavior of data collection
or algorithms if the auditor separates one from the other. Data collection
needs to be evaluated with respect to the intent and the processes that are run
(which has always been the position of the CNIL) and algorithms are – more and
more, this is a gradual shift – the byproduct of the data that is collected. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">Data ethics is also very closely related to algorithm ethics. On page
29, the report tells that bias in data collection produces bias in the
algorithms output. This is true, and the more complex the inference from data,
the more complex tracking these biases may be. The questions about the ethics
of data collection, the quality and the fidelity of the data samples, are bound
to become increasingly prevalent. As explained before, this is not a case where
one can separate the data collection from the usage. To understand fairness –
the absence of biases - , the complete system must be tested. <a href="http://abiteboul.com/PRESENTATION/15AlgoResponsable.full.pdf">Serge
Abiteboul</a> mentioned in one of his lectures the case of <a href="https://econsultancy.com/blog/62699-online-price-discrimination-a-surprising-reality-in-ecommerce/">Staples,
whose pricing mechanism, through a smart adaptive algorithm, was found to be
unfair to poorer neighborhood</a> (because the algorithm “discovered” that you
could charge higher prices when there are fewer competitors around). I
recommend reading the article “<a href="https://www.ftc.gov/system/files/documents/public_comments/2015/10/00032-97823.pdf">Discovering
Unwarranted Associations in Data-Driven Applications with the FairTest Testing
Toolkit</a>” to see what a testing protocol / platform for algorithm fairness
could look like (in the spirit of the first recommendation of the report). The
concept of <b>purpose</b> is not enough to
guarantee an ethical treatment of data, since many experiments show that big
data mining techniques are able to “find private pieces of data from public
ones”, to evaluate features that we not supposed to be collected (no opt-in,
regulated topics) from data that were either “harmless” or properly collected
with an opt-in. Although the true efficiency of the algorithms of “<a href="https://en.wikipedia.org/wiki/Cambridge_Analytica">Cambridge Analytica</a>”
are still under debate, this is precisely <a href="https://motherboard.vice.com/en_us/article/how-our-likes-helped-trump-win">the
method that they propose to derive meaning full data traits from those that can
be collected publicly</a>. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The authors of the report are well aware <b>of the rising importance of emergence in algorithm design</b>. On page
4, they write “<i>one grows these algorithms
more than one writes them</i>”. I could not agree more, which is why I find the
fourth recommendation surprising – it sounds too much of a top-down approach
where data services are drawn from analysis and committees versus a bottom-up
approach where data services emerge from usage and collected data. In the
framework of emergent algorithm design, what needs to be audited is no longer
the code (inside of the box which is becoming more of a black box) but the
emergence controlling factors and the results:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Input
data</span></li>
<li><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Purpose
(intent) of the algorithm</span></li>
<li><span style="font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">“training”
/ “growing” protocol</span></li>
<li><span style="font-stretch: normal; font-variant-numeric: normal; line-height: normal;"> </span><span lang="EN-US" style="font-family: "verdana" , sans-serif; text-indent: -18pt;">Output
data</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">This brings us to our last section:
how can one control the system (delivering a “smart” experience to a
customer) without controlling the “black box” (how the algorithm works) ?<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<h2 style="text-align: justify;">
<b><span lang="EN-US" style="line-height: 115%;"><span style="font-family: "verdana" , sans-serif;">4. How to Control Emergence ?</span></span></b></h2>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO6cLyzCzwsUO_yvtZkci0T8HmcS9mn4T7mHKVD_AIZegwiCP_j-0dUD7JYMA7VZvidcy4L22oPB-OxQAuCvY9Jlom5xLMB-v9i4KNRALETkSa9IrUXWaL6FcFlsGtjnXKCg3pZ0m9jzk/s1600/Emergence.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO6cLyzCzwsUO_yvtZkci0T8HmcS9mn4T7mHKVD_AIZegwiCP_j-0dUD7JYMA7VZvidcy4L22oPB-OxQAuCvY9Jlom5xLMB-v9i4KNRALETkSa9IrUXWaL6FcFlsGtjnXKCg3pZ0m9jzk/s200/Emergence.gif" width="124" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">The third
recommendation tells about <b>the need to
communicate about the way algorithms operate.</b> Following the previous
decomposition, I favor the recommendation on communicating about <b>intent</b>, with the associate capability
(recommendation #2) to audit the loyalty (the algorithm does what its purpose
says). On the other hand, I do not take this literally to explaining how the
algorithm works. This was perfectly achievable in the past, but emergent
algorithm design will make it more difficult. As explained earlier, there are
many reasons to believe that it may simply be impossible from a scientific /
decidability theory view point. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">This is
still a slightly theoretical question as of today, but we are coming fast to a
point when we will truly no longer understand the solutions that are proposed
by the algorithms. Because AlphaGo is using reinforcement learning, <a href="https://www.wired.com/2016/05/google-alpha-go-ai/">it has been able to
synthetize strategies that may be qualified as deceiving or hiding its intent
to the opponent player</a>. But humans are very good at understanding Go
strategies. In the case of the <a href="http://www.independent.co.uk/life-style/gadgets-and-tech/news/ai-poker-win-tournament-software-beats-pro-players-victory-a7555791.html">recent
win of AI in poker tournaments</a>, it is trickier since we humans have a more
difficult time at understanding randomized strategies. We have known this from
game theory and Nash equilibriums for a long time. Pure strategies are easier
to understand but <a href="https://en.wikipedia.org/wiki/Strategy_(game_theory)#Pure_and_mixed_strategies">mixed
strategies</a> are often the winning ones. Some commentators assess that the
domination of the machine over human is even more impressive for Poker than for
Go, which to me reflects the superiority of the machine to handle mixed (i.e. randomized)
strategies. As we start mixing artificial intelligence with game theory, we
will grow algorithms that are difficult to explain (i.e., we will explain the
input, the output, the intent and the protocol, not what the algorithm does).
If one only uses a single AI or machine learning technique, such as deep
learning, it is possible to still feel “in control” of what the machine does.
But when a mix of techniques is used, such <a href="https://en.wikipedia.org/wiki/Evolutionary_game_theory">as evolutionary
game theory</a>, <a href="https://www.researchgate.net/publication/230708329_Generative_Artificial_Intelligence">generative
AI</a>, combinatorial optimization and Monte-Carlo simulation, it become much
less clear. As a practitioner of GTES (<a href="https://www.researchgate.net/publication/301133986_Game-Theoretical_and_Evolutionary_Simulation_A_Toolbox_for_Complex_Enterprise_Problems">Game
Theoretical Evolutionary Simulation</a>) for a <a href="http://www.rairo-ro.org/articles/ro/abs/2009/04/ro0936/ro0936.html">decade</a>,
it is very clear that the next 10 years of Moore Law will produce “smart
algorithms” with deep insights from game theory that will make them able to
interact with their environment – that is, us – in <a href="https://en.wikipedia.org/wiki/Uncanny_valley">uncanny ways</a>.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">I have used
the “backbox” metaphor because a systemic approach to control “smart algorithm”
is <b>containment</b>, that is isolate them
as a subsystem in a “box of constraints”. This is how we handle most of the
other dangerous materials, from viruses to radioactive materials. This is far
from easy from a software perspective, but there is no proof that it is
impossible either. Containment starts with designing interfaces, to ensure what
the algorithm has access to, and what outcome/ suggestions it may produce. The
experience of complex system engineering shows that containment is not
sufficient, because of the nature of complex interaction that may appear, but
it is still a mandatory foundation for safe system design. It is not sufficient
for practical reasons: the level of containment that is necessary for safety is
often in contradiction with the usefulness of the component. Think of a truly
great “strong AI” in a battery powered box with no network connection and a
small set of buttons and lights as an interface. The danger of this
“superintelligence” is contained, but it is not really useful either. The fact
that safety may not come solely from containment is the reason we need complex
/ systemic testing protocols, as explained earlier.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: left;">
</div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;">Another
possible direction is to “</span><b style="font-family: Verdana, sans-serif;">weave</b><span style="font-family: "verdana" , sans-serif;">”
properties into the code of the emergent algorithm. It is indeed possible to
impose simple properties onto complex algorithms, that may be proven formally. </span></div>
<div style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">
The paradox is that there are simple properties of programs, such as
termination, which are undecidable, while at the same time, using techniques
such as <a href="https://en.wikipedia.org/wiki/Abstract_interpretation">abstract
interpretation</a> or <a href="https://en.wikipedia.org/wiki/Model_checking">model
checking</a>, we may formally prove properties about the outputs. For my more
technical readers, one could imagining weaving the purpose of the algorithm
using <a href="https://en.wikipedia.org/wiki/Aspect-oriented_programming">aspect-oriented
programming</a> into a framework that is grown through machine learning. This
is the implicit assumption of the scifi movies about <a href="https://en.wikipedia.org/wiki/Three_Laws_of_Robotics">Asimov’s laws</a>
that are “coded into the robots” : they must be either “weaved” into the smart brain
of the robot or added as a controlling supervisor – precisely the containment
approach, which is always what gets broken in the movie. The idea of being able
to weave “declarative properties” – that capture the intent of the algorithm
and may be audited – into a mesh of code that is grown from data analysis is a
way to reconcile the ambition of the Ilarion Pavel and Jacques Serris report
with the reality of emergent design. This is a new field to create and develop,
in parallel with the development of AI and machine learning in software that is
eating the world. This will not happen without regulation and pressure from the
public opinion.</span></span></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">These are
not theoretical considerations because the need to control emergent design is
happening very soon. Some of these concerns are pushed away by creating
divides: “<a href="https://en.wikipedia.org/wiki/Weak_AI">weak AI</a>” that
would be well controlled versus “<a href="https://en.wikipedia.org/wiki/Artificial_general_intelligence">strong AI</a>”
that is dangerous but still a dream, “<a href="https://en.wikipedia.org/wiki/Supervised_learning">supervised machine
learning</a>” that is by definition under control, versus “<a href="https://en.wikipedia.org/wiki/Unsupervised_learning">unsupervised
learning</a>” which is still a laboratory reseach topic. The reality is very different:
these are not hard boundaries, there is a gradual shift day after day when we benefit
from more computing power and more data to experiment with new techniques.
Designing methods to control emergence requires humility (about what we do not
know) and paranoia (because bad usage of emergence without control or foresight
will happen).<o:p></o:p></span></span></div>
<div style="text-align: left;">
</div>
<div class="MsoListParagraph" style="text-align: justify;">
<br /></div>
</div>
Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com1tag:blogger.com,1999:blog-438942112364524044.post-66098492082077239562016-12-21T00:43:00.002-08:002016-12-21T00:45:16.567-08:00Behavioral Change Through Systemic Games<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
<b><span lang="EN-US" style="line-height: 20.0304px;"><span style="font-family: "verdana" , sans-serif;">1. Introduction</span></span></b></h3>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2C2VnFKSfDd-DGR9O_ma2bBsaQvN2tE-YFo4JL9zrNx1s4c9BH2AA-aWO53St4onFVGSGMKeJCBhjTnlwViJWt9fiuvLRuAx9UNY2YagfDfum09n9OAfp4_SVGJOOmQUhauc8vVRHIiU/s1600/EuroCASE.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="background-color: #f3f3f3;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2C2VnFKSfDd-DGR9O_ma2bBsaQvN2tE-YFo4JL9zrNx1s4c9BH2AA-aWO53St4onFVGSGMKeJCBhjTnlwViJWt9fiuvLRuAx9UNY2YagfDfum09n9OAfp4_SVGJOOmQUhauc8vVRHIiU/s1600/EuroCASE.jpg" /></span></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><span lang="EN-US">I had the privilege last month to give a keynote lecture on “</span><a href="http://www.atv.dk/publikationer/projektmateriale/technology-day-2016"><span lang="EN-US">Big Data, Behavioral Change and IOT Architecture</span></a><span lang="EN-US">” at the Euro-CASE Annal conference on “</span><a href="http://made.dk/aktiviteter/euro-case-annual-conference-2016/"><b><span lang="EN-US">Big Bata – Smarter Products, Better Society</span></b></a><span lang="EN-US">”. You may download the slides </span><a href="http://www.slideshare.net/ycaseau1/big-data-behavioral-change-and-iot-architecture"><span lang="EN-US">here</span></a><span lang="EN-US">. 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 </span><a href="http://informationsystemsbiology.blogspot.fr/2014/10/big-data-hides-more-than-one-paradigm.html"><span lang="EN-US">first part</span></a><span lang="EN-US"> and the </span><a href="http://informationsystemsbiology.blogspot.fr/2015/12/event-driven-architecture-and-biomimicry.html"><span lang="EN-US">last part</span></a><span lang="EN-US"> in previous blogposts, so today I will talk about <b>behavioral change</b>.<br /><br /><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">There is an obvious link between Big Data, Internet of Things and Behavioral Change. Many of the “<i>smarter products</i>” 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 “<i>smart product</i>” subtitle for this conference. However, it turns out that <b>changing behavior is hard</b>, 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.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><span lang="EN-US">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 <b>from data to user-centric design</b> - which was my conclusion at the end of the lecture. Behavioral change requires times, stories and </span><a href="https://en.wikipedia.org/wiki/Emotional_Design"><span lang="EN-US">emotional design</span></a><span lang="EN-US">. Section 3 is a short summary of a <a href="http://www.academie-technologies.fr/en/">NATF</a> 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 <b>adaptive stress</b>. That stress may be relieved if we design digital experiences as learning experiments – quoting from <a href="https://www.youtube.com/watch?v=RViuTHBIOq8">Mary Helen Immordino-Yang</a>, “<i>the goals and the motivations of the digital environment should be readily apparent</i>”. 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 <b>systemic</b> 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.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<h3 style="text-align: justify;">
<span lang="EN-US"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">2. <b>From Data to Knowledge through User-Centric Design</b></span></span></h3>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><span lang="EN-US" style="font-family: "verdana" , sans-serif;">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 </span><a href="http://informationsystemsbiology.blogspot.fr/2016/03/consumer-electronics-technologies-need.html" style="font-family: Verdana, sans-serif;"><span lang="EN-US">previous post</span></a><span lang="EN-US" style="font-family: "verdana" , sans-serif;">, to go further I suggest that you read “</span><a href="http://endeavourpartners.net/assets/Endeavour-Partners-Wearables-White-Paper-20141.pdf" style="font-family: Verdana, sans-serif;"><span lang="EN-US">Inside Wearables - How the Science of Human Behavior Change Offers the Secret to Long-Term Engagement</span></a><span lang="EN-US" style="font-family: "verdana" , sans-serif;">”. Owners of connected devices become bored quickly of their data dashboards, once the excitement of the first days has faded away. The story of </span><a href="http://fortune.com/2016/04/10/wearables-smartwatch/" style="font-family: Verdana, sans-serif;"><span lang="EN-US">wearables that are offered for Christmas and forgotten a few months later</span></a><span lang="EN-US" style="font-family: "verdana" , sans-serif;"> is a perfect illustration. Self-tracking is a good and healthy habit – recommended by psychologists </span><a href="http://gretchenrubin.com/" style="font-family: Verdana, sans-serif;"><span lang="EN-US">in many situations</span></a><span lang="EN-US" style="font-family: "verdana" , sans-serif;"> – but <b>self-tracking without sense does not work </b>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 </span><a href="http://informationsystemsbiology.blogspot.fr/2015/03/internet-of-things-and-smart-systems.html" style="font-family: Verdana, sans-serif;"><span lang="EN-US">smart home connected devices</span></a><span lang="EN-US" style="font-family: "verdana" , sans-serif;">. Remote control and monitoring through your smartphone is not enough value for the connected gadgets that we bring home – often as gifts.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><span lang="EN-US">As expressed in the previous post, <b>connected devices must come with a story and a coach</b>. If we look at the </span><a href="http://www.forestry.gov.uk/pdf/behaviour_review_theory.pdf/$FILE/behaviour_review_theory.pdf"><span lang="EN-US">numerous behavioral change models</span></a><span lang="EN-US">, 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 <a href="https://en.wikipedia.org/wiki/Nassim_Nicholas_Taleb">Nassim Taleb</a>’s wonderful books. I strongly encourage you to read “</span><a href="https://en.wikipedia.org/wiki/Fooled_by_Randomness"><span lang="EN-US">Fooled by Randomness</span></a><span lang="EN-US">”. 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 </span><a href="https://en.m.wikipedia.org/wiki/Transtheoretical_model"><span lang="EN-US">TransTheoretical Model</span></a><span lang="EN-US"> (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.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><b><span lang="EN-US">Behavior change must be approached as a user-centric design challenge</span></b><span lang="EN-US">. The role of biorhythms and chronology is very important. For instance, </span><a href="file:///C:/Users/yves_000/AppData/Roaming/Microsoft/Word/-%09https:/en.wikipedia.org/wiki/Attention_span"><span lang="EN-US">attention span</span></a><span lang="EN-US"> 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 </span><a href="file:///C:/Users/yves_000/AppData/Roaming/Microsoft/Word/-%09http:/www.mrmediatraining.com/2012/08/23/how-many-minutes-is-the-audiences-attention-span/"><span lang="EN-US">of less than 10 minutes</span></a><span lang="EN-US">. 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 </span><a href="http://blogs.ucl.ac.uk/hbrc/2012/06/29/busting-the-21-days-habit-formation-myth/"><span lang="EN-US">controversies</span></a><span lang="EN-US">. Still, it looks like we need two months on average (66 days) </span><a href="http://jamesclear.com/new-habit"><span lang="EN-US">to create a new habit</span></a><span lang="EN-US">, with a “danger zone” of three weeks after the start (21 day) </span><a href="http://www.wsj.com/articles/the-week-your-new-years-resolution-to-exercise-dies-1421703411"><span lang="EN-US">when motivation is at its lowest</span></a><span lang="EN-US">. 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.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz-6uKp2hDOk3NfylBVlU5eTFGshM__OSFe3k7vMumVMS9kIpW8eWSllyig2CiBEAEtAN4mJuG5stkfadPbH-lb-GbL5V9nxJe6w21Q6OHsfoYAT5s4NAmIvdMFTccolmmUDTvJ0MEBIs/s1600/EmotionLearningBrain.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="background-color: #f3f3f3;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz-6uKp2hDOk3NfylBVlU5eTFGshM__OSFe3k7vMumVMS9kIpW8eWSllyig2CiBEAEtAN4mJuG5stkfadPbH-lb-GbL5V9nxJe6w21Q6OHsfoYAT5s4NAmIvdMFTccolmmUDTvJ0MEBIs/s320/EmotionLearningBrain.jpg" width="212" /></span></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><span lang="EN-US">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, “</span><a href="https://en.wikipedia.org/wiki/Descartes'_Error"><span lang="EN-US">Descartes’ Error</span></a><span lang="EN-US">”, we know that emotions play a critical role in our thinking and learning. I am quoting once again from the great book “</span><a href="https://www.learningandthebrain.com/blog/emotions-learning-and-the-brain-exploring-the-educational-implications-of-affective-neuroscience-by-mary-helen-immordino-yang-edd/"><span lang="EN-US">Emotions, Learning and the Brain</span></a><span lang="EN-US">” by Mary Helen Immodino-Yang: “<i>It is literally neurobiologically impossible to build memories, engage complex thoughts, or make meaningful decisions without emotion</i>”. She explains very clearly that “<i><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #333333;">Emotional Learning Shapes Future Behavior</span></i><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #333333;">”: “ <i>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</i>”. The last chapter of the book is entitled “<i>Perspective from Social and Affective Neuroscience on the Design of Digital Learning Experience</i>”. 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: “<i>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</i>”</span><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><b><span lang="EN-US">3. </span></b><b><span lang="EN-US" style="line-height: 20.0304px;">Adaptive Stress Due to Technology Change Rate</span></b></span></h3>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEH1No3ujgQH8zOAYLJxaMpVmzqaFE_3Uuz5I5AJU-5Cj9hjbc6-UbYFHeuQc5kffuTua5Wf3gLFWpzcZOsCVomu1fWBYZgQcdy4fnyDJiAOWmILk2aLM0Kh43KT0JogUdBpGPGyWZL8/s1600/Jaur%25C3%25A9guiberry.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="background-color: #f3f3f3;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnEH1No3ujgQH8zOAYLJxaMpVmzqaFE_3Uuz5I5AJU-5Cj9hjbc6-UbYFHeuQc5kffuTua5Wf3gLFWpzcZOsCVomu1fWBYZgQcdy4fnyDJiAOWmILk2aLM0Kh43KT0JogUdBpGPGyWZL8/s320/Jaur%25C3%25A9guiberry.jpg" width="195" /></span></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><span lang="EN-US">In 2015 the <a href="http://www.academie-technologies.fr/en/">NAFT</a> ICT commission has undergone a series of interviews related to the effects of ICT usage. We interviewed leading sociologists or psychologists, such as </span><a href="https://fr.wikipedia.org/wiki/Francis_Jaur%C3%A9guiberry"><span lang="EN-US">Francis Jauréguiberry</span></a><span lang="EN-US">, </span><a href="https://fr.wikipedia.org/wiki/Dominique_Cardon"><span lang="EN-US">Dominique Cardon</span></a><span lang="EN-US"> or </span><a href="https://en.wikipedia.org/wiki/Serge_Tisseron"><span lang="EN-US">Serge Tisseron</span></a><span lang="EN-US">, 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 </span><a href="https://en.wikipedia.org/wiki/Is_Google_Making_Us_Stupid%3F"><span lang="EN-US">Google was making us stupid</span></a><span lang="EN-US">, 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. <b>Digital usage adds to, but does not replace real life</b>, 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.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><span lang="EN-US">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 </span><a href="https://en.wikipedia.org/wiki/Fear_of_missing_out"><span lang="EN-US">fear of missing out</span></a><span lang="EN-US">). The “</span><a href="https://en.wikipedia.org/wiki/Digital_detox"><span lang="EN-US">digital detox</span></a><span lang="EN-US">” approach is a classical counter-reaction to this feeling.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">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 <b>to give back the sense of “being in charge” with practical training</b>. 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 “<a href="https://en.wikipedia.org/wiki/Mirror_neuron">mirror neurons</a>” 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.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">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 <b>quantified self</b> digital experiences, as presented in Section 2. “Digital” means that data <b>analytics</b> 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 <a href="https://www.smashingmagazine.com/2014/04/rethinking-mobile-tutorials-which-patterns-really-work/">most often fails to deliver the engagement that is needed</a> for behavior change. The real challenge is to design the complete digital experience as a learning journey.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></span></div>
<div class="MsoNormal" style="margin-left: 36pt; text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<h3 style="text-align: justify;">
<b><span lang="EN-US" style="line-height: 20.0304px;"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">4. Adding Pleasure and Learning to Digital Experiences</span></span></b></h3>
<div class="MsoNormal" style="text-align: left;">
</div>
<span style="height: 114px; margin-left: 0px; margin-top: 21px; position: absolute; text-align: justify; width: 220px; z-index: 251659264;"><span style="background-color: #f3f3f3;"><br /></span></span><span style="height: 114px; margin-left: 0px; margin-top: 21px; position: absolute; text-align: justify; width: 220px; z-index: 251659264;"><span style="background-color: #f3f3f3;"> <b><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;"> </span></span></b></span></span><br />
<span style="background-color: #f3f3f3;"><br /></span>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb7ookPcV9hmsZTlCScECrzZl4aSSDCGVbZ2VwH0wTMtcg3OlRg5jP9M3BlQhAKuycKc7Jrsmhzxd03XvhE8-AJ5gvMqou-bk331t2eya6UsOuK-OP1m3dHT7cQV09BEGjLiFBfW6e1uI/s1600/PleasureCycle.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="background-color: #f3f3f3;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb7ookPcV9hmsZTlCScECrzZl4aSSDCGVbZ2VwH0wTMtcg3OlRg5jP9M3BlQhAKuycKc7Jrsmhzxd03XvhE8-AJ5gvMqou-bk331t2eya6UsOuK-OP1m3dHT7cQV09BEGjLiFBfW6e1uI/s320/PleasureCycle.jpg" width="320" /></span></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><span lang="EN-US">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 “<a href="http://johnnyholland.org/2011/01/the-a-b-c-of-behaviour/">The A-B-C of Behaviour</a>” : “<i>Fun is the mean by which we retrain our brain to learn new patterns of behavior</i>”. 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 <a href="https://en.wikipedia.org/wiki/Michio_Kaku">Michio Kaku</a>’s explanation about the evolutionary role of emotions in his book “<a href="https://en.wikipedia.org/wiki/The_Future_of_the_Mind">The Future of Mind</a>”, which I have <a href="http://informationsystemsbiology.blogspot.fr/2015/06/strong-artificial-intelligence-is.html">already mentioned in a previous post</a>. 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</span><span lang="EN-US">: “<span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #333333;">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”.<o:p></o:p></span></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkaGJAvmM5h5wuMYhA57mx89PrUrERuYy0vU7RmXuMhA9armPsZEUznzKgfu2A5yc1DzaQeCVaAM3a2rTAwvV1dEb0_X8BzVSmq2Q2lUoi3u3u5xn_3fX_q-wa3_r5LYbQo_XrXb5jMbA/s1600/PredictablyIrrational.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="background-color: #f3f3f3;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkaGJAvmM5h5wuMYhA57mx89PrUrERuYy0vU7RmXuMhA9armPsZEUznzKgfu2A5yc1DzaQeCVaAM3a2rTAwvV1dEb0_X8BzVSmq2Q2lUoi3u3u5xn_3fX_q-wa3_r5LYbQo_XrXb5jMbA/s320/PredictablyIrrational.jpg" width="212" /></span></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #333333;"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">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. <a href="https://www.ted.com/talks/seth_godin_on_sliced_bread">Seth Godin</a> 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). <a href="http://www.prnewswire.com/news-releases/behavioral-economics-guru-dan-ariely-joins-lemonade-300225226.html">Dan Ariely</a>, in his best-seller “<a href="https://en.wikipedia.org/wiki/Predictably_Irrational">Predictably Irrational – The Hidden Forces that Shape Our Decisions</a>”, explains the importance of <a href="https://whistlinginthewind.org/2013/01/15/predictably-irrational-chapter-4-the-cost-of-social-norms/">social norms</a>. 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”: “<i>Ownership pervades our lives and, in a strange way, shapes many of the things we do</i>”. 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 <a href="https://en.wikipedia.org/wiki/Don_Norman">Don Norman</a>, 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”.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS_UdJHlWr4OXSYiCyzYvsGarFhE5eGGBYdjaH-q5XlgOIr32aEaFsEzyPVsfeGFwyUaXW0D9kdSI4IsUTVXpTvKIsTEeeCcDwILYkHdOI6lfa_PBNlLgLUPwn3_pOIUUIOt36jCPvXKI/s1600/Nudge.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="background-color: #f3f3f3;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS_UdJHlWr4OXSYiCyzYvsGarFhE5eGGBYdjaH-q5XlgOIr32aEaFsEzyPVsfeGFwyUaXW0D9kdSI4IsUTVXpTvKIsTEeeCcDwILYkHdOI6lfa_PBNlLgLUPwn3_pOIUUIOt36jCPvXKI/s320/Nudge.jpg" width="208" /></span></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">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 “<a href="http://faculty.chicagobooth.edu/richard.thaler/research/pdf/smartjpe.pdf">Save More Tomorrow</a>” program showed how to use behavioral economics to increase employee savings. The section about “social nudges” is a source of inspiration for introducing <a href="https://en.wikipedia.org/wiki/Priming_(psychology)">priming</a> 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, <a href="http://www.precisionnutrition.com/research-review-rewards">science shows that it is better to break down into many small rewards than giving a larger one less frequently</a>. 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 “<a href="http://usabilitygeek.com/mobile-app-onboarding-how-to-do-it-right/">progressive onboarding</a>”, 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 href="https://www.usertesting.com/blog/2015/11/11/user-onboarding-techniques-for-mobile-apps/">a tool tip is a tiny piece of information that is presented at the right time, according to the usage context</a>).<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHPuycaUFKXckgBLrhlNMOZQ5p5DGhpEe3aQtpwbcP1f6uA-uJxK4iIiYolANxquDxGOOIM8qeqYs_uyz5YTH7CkEK2j-aJwDSGN2rGX2HCigDb96uQhYNEuzClmaqAqhDP_wbTyQDCbE/s1600/ThinkingFastSlow.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="background-color: #f3f3f3;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHPuycaUFKXckgBLrhlNMOZQ5p5DGhpEe3aQtpwbcP1f6uA-uJxK4iIiYolANxquDxGOOIM8qeqYs_uyz5YTH7CkEK2j-aJwDSGN2rGX2HCigDb96uQhYNEuzClmaqAqhDP_wbTyQDCbE/s1600/ThinkingFastSlow.jpg" /></span></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><span style="font-family: "verdana" , sans-serif;">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 </span><a href="https://en.wikipedia.org/wiki/Daniel_Kahneman" style="font-family: Verdana, sans-serif;">Daniel Kahneman</a><span style="font-family: "verdana" , sans-serif;"> and his wonderful book “</span><a href="https://en.wikipedia.org/wiki/Thinking,_Fast_and_Slow" style="font-family: Verdana, sans-serif;">Thinking, Fast and Slow</a><span style="font-family: "verdana" , sans-serif;">”</span><span style="font-family: "verdana" , sans-serif;"> </span><span style="font-family: "verdana" , sans-serif;">(which I have commented in a </span><a href="http://organisationarchitecture.blogspot.fr/2012/09/regles-simples-et-situations-complexes.html" style="font-family: Verdana, sans-serif;">previous blog post</a><span style="font-family: "verdana" , sans-serif;">). This book contains wonderful examples related to “</span><i style="font-family: Verdana, sans-serif;">the marvels of priming</i><span style="font-family: "verdana" , sans-serif;">”. For instance, hearing about other people changes your own ability : “</span><i style="font-family: Verdana, sans-serif;">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</i><span style="font-family: "verdana" , sans-serif;">”. Kahneman also illustrate our aversion to loss, which is closely related to the emotion of ownership : “</span><i style="font-family: Verdana, sans-serif;">We should not be surprised: losses evoke stronger negative feelings than costs. Choices are nor reality-bound because System 1 is not reality-bound</i><span style="font-family: "verdana" , sans-serif;">”. He explains a number of “fallacies” (in the sense of the “narrative fallacy” of Taleb), such as the availability biais (</span><a href="https://jeffreysaltzman.wordpress.com/2013/04/08/wysiati/" style="font-family: Verdana, sans-serif;">WYSIATI</a><span style="font-family: "verdana" , sans-serif;"> : What you see is all there is). The insights of “</span><i style="font-family: Verdana, sans-serif;">the law of small numbers</i><span style="font-family: "verdana" , sans-serif;">” 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: “ </span><i style="font-family: Verdana, sans-serif;">It was evident that the experts paid insufficient attention to sample size</i><span style="font-family: "verdana" , sans-serif;">”. </span><span style="font-family: "verdana" , sans-serif;"> </span><span style="font-family: "verdana" , sans-serif;">The list of biases from System 1 (our fast thinking process, cf. “</span><a href="https://en.wikipedia.org/wiki/Blink_(book)" style="font-family: Verdana, sans-serif;">Blink</a><span style="font-family: "verdana" , sans-serif;">” from Malcom Gladwell) is summarized on page 105; this list is quite useful to improve the design of behavior change experiences. The combination of </span><a href="https://en.wikipedia.org/wiki/Framing_effect_(psychology)" style="font-family: Verdana, sans-serif;">framing</a><span style="font-family: "verdana" , sans-serif;"> (using the power of words and emotion to</span><span style="font-family: "verdana" , sans-serif;"> </span><span style="font-family: "verdana" , sans-serif;">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.</span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US" style="background-color: #f3f3f3; line-height: 20.0304px;">5. <b>Behavior Change as a Systemic Game</b></span></span></h3>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "verdana" , sans-serif;"><span lang="EN-US" style="background-color: #f3f3f3; line-height: 17.12px;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG3CzC0ZZxECfpy5UKrK0ikyeHyZzA7tKLE_aaJZEBGjLpJ5u6ymvHoJ_at_Hq67nTi-s92RZHdjjF-Si9SuOBohvOKAvgXxs051PrIsEyTIsxbbRWkWmipmQDJdjZ40AfjlG9xU58s_0/s1600/WhyKleinberg.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><span style="background-color: #f3f3f3;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG3CzC0ZZxECfpy5UKrK0ikyeHyZzA7tKLE_aaJZEBGjLpJ5u6ymvHoJ_at_Hq67nTi-s92RZHdjjF-Si9SuOBohvOKAvgXxs051PrIsEyTIsxbbRWkWmipmQDJdjZ40AfjlG9xU58s_0/s320/WhyKleinberg.jpg" width="213" /></span></a></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><span lang="EN-US"><span style="font-family: "verdana" , sans-serif;">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 “<b>game to learn about yourself</b>”. 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). </span></span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #333333; font-family: "verdana" , sans-serif;">Data Science is very relevant to develop such “serious games”. Machine learning algorithms are known to <a href="https://www.mapr.com/blog/The-Big-Data-Trains-Next-BIG-Destination-Cognitive-Analytics">provide predictive, prescriptive and cognitive knowledge from data</a>. <b>Predictive analysis</b> 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. <b>Prescriptive analytics</b> 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 <b>cognitive analytics</b> is about helping the user learn about herself.</span><span lang="EN-US" style="font-family: "verdana" , sans-serif;"> To build such a self-learning experience and to understand the related challenges of behavior change motivation, the book from <a href="http://www.skleinberg.org/">Samantha Kleinberg</a>, “<a href="http://insidebigdata.com/2016/04/21/book-review-why-a-guide-to-finding-and-using-causes/">Why – A Guide to finding and using causes</a>”, 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: “<i><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #333333;">many cognitive biases lead to us seeing correlations where none exist because we often seek information that confirms our beliefs</span></i><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #333333;">”; ”<i>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</i>” and “<i>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</i>”. 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: “<i>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</i>”. It is also a comprehensive source about the art of <b>explanations</b>, which is closely related to learning.</span></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><span lang="EN-US">The game paradigm implies <b>that you learn by doing</b>. 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 <b>self-tracking is good for you if you have the discipline for it</b>. There are multiple references in all kinds of disciplines, from <a href="http://www.wellscotland.info/guidance/How-to-measure-mental-wellbeing">mental health</a> and psychology to <a href="https://www.completehumanperformance.com/self-monitoring-weight-loss/">dieting</a> or quitting smoking, including sports coaching. Quoting from another best-seller from Gretchen Rubin: “<i><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;">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</span></i><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;">.</span>” 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.</span><o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-US"><span style="background-color: #f3f3f3; font-family: "verdana" , sans-serif;">Let us conclude with the observation that systemic games for behavior change fit squarely in the field of P4 (<b>Predictive, Preventive, Personalized, and Participatory</b>) <a href="https://www.systemsbiology.org/research/p4-medicine/">medicine</a>. 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. <b>Personalized medicine is, actually, more concerned with small data than big data</b>.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 36pt; text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<div class="MsoNormal" style="margin-left: 36pt; text-align: justify;">
<span style="background-color: #f3f3f3;"><br /></span></div>
<span style="background-color: #f3f3f3;"><br /></span>
<div style="text-align: left;">
</div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<span style="background-color: #f3f3f3;"><br /></span>
<div class="MsoNormal" style="-webkit-text-stroke-width: 0px; color: black; font-family: "Times New Roman"; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; margin-left: 36pt; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<div style="margin: 0px;">
<span style="font-family: "verdana" , sans-serif;"><br /></span></div>
</div>
</div>
Yves Caseauhttp://www.blogger.com/profile/04812034190333969728noreply@blogger.com2