images

images

 

 

 

 

Hello Everyone, my name is Dmitry Vostokov and today I make the first step towards a philosophy of software diagnostics. I decided to keep this presentation as short and simple as possible without using specialized philosophical jargon. If anything needs to be added or modified in the future I create another version of it. This is also the part one of the introduction because as a practicing software diagnostician I didn't have much time to process and include all material that I planned initially. So I promise to deliver the subsequent parts later. In this part we cover mostly phenomenological and hermeneutical approaches to software diagnostics and leave analytical approaches for the second part.

images

 

 

 

 

Let me prefix the presentation by extending thoughts of the great Roman physician and philosopher Galen to software diagnostics.

images

 

 

 

 

These prerequisites are very simple and I suppose you all, like me, enjoy diagnosing software problems, troubleshooting and debugging. Also philosophical attitude presupposes interest in deep meta-questions. In our interpretation of meta-, “What is a problem here?” is a question, but “What is a problem?” is a meta-question.

images

 

 

 

 

Our goal is to synthesize the philosophy of software diagnostics from the software diagnostics practice itself.

images

 

 

 

 

Before we start with philosophy I would like to remind you about a definition of software diagnostics that we put forward in our previous webinars. Notice the appearance of a word “pattern” here. So what is a pattern then?

images

 

 

 

 

The definition of a diagnostics pattern is more general because it applies not only to software artifacts but to hardware and software diagnostics itself and if you'd like it can be applied to general diagnostics as well. Notice also the appearance of a word “problem” here. Obviously, in the previous definition the so called “abnormal software structure and behavior” is also some kind of a problem. Therefore, to understand a diagnostics thought process and diagnostics patterns we need to ask a further question.

images

 

 

 

 

There are many definitions of a problem especially from the problem solving perspective. But a diagnosis is not a problem solving and before doing correct diagnosis we must be sure that we have a right problem but to find out whether we have a right problem we need to perform a correct diagnosis. Vicious circle. So we need a very simple definition of the problem that doesn't involve a diagnosis. We consider problems from human computer interaction first because such interactions are everywhere and involve everyone including the vast industry of software support. In order to find out the best definition we opened Historical Thesaurus of the Oxford English Dictionary, 2 volume set.

images

 

 

 

 

Historical thesaurus shows the concept variations in time and adds an additional dimension to the meaning and can be a source of new ideas. On the slide I put an excerpt from different domains. The main meaning there is “Difficulty”. We have a problem when we have difficulty while interacting with software. We consider enquiry, questioning and discussion later. With such a definition if we have a memory leak but if it is going unnoticeable we don't have a problem. Notice the abbreviation of problem as prob and use it as such in mathematics. To differentiate our problem from any other definition we came up with a new word for it.

images

 

 

 

 

We call it prob-lemma. What is a lemma part? In mathematics, lemma is defined as a proven proposition which is used as a stepping stone to a larger result. In our context it is a tentative proposition about a probable problem. It is often a case that a problem disappears before diagnostics starts or is relative or stems from software user misunderstanding. We define prob-lemma as a pair: it is an issue for a software user (difficulty) but an understanding of it is absent or vague or incomplete. Tilde here means a negation, a negation of understanding of the issue. The first time I see my Russian roots help me in problem solving, in problem solving the problem of the problem.

images

 

 

 

 

Sometimes we are lucky and understand a problem but most of the time we don't have its understanding.

images

 

 

 

 

The key to understanding is a projection of a problem to patterns. But not all patterns are good for understanding. We need…

images

 

 

 

 

…patterns in artefacts. By an artefact we mean a memory dump, or live memory (which is a sort of a memory dump), software traces and logs whose messages can be considered as fragments of memory similar to memory dumps. And so we come to a second concept called…

images

 

 

 

 

Da- in da-sign means a dump artefact and a -sign part means just a sign, a pattern. If we able to get a collection of da-signs for a prob-lemma we get full understanding of an original problem. You may have noticed that Da-sign is similar to Da-sein introduced in influential “Being and Time” philosophical log from Martin Heidegger, a German philosopher. It means “being there”, a peculiar human being whose being is an issue for it and it has an understanding of it. In our context da-sign means “a sign there, in a dump”, a peculiar software structure and behaviour sign that we are aware of and have an understanding of it. Note a word “understanding here”. We now come to the question of understanding. But before we consider understanding we would like to note that da-signs are not floating in isolation. We need a meaning-structure for them.

images

 

 

 

 

