Skip to main content

Cynefin beginnings

Cynefin was on my radar ever since I joined The House. It seemed an interesting idea worthy of further pursuit, therefore I decided to visit a training on this topic in London this April.

Cynefin - my amazing drawing


My first thought was  "What I'm doing here?!" - the other attendees were a mix of scrum masters, project managers and similar sort, which was actually to be expected. Cynefin is a decision-making framework which seems to be applicable mainly in management, but my firm belief is that testing can benefit from it equally.
My goal was, however, to find out more about Cynefin and how to apply it to my work as a software tester. I expect it will take some time to my thoughts on this fully settle and I get the whole picture from this training. My colleagues got already some very good insights from cynefin, my goal is to follow this path. The purpose of this blog is to summarize my thoughts on this so I can revisit later in my life and maybe see how much my understanding changed.

Finding out in which domain you are is not easy

We were told many stories and examples of real situations which belonged to particular domains of Cynefin, but when I ask myself the question: 'With the information at hand, would you have certainty you can correctly identify the domain in which you are?', I cannot often answer positively.

Knowing the Cynefin model and some tools from here will however certainly help.

Categorize all the things

I can suddenly fit many aspects of my life into cynefin. On this place you probably expect me mentioning software testing as part of the complex domain. This would be too predictable.
My example is martial arts
Simple - drilling, practicing techniques (or katas, forms)
Complicated -  theory, getting guided by the teacher/coach/trainer, attending a seminar
Complex - sparring, positional sparring, every aspect which outcome is not clear and you learn by playing/doing rather than repeating
Chaotic - I imagine here a potential brawl on the street - a very chaotic situation where acting is highly superior to any probing or analysis

Sometimes this can help to find out which approach will help you get better fast, there is even a guy who basically advocates for a BJJ as complex domain (even he does not use these terms)

Using actions from different domains can be detrimental

Very roughly said:
  • If you apply techniques from a 'higher' domain to a 'lower' one (for example complicated practices into a simple domain), you will be ineffective - basically an overkill
  • If you, however, think and act as in a lower domain as you really are (acting as in complicated when you are really in complex domain), you are writing a recipe for disaster
  • Being off by two or more domains (simple <-> complex, simple <-> chaotic) - big trouble incoming
Acting wrong in any situation is overall a bad idea. My point here is to be cautios about your confidence in any approach. At least before you have confidence about the nature of the system you are dealing with.

Bonus - my notes from the workshop.


Comments

Popular posts from this blog

When to start automation?

If you are asking this as a tester, you probably asking too late. Automation is something that can save you some portion of your work (understand resources for your client) and i rarely found cases of testing work that did not need at least some portion of automation. I know that it is rarely understood that automation is something to be developed & maintained and if you cover enough of the application, you do not need any more regression - well i do not think that somebody has done an automation regression suite that if fully reliable (i am not speaking about maintaining this code - which is another topic). There can be always a bug (or quality issue) that slips through, even when you scripts go through the afflicted part. I understand that many testers have no development background or skills, but i doubt the developers that could help you are far away. I am not assuming that they can do the scripts for you.... However if they understand what you need, they can say how e

Thrown into automation

Situation & Problem I was thrown into an automation test project. Concretely test automation of 3 different applications (different in purpose, look, structure, behavior) which regression testing was covered only by a automation test suite that was written in AutoIt and the size of the code was quite complex and huge for a new person in the automation. Well, that was not the problem, it is a description of the situation. The problems weren't initially visible. I was never automating before, so I needed to learn quite a bit of the code & got to know all the applications that were part of the project. The problems were not so appealing at the start, but I would formulate then as: Maintenance of the scripts took too long By new versions of the application, it took some time to adjust the scripts to the changes This caused delay in information flow from testers to managers & developers The changes in the application were not clearly communicated to testers

Mandelbug - bug, who didn't want to be found

Returning from holiday recently, I was expecting a calm day of catching up and doing some basic tasks. The opposite was true, this day I was introduced to a situation which puzzled us for two weeks. Situation We have been reported that Android sometimes get the wrong reply to a particular GET requests. Ok, let us investigate, I got this, will be quick... Reproducibility The bug is up till now non-deterministic to us. We were firstly not able to find the determining factor, it just occasionally occurred, persisted for some minutes (maybe up to half an hour) and then disappeared without a trace. This made the investigation and also any communication much harder. This happened for both iOS and Android apps. We got ourselves here a Mandelbug: A bug whose underlying causes are so complex and obscure as to make its behavior appear chaotic or even non-deterministic First hypothesis We have decided to focus only on the android part. A debugging proxy was attached shortly for c