{"id":2303,"date":"2017-01-23T21:14:38","date_gmt":"2017-01-23T19:14:38","guid":{"rendered":"http:\/\/asym.dk\/?p=2303"},"modified":"2017-01-23T21:14:38","modified_gmt":"2017-01-23T19:14:38","slug":"where-might-the-black-swans-be-lurking","status":"publish","type":"post","link":"http:\/\/www.asym.dk\/index.php\/2017\/01\/23\/where-might-the-black-swans-be-lurking\/","title":{"rendered":"Where might the Black Swans be lurking?"},"content":{"rendered":"<p><em><strong>Summary:<\/strong><\/em> <i>Last year in September, I <a href=\"https:\/\/youtu.be\/zkJYo-FVP4s\">spoke<\/a> at Anna Royzman\u2019s New Testing Conference \u201cReinventing Testers Week\u201d in New York about testing in Black Swan domains. The title of the talk refers to Nassim Taleb\u2019s book \u201cBlack Swan\u201d and concerned testing in contexts where improbable risks can have disproportionate effects. This blog contains an <a href=\"https:\/\/wotblack.wordpress.com\/2017\/01\/06\/call-for-participation-for-the-first-workshop-on-testing-in-black-swan-domains-wotblack\/\">invitation to a peer conference<\/a> in New York on the subject Sunday April 30th.<\/i><\/p>\n<hr \/>\n<p>Sometimes things happen which appear to be beyond &#8220;the possible\u201d.<br \/>\nThis awareness haunts us in testing: We aim to get those important bugs to materialize. We want to qualify real and serious risks. Yet,\u00a0our stakeholders\u00a0have to accept that no matter how much testing is done, we cannot cover everything.<br \/>\nLogically, testing has to be focused on what is important to the business, and what might go wrong in reality. To me, that is at the core of risk based testing.<br \/>\nBut saying that is one thing; doing it in reality is quite another. Certain risks seem almost impossible to qualify through testing. How should our stakeholders interpret the absence of clear testing results, for example, when we are trying our best to dig out quality information about quality? Could there be a serious problem lurking? The thought may seem paranoid, but experience shows it is\u00a0not.<br \/>\nYears ago, I read <a href=\"https:\/\/en.wikipedia.org\/wiki\/The_Black_Swan_(Taleb_book)\">Nassim Taleb&#8217;s \u201cThe Black Swan &#8211; The Impact of the Highly Improbable\u201d<\/a>. The book blew my mind and set me on a path to find out what we can do in testing about what he writes about.<br \/>\nThe book is about \u201cthe random events that underlie our lives, from bestsellers to world disasters. Their impact is huge; they\u2019re nearly impossible to predict; yet after they happen we always try to rationalize them.\u201d (from the backcover of the 2010 paperback edition)<br \/>\nAs an engineer and a human, I think testers and test managers should not give up and leave to product owners, project managers or developers to interpret testing results take care of potential Black Swans. As a tester, I wish to embrace the possibility of Black Swans <strong>and<\/strong> do quality testing with the aim to qualify them.<br \/>\nI think, however, that we\u00a0need new models in testing. The problem is that most of our techniques and heuristics tend to support us best on the functional testing level.<\/p>\n<h2>Accident Focused Testing?<\/h2>\n<p>The first part in solving a problem is accepting it. It sounds basic, but acceptance implies understanding what we are dealing with.\u00a0Reading Talebs book asserted to me that we have to accept the fact that really bad things can happen in the world. Knowing what I do about information technology, I appreciate that his philosophy can be applied on technology. I also believe that the functional testing will not help us muc.<br \/>\nMentally examining what I do as a tester, I understood that the idea of Black Swans is fundamental to the very nature of what we do and the systems we work with.<br \/>\nThat much about acceptance.<br \/>\nThe problem is that in some contexts &#8211; banking, healthcare, industrial plant management, safety systems, public sector, transportation etc &#8211; accidents and Black Swans could be of a nature where they cause irrecoverable losses, set lives at stake or otherwise be fundamentally unacceptable.<br \/>\nLet me give an example:<br \/>\nI recently came across a story of an interesting IT breakdown in a hospital in Sweden. It concerned something most people do on a regular basis: Apply the newest updates to our pc\u2019s.<br \/>\nAs updates were rolled out in the hospital, performance of pc\u2019s started degrading. During the rollout the problems became worse, and before the rollout could be stopped all computers in the hospital became useless.<br \/>\nNow that the computers stopped working, undoing the rollout became extremely difficult and had to be carried out manually, one pc at a time.<br \/>\nIn the end it took IT-operations several days to get everything back to normal. Meanwhile the hospital had to be run &#8220;on paper&#8221;.<br \/>\nThe hospital used an uncommon Windows network configuration, which is not recommended by Microsoft which in combination with the Microsoft update triggered a problem in the network. What is interesting here is not the root cause, however: The outcome of a seemingly trivial update in a complex system turned out very bad.<br \/>\nIt is easy to imagine how the stress experienced by doctors and nurses due to this situation could have affected patients. Someone could have been hurt.<br \/>\nWe can shrug and blame Microsoft or the hospital IT operations. However, as skilled testers, I think we need to be able to provide some kind of answer as to how we can constructively contribute\u00a0to hospital safety by qualifying even Black Swan-types of risks.<\/p>\n<h2>Systemic risks<\/h2>\n<p>Before moving on, let me dive into the subject of risk. Risk is something we all talk about, but do we really\u00a0know what it means? I&#8217;m not sure. Risk is a common thing to talk about, but the <strong>concept of risk<\/strong> is in no way simple.<br \/>\nThere seems to be at least three &#8220;risk domains&#8221; in software projects:<\/p>\n<ul>\n<li>Some risks concern <strong>plans and schedules<\/strong>. Will the project be done on time and budget? That\u2019s what we usually call \u201cproject risks\u201d.<\/li>\n<li>Other risks concern the <strong>product or system<\/strong> under development: Will it do what it is conceived to do? Will it do it correctly? These are called \u201cproduct risks\u201d.<\/li>\n<li>Then there is a third class, a class of risks of a different nature:<strong> Systemic risks<\/strong>. They exist by combinations of systems, users, data, and environments.<\/li>\n<\/ul>\n<p>Black Swans lurk in all three: Even simple products or components\u00a0can sometimes fail in strange ways with huge impact. Just think of the defective Galaxy Note 7 <a href=\"https:\/\/www.theguardian.com\/technology\/2017\/jan\/23\/samsung-blames-faulty-batteries-for-causing-galaxy-note-7-fires\">battery problem<\/a>, which was only a manufacturing problem with the battery, but one which has caused lots of harm to Samsung.<br \/>\nBlack Swans are sometimes annoyingly simple.<br \/>\nBut those kinds of Black Swans can be prevented by stricter quality control\u00a0and similar tradtional measures. Project- and product risks are usually relatively easy to deal with using appropriate care in the context.<br \/>\nSystemic risks are different. They seem much more troublesome &#8211; and in some ways more interestng.<\/p>\n<h2>From simple to complex<\/h2>\n<p>Back in the early days of computing, I think systemic risks used to be rather uninteresting. Systems were simply&#8230; simple. Developing a new product, we would sometimes work to make sure usability was good, or the machine which the computer system was designed to control would work as a whole.<br \/>\nBut that was it. Interfaces and interactions to other systems and contexts could be counted on one hand and there were usually very few connections to other computer interfaces etc.<br \/>\nIf you have been interested in risk in software, you may have read about the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Therac-25\">Therac-25 accident<\/a>. If not, let me summarize: A difficult-to-find multi-tasking bug in the control software of a radiation therapy machine turned out to be the root cause of apparantly random radiation burns of cancer patients placed in the machine for treatment. Some of these burns were fatal.<br \/>\nObviously a Black Swan: A difficult-to-find bug in a lacking design.<br \/>\nThe system was simple, however as there was only four components in the system: The user, the user interface software, the machine control software, and the machine itself. Of course there was also the patient, victims of the accidents, but they were only victims, receivers of the problem. (Some victims attempted to provide feedback though.)<br \/>\nThe issue turned out to be a simple multitasking problem, where experienced operators who were fast on the keyboard used to control the machine could cause the software to enter illegal states. I.e. a software engineering problem.<br \/>\nToday, however, complexity is increasing. To me at least, it seems our industry has crossed a boundary: The number of components that work together in complex ways to realize important business functionality has grown significantly. While counting can never tell the truth, it is worrying that modern systems can be comprised of 10\u2019s, even 100\u2019s of components that are assumed to work seamlessly together on sunny days. Often no-one knows what will happen when the sun goes away and rain comes, so to speak.<br \/>\nSystemic risk in IT systems is no longer something that can be excluded from risk analysis and managed technologically.<br \/>\nSo why are we not spending more time testing based on systemic risk analyses?<\/p>\n<h2>Explore the whole picture<\/h2>\n<p>Some readers might think of the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Cynefin_framework\">Cynefin framework<\/a>, and yes, I think it certainly appears promising as Cynefin provides a thought framework for understanding complex and complicated systems.<br \/>\nI went by a different path, however,\u00a0when I explored the situation: I looked at safety engineering and mechanical safety analysis. I can recommend two books in particular:<\/p>\n<ul>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Normal_Accidents\" target=\"_blank\" rel=\"noopener noreferrer\">Normal Accidents<\/a> by sociologist Charles Perrow<\/li>\n<li><a href=\"https:\/\/www.cambridge.org\/core\/books\/human-error\/281486994DE4704203A514F7B7D826C0\" target=\"_blank\" rel=\"noopener noreferrer\">Human Error<\/a> by psychologist James Reason<\/li>\n<\/ul>\n<p>(In a later blog post, I&#8217;ll come back to what a found in these two books, but you can get a peek of it in the presentation recording at the bottom of this blog. I\u2019ll certainly also be coming back to Cynefin as it seems promising.)<br \/>\nBut there might be a bigger problem to address too as it seems there is a management problem worsening the situation:\u00a0Testers very often do not\u00a0receive sufficient\u00a0freedom to test the \u201cbig picture\u201d.<br \/>\nWhen have you last heard of a tester tasked to test a product in complete integration with real users for a long time? I&#8217;d like to hear about examples of it, as very often, when I talk to people, I hear about\u00a0product owners, project managers or C-level managers deciding and controlling tightly\u00a0what should be tested.<br \/>\nAnd risk reporting to the rest of the organization is filtered through these levels.<br \/>\nFocus is too often only\u00a0on going live <strong>on time<\/strong>, <strong>on schedule<\/strong>, no matter what. Too seldomly on qualifying complex or systemic risks.<br \/>\nI think testers should be tasked to explore the <strong>dynamics<\/strong> of the product in contexts <strong>resembling the real world<\/strong>.<\/p>\n<h2>Speaking about testing in a Black Swan Domain<\/h2>\n<p>I spoke about this first time at the first Let\u2019s Test conference in 2012 in Stockholm (<a href=\"http:\/\/lets-test.com\/wp-content\/uploads\/2012\/05\/Testing-in-the-Black-Swan-Domain-Lets-Test-2.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">slides<\/a>\u00a0&#8211; PDF) and second time in September 2016 at the New Testing Conference during \u201cReinventing Testers Week\u201d in New York. Scroll down to see a recording of the\u00a0latter presentation.<br \/>\nThe feedback I received at those two events has confirmed to me that this is a subject that needs exploration.\u00a0Our craft can be advanced to\u00a0go below the functional, performance, or usability perspectives. New models in testing, heuristics and even types of testing strategies can be developed, I think.<br \/>\nGoing alone can be difficult, and I\u2019m therefore extremely grateful to have\u00a0received moral backing from both <a href=\"https:\/\/twitter.com\/michaelbolton\" target=\"_blank\" rel=\"noopener noreferrer\">Michael Bolton<\/a> and <a href=\"https:\/\/twitter.com\/FionaCCharles\" target=\"_blank\" rel=\"noopener noreferrer\">Fiona Charles<\/a>.\u00a0Additionally, <a href=\"https:\/\/twitter.com\/QA_nna\" target=\"_blank\" rel=\"noopener noreferrer\">Anna Royzman<\/a> has agreed to co-host a peer workshop on the subject in New York with me in connection with her <a href=\"http:\/\/www.testmastersacademy.org\/index.html\" target=\"_blank\" rel=\"noopener noreferrer\">May conference<\/a>.<br \/>\nI find New York an interesting place for a few reasons:<\/p>\n<ul>\n<li>It is where I talked about the subject last time.<\/li>\n<li>Nassim Taleb lives in New York.<\/li>\n<li>It is a very big city, so big, that it\u2019s even difficult to comprehend for someone like me who comes from a little county with less than half the population of it. New York is seems a complex system beyond imagination.<\/li>\n<li>It is the world\u2019s financial centre, and some of the systems running that are extremely complex. I try not to think about what types of systemic risk they manage on a daily basis.<\/li>\n<\/ul>\n<p>If you are interested, feel you have something to contribute with, have time, etc, it would be great to see you at the first <a href=\"https:\/\/wotblack.wordpress.com\/2017\/01\/06\/call-for-participation-for-the-first-workshop-on-testing-in-black-swan-domains-wotblack\/\">WOTBLACK: Workshop on Testing in Black Swan Domains<\/a> on Sunday April 30th in New York.<br \/>\nThe objective?<br \/>\n<strong>Advance the testing craft by co-developing and sharing models, heuristics, and strategies.<\/strong><br \/>\nWrite me an <a href=\"mailto:ad@asym.dk\">e-mail<\/a> if you\u2019re interested in participating, or <a href=\"https:\/\/twitter.com\/andersdinsen\">ping me on twitter<\/a> if you feel you have something to share now or wish to start a discussion about the subject.<br \/>\n<iframe title=\"Anders Dinsen &quot;Testing in a Black Swan Domain&quot;.\" width=\"580\" height=\"326\" src=\"https:\/\/www.youtube.com\/embed\/zkJYo-FVP4s?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last year in September, I spoke at Anna Royzman\u2019s New Testing Conference \u201cReinventing Testers Week\u201d in New York about testing in Black Swan domains. The title of the talk refers to Nassim Taleb\u2019s book \u201cBlack Swan\u201d and concerned testing in contexts where improbable risks can have disproportionate effects. This blog contains an invitation to a peer conference in New York on the subject during the weekend of April 29th and 30th.<\/p>\n","protected":false},"author":1,"featured_media":2319,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2,3],"tags":[14,55,97],"_links":{"self":[{"href":"http:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/posts\/2303"}],"collection":[{"href":"http:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/comments?post=2303"}],"version-history":[{"count":0,"href":"http:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/posts\/2303\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/media\/2319"}],"wp:attachment":[{"href":"http:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/media?parent=2303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/categories?post=2303"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/tags?post=2303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}