We call it CARE. Originally it meant crash analysis report environment or computer analysis report analysis. Da-signs are themselves meaning-patterns and CARE is their underlying meaning-structure. Now we continue with the question of Understanding.

images

 

 

 

 

Software Diagnostics is a practice and based on a dialog, understanding and interpretive interactions between a software diagnostician and a software user. Such meetings and dialogs are even more important in the case of remote interactions.

images

 

 

 

 

Here on this diagram I depicted possible interaction parties. For large software vendors and their customers there can be even more intermediate interactions until finally an artefact is opened in some analysis tool. There can be several software diagnostics practitioners such as technical support engineers, escalation, technical relationship managers, maintenance software engineers and software product developers.

images

 

 

 

 

Software diagnostics as a practice involves humans using software. Therefore it is beneficial to consider both software users and software when thinking about software diagnostics.

images

 

 

 

 

Working with patterns of defects makes one understanding of software better. When a breakdown of a computation happens we notice a pattern of software structure and behaviour and add it to a catalogue.

images

 

 

 

 

Understanding goes with interpretation. Due to various omissions, insufficient and incomplete interaction documentation it is always possible to interpret or misinterpret problem differently due to shifting requirements, different normative and political considerations. There can be different sources for interpretation.

images

 

 

 

 

I became interested in phenomenology last year. In the context of software diagnostics it is about the meaning and structure of everyday software diagnostics activities.

images

 

 

 

 

Additional feature of phenomenology that can be useful for holistic philosophy of software diagnostics is its inclusion of the human side.

images

 

 

 

 

I borrowed meaning-structure and meaning-pattern words from the book on phenomenology and hermeneutics of medicine I reference at the end of this presentation.

images

 

 

 

 

Here I highlighted some features of software diagnostics phenomenology.

images

 

 

 

 

Hermeneutics is about interpretation and understanding. It involves the analysis of narrative stories and in software diagnostics there are different types of them to consider.

images

 

 

 

 

Usually phenomenology goes with hermeneutics. Typical example here is problem description narratives that can be interpreted and understood with the help of problem description patterns.

images

 

 

 

 

Software diagnosis provides possible explanation for the problem. After finding da-signs we refine our prob-lemmas and provide explanation, recommendation and possible solutions for the original software problem.

images

 

 

 

 

As a conclusion you see that software diagnostics is mainly human-assisted. What about computer assistance?

images

 

 

 

 

The medical diagnostics was used as a systemic prototype for analogy and metaphors. However, there is crucial difference here. In medicine the logic of software is imposed on medical diagnostics (the so called analytical approach) but in software diagnostics software is inherent. So we come to the analytical philosophy of software diagnostics.

images

 

 

 

 

We leave it for the second part we plan to introduce in a few months.

images

 

 

 

 

Originally we planned this webinar to be focused on abduction only. What is abductive reasoning you see from the example here. Abduction is very common in medical diagnostics and law, for example. However, we found that software diagnostics was missing philosophical foundations and prepared this webinar instead. We promise to cover abductive logic and its relation to philosophy of software diagnostics in the next part.

images

 

 

 

 

Here are some books I recommend to read. The first one (unfortunately is only available for Russian readers) was very influential for me to see the possibility of software diagnostics philosophy. The second one, an introduction to metaphysics, prompted me to delve deeper into a definition of a problem word. The next two books: Being and Time and its interpretation guide gave me ideas for da-sign. And finally, the book about hermeneutics and phenomenology gave me ideas on meaning-structures and meaning-patterns. The second section lists resources for pattern-oriented software diagnostics.

Software Diagnostics Institute:
http://www.dumpanalysis.org

Memory Dump Analysis Anthology volumes:
http://www.patterndiagnostics.com/ultimate-memory-analysis-reference

Introduction to Pattern-Driven Software Diagnostics:
http://www.patterndiagnostics.com/Introduction-Software-Diagnostics-materials

Introduction to Systemic Software Diagnostics:
http://www.patterndiagnostics.com/systemic-diagnostics-materials

Introduction to Pattern-Based Software Diagnostics:
http://www.patterndiagnostics.com/pattern-based-diagnostics-materials

Introduction to Software Narratology:
http://www.patterndiagnostics.com/Introduction-Software-Narratology-materials

images

 

 

 

 

For those who consider that life is similar to software I provide this pictorial analogy. Philosophy of Heidegger incorporates death as an inescapable part of human being and we also consider “blue screens of death” as an inescapable part of software. Note that the philosophy of Heidegger is considered as a philosophy of death and a philosophy of a new beginning.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset