Embracing a mentality of prediction – evaluation – exploration

A while ago I started to play a little game when doing test-driven development:

Every time I run my microtest, I predict the outcome. Will the test fail or pass?
When my prediction was right, I continue. When it was not right, I investigate and explore why my code behaved differently than I thought it would be. I will not simply go on and poke around (though I do that frequently, too) but really try to understand why my expectation of the code’s behavior was different to reality.

When I found the cause for the wrong prediction, I try to learn from reality and grow my knowledge about the code. Sometimes I not only find gaps in my knowledge but also flaws in my work process or in the way I do things.

I found this game to be a very powerful tool of learning. I’m still not very seasoned in doing it, but it’s something I want to practice more often.

Today I realized that I can not only use this technique for TDD, but for many different things in software development and also life. We are constantly predicting what will happen, what consequences our actions will have:

Will my code work after merging that branch?
What will change when I change this setting?
Will I catch the bus when I go now?
Will I need an umbrella today?
How will my co-worker react to the feedback I give him?

We constantly predict, but I usually don’t evaluate the outcome in reality and explore the reasons when my prediction was wrong. In not doing the evaluation and exploration, I probably miss a powerful tool to consciously learn and instead stick with a very unconscious and probably tedious trial-and-error approach.

That’s something I want to change: What will happen when I start to notice the predictions I’m doing all the time, when I consciously evaluate their outcome and explore why my prediction was wrong?

My prediction is that I will not only learn faster and become more aware of myself and the things around me, but might also find flaws in my thinking, in the way I approach things and in beliefs I hold.

Sounds like quite some effort and also a bit scary, but I want to try it out.

I would love to hear your thoughts on that!

Improving Tech with Compassionate Coding

This is the original content I wanted to present at ApexConnect 2019 about compassionate coding – until I did my first dry-run and landed at over 20 minutes instead of the 10 of my lighning-talk slot. Fortunately, Twitter came up with the great suggestion to have a reduced talk and a follow-up blog-post, which goes into the details I had to strip out due to time.

Important Update: Kim Crayton shared this article as an example, how the mindset described here can be harmful to marginalized individuals. She also shared a great article how “good intent” undermines diversity and inclusion. Please read it, it’s very eye-opening.

I wrote this article as a white straight cis man from a rich country, pretty much the upper end of systemic privilege. I wrote it from a very personal perspective and I wrote it especially without taking power imbalances into account.

I don’t know how it is to be marginalized and therefore my take might be just not fitting in that case. I am willing and eager, however, to read up and learn about the experiences of people of color and other marginalized groups.

As for now, I still think compassion as described in this article is a great mindset for other people of high privilege, but there’s one thing I want to make crystal clear:


Compassionate Coding is a tool for yourself, not a weapon used to tone-police others.

The moment you expect others to treat you in a certain way – especially people from marginalized groups – you already did it wrong.

“Compassionate Coding” is a term coined by April Wensel and really a matter close to my heart since I learned about it a bit more than a year ago. If you need more information, go check her website and follow her on Twitter – she’s the real expert and is available for workshops and talks.

So, why compassionate coding? What is it all about

Suffering in Tech

There is a lot of suffering, especially in the tech industry, but also caused by the tech industry. We can witness this suffering on several levels every day:

One of the most prominent recent examples of suffering caused by tech is probably facebook and its immoral treatment of private data, like selling phone numbers to advertisers which were meant for two-factor authentication.

Speaking of social media, studies show that the use of social media and most likely its optimization to keep peoples attention leads to an increased acceptance of racist and other extreme views. One study even suggests a link between the use of social media and hate crime against minorities, in this case refugees in Germany.

Continue reading

DOAG 2018 – my personal review

doag_impressions

The DOAG exhibition and conference in Nuremberg, 2018 probably the biggest Oracle conference in Europe with over 2000 visitors, is over. And I had the pleasure and privilege to be part of it.

As a first-time attendee and first-time speaker, the conference was both, very exciting and immensely frightening to me. The great location alone with its 4 floors arranged around a huge hall made me question whether I belonged there right when entering. Nonetheless, I proudly got my speaker shirt and the following three days turned out to be one of the greatest highlights 2018 for me.

19 Sessions in parallel every hour made me really spoilt for choice and in the end, I even skipped several slots because of chats with the amazing people I met – and pure exhaustion.

Some of my personal highlights in no particular order:

Organization, Food, Location, Transport – all of these things were exceptionally well done and made the conference a great and comfortable experience! Excellent job, DOAG e.V.!

My own talk: Introduction to utPLSQL

The talk before mine finished a bit early so I had even more time to prepare, put on my sith robe, setup my notebook and – OH WHAT THE F**K THIS HDMI CABLE DOESN’T FIT INTO MY NOTEBOOK!! WHAT DO I DO NOW? I NEED THIS CAREFULLY PREPARED DEVICE WITH LIVE DEMO AND…
Luckily it was just a display port adapter still attached to the HDMI cable (sorry to the volunteers who had to deal with me while panicking). Maybe you get my nervousness.

I was very glad some people I already knew from the day before showed up pretty soon and I had someone to talk to – until the doors got closed about 3 minutes before the scheduled start.

29-11-_2018_12-08-41

The topic struck a nerve, the room was completely full (as was the other talk about utPLSQL by Philipp Salvisberg the next day) and people had to be sent away.

I was very glad I had memorized my talk, so I didn’t need much brain capacity to search for words. And after some minutes it felt much more natural to me (my hands were still shaking pretty much when scrolling through the live demos, but people I spoke with afterward said it was not visible).

I got lots of really great feedback and was even asked if I wanted to do the talk at another conference. Which I might do, because after the first five minutes I really started to enjoy presenting what I had prepared for months.

Tips for first-time speakers

For me, a blog article doesn’t feel right if there is nothing actionable I have to share so I will try to point out some things which were immensely helpful for me – maybe they’ll help or encourage other people who want to do a public presentation.
If you aren’t interested in that, just scroll down to the last and by far the most important part of this blog-post.

Continue reading

Are you sure about what you know?

“If you’re incompetent, you can’t know you’re incompetent … The skills you need to produce a right answer are exactly the skills you need to recognize what a right answer is.”

David Dunning [NYT]

Ever heard of the Dunning-Kruger-Effect? If not, you might want to change that – it’s a great scientific foundation to make fun of people who – for example – use buzzwords, obviously without knowing their meaning. It also gives you some academic ammunition when complaining about the technical incompetence of management, project lead or sales. By using the term and throwing it towards whoever you think is your opponent you can show your superiority. And isn’t it fun to insult people when they don’t even notice being insulted? Clearly a proof of your intellectual dominance, because you don’t fit into the group of incompetent people, do you? You are clever, reflected and open-minded enough not to fall to the traps of human psyche, aren’t you?

For those who don’t want to read through the linked Wikipedia-article, have this (very simplified) description:

The Dunning-Kruger-Effect describes a psychological phenomenon that people who are low-skilled in a certain topic are the most likely to think they know a lot and are skilled at least “above average”. This is due to the fact that their lack of knowledge on a subject also means they can’t recognize how much they don’t understand.
A low-skilled person can overcome these effects by education and increase of knowledge on the topic.
The other side of the effect is, that highly skilled people are the most likely to underestimate their own competence and tend to be less confident about their expertise.

dunning_kruger_effect

There’s a lot of information and commentary about the Dunning-Kruger-effect on the internet, often in combination with fingerpointing towards extreme examples of the phenomenon (you can read “Trump” between the lines here). Most of us have seen people whose lack of experience and knowledge on the subject they presented made us feel uneasy while they themselves seemed pretty confident and happy.
And I agree that it’s fun to watch the effect on others in its full glory, but if you calm down and think about it, it can suddenly become very serious (I guess that’s the reason why the work of Prof. Dunning and Kruger was awarded by the Ig Nobel Prize for “first making people laugh, then think”).

The problem is – this is not a phenomenon reserved for others. And it’s not something only present in ridiculous and extreme examples.

Continue reading