Agile Testing Days 2015, Day 3

The last day already….Again, I’m late with the blogging. I missed the complete morning programme, actually. The reason this time is a hangover. Last night was so great. I tried to make up for the fact that I was sober the night before, so I had a little bit too much whisky.

I played some fun agile games, saw the cabaret, talked to a lot of people, sang some songs and before I knew it, it was 3:30 in the morning. At that point I was like: “shiiiiiit I’m gonna pay for this tomorrow morning” and that was true. I woke up with a nasty headache, but still tried to go to breakfast. Eating a little took a long time and when I closed my eyes I saw lightning-bolts or something so I thought “aaaaight, I’m going back to bed for awhile”. I woke up again at noon, just in time for lunch! Those 3 hours that I missed felt very surreal. I had the feeling that I had been gone for a day, and I felt quite guilty about missing the keynote and 2 morning sessions. But the effect that the sleep had on me was very positive, on the other hand.

Lunch was great again, the food is so good here. I caught up with some people about what I missed in the morning, read some tweets…

Now it’s time for the next keynote!

Thomas Bradford – Nowhere and back again: a software engineer’s tale

He only knew three weeks ago that he was doing a keynote here, so I’m curious to see what he has concocted in those weeks. He’s sort of improvising. He’s not an agile coach, not a tester, but a programmer with an ‘expertise on failing’ in organisations 🙂

He’s also swearing a lot. Hmm, I don’t know if this is a good trend, but whatever. And then the screensaver of his laptop kicked in…Good prep 😛

His slides are in Chrome and the wifi in the conference sucks….so he cannot get it back up. What’s wrong with good ole’ powerpoint?? It sucks, but at least it’s offline.

So, no slides then.

Once upon a time, he got invited to help in a project with no test coverage at all. At first he said no, but they kept nagging him and in the end he accepted, because BEER. It was a huge monolith of code. Only three guys worked on it at first, and it wasn’t so much of a problem. But when they started hiring junior devs they got all the blame.

We’re going back in time now, to when he was 12 years old and coded with zero tests. Okay, I forgive you…It worked of course, because he was only doing this by himself. At age 20, he got into the business world and had great mentors to evolve as a software developer.

After awhile he joined startups…major companies…he started seeing a lot failures and bullshit. He wanted to get out of the business. He quit twice. One time he became forklift driver and he thought it was awesome. He also tried to become a musician, but he was horrible at that. He got back into software development, but he hates most companies. But still, he was going to try to fix the companies.

He throws a huge ball on stage, that is an analogy for the “Java monolith”. No company cares about investing time in refactoring and quality. They just want to release products. They want to release fast. They don’t understand that fast releases now, mean a lot of delay later. Some people might call this kind of code spaghetti, but it’s not fair to spaghetti! You can’t throw the code away either, because the business depends on it.

So what you’re gonna do? Write unit tests for it? Invent a time machine to go back in time to kill the original developers?

You have to start with clean code at the beginning. You have to refactor from day 1!

[hear hear, but…I’ve heard this being said so many times. That doesn’t change the fact that there is already a lot of crappy code out there. What are you gonna do with that fact?]

Why don’t you implement features as completely independent structures?? You should create your architecture around that.

He rants a bit about Java now. He explains that it’s like the ‘use a hammer for everything approach’. Because Java has so many options to do things that are pretty much set in stone, the developers started to tailor the problem to the tool and/or language instead of the other way around.

It’s better if a developer is not tied up to one language. So they tossed out Java, and switched to JavaScript. But still, the language doesn’t matter that much. As long as each service is a small independent thing, you can toss it out and rewrite it very quickly.

It just wasn’t an option again to implement the entire system over and over again. That’s what the developers did three times already in Java.

Now he’s going to piss us off. Bring it ooooooon.

“Writing tests is stupid”. The tests don’t add to the value of the product [I don’t agree]. They don’t get shipped to the customer. The point I guess is to eliminate as much waste as possible. We need to start to write the perfect code. [But ehm…dude, that’s why we have TDD right? Tests help a developer to assert that he wrote the right (or perfect) code.]

If you can’t trust tests, and you can’t trust code. But that means that you can’t trust the humans. They are the ones writing the code.

Oh, now he’s gonna talking about test coverage. Cool, I HATE test coverage. And he also says that it’s bullshit. You can’t cover everything. It’s a bullshit metric. Simple maths will tell you why.

Also, you can implement something wrong in the sense that you got the spec wrong, write perfect tests for it, but it still sucks.

We try to write systems that are bulletproof. We want a system that is completely resilient. But that’s impossible! This is why monoliths exist in the first place. There are unknown unknowns, just accept it PLEASE. [ok folks, I gotta mention the book “Antifragile” here. Please read it!!]

Another option: Monitor your logs! Let bugs happen, and be able to recover from things! Explode your entire process. [I wonder how management would like this approach?]

Every developer wants to write good code. Trust the developers to do what they think is good. [History shows this is a problem maybe?? Coding paradigm really has to shift more to clean coding and refactoring. I’ve seen some developers who implement stuff without thinking about the future. And they might not do that on purpose, but it is a problem]

People are scared of the blame game, though. When something goes wrong, they are scared to get blamed. To be punished. If you change that to a helpful attitude ‘what can we do to fix this’, the developers might feel safer.

Tips:

Stop committing to so much.

Committing to something is setting yourself up for failure. You won’t keep your options open that way…

Get rid of middle management. Oh dude, I wish that would have happened already. I have a theory that if you fire all middle management no one will notice.

Stop trying to squeeze out so much ‘productivity’. When you keep striving to be more productive, what do YOU achieve by it. Do you get payed twice as much?

“Agile is not necessarily helping us”. There are many people working as agile coaches, but just to make money. Not because they believe in it. Is it possible to change from the bottom up? Isn’t the problem at the top, and it cascades down?

Stop blaming people, stop humiliating them. Stop making yourself feel better at the cost of someone else. Stop being driven by fear. That’s a big problem to solve! Basically, he’s asking some people to completely change their attitude and character. Some people are just assholes that thrive at the cost of others. That’s kind of a problem, if you ask me.

Help other people to be better. They will be thankful, and goodness will be rewarded with goodness from others. I agree wholeheartedly with this.

First word in agile manifesto: INDIVIDUALS. Care about people. It all starts there. Code doesn’t matter, tools don’t matter. It matters that people are happy, and then the rest will follow.

Cognitive Biases

Ouana, she’s so great. Put her in any room and she will be the light of the party. She has so much energy and so much positivity, it’s inspiring. Her workshop is about Cognitive Biases. We’re going to get some brain work done.

What is reality? Is it how we perceive the world? We see reality as the way we are. Reality is different for everybody. But in fact….reality is unknown. It is always relative to our own self.

Reality is unknown. How do we feel about that? It’s kinda scary…

What is the primal function of our brain? To survive! It’s not to think fancy thoughts. This primal reaction might happen in situations where we are not threatened. We cannot control it, it happens lightning fast. We create patterns very quickly (our brain), and that’s hard to change.

The brain is a brilliant lazy machine. I’m again reminded of Thinking, Fast and Slow here. Our brain can fool us, quite easily even.

The information in the workshop is already going quite deep, and I find it very hard to blog about! We are given a test between getting white/red balls from 2 containers. In 1 container we know how many balls of which color there are in. In the 2nd container we don’t have that knowledge. Which container should we choose to draw balls from? Rational would be B. That’s kind of different from what you would think. I didn’t quite understand the reasoning to come to that conclusion. Sorry, I fail 🙁

Next bias is one I knew. Described is “Helen”, who loves non-profit work. What are the chances she ends up as “computer engineer” or “computer engineer + non-profit work”. Many people here would go for the combo answer, while in fact because it has an AND conjunction in it, the probability is lower. This is called the attribution bias.

This workshop at least keeps people awake! The tests we are given stir up some discussion and people are disagreeing with one another. You can leave it to testers to start a war about requirements.

“What we know is safe”. We like to confirm what we think is true (confirmation bias). What we don’t know….doesn’t exist (for us). We get some more exercises before the break, explaining several biases. Kind of hard to write down in words when they are usually in pictures. So, I’m just enjoying the exercises for now.

Keynote Olaf Lewitz – Integral Quality

I’ve seen Olaf walking around at the conference, but haven’t talked to him. He looks very friendly, and he was wearing awesome t-shirts!

He starts by saying that the tester community is all about spotting what’s wrong, what could be differently.

What does quality mean? And how can we build it in the organisation? That is not easy though. Changing the world is an acquired skill.

He was inspired by Sabriye Tenberken. She turned blind when she was 12 years old. Her parents didn’t tell her when she was younger, because they wanted her to live normal for as long as possible. This woman has done some amazing things. She went through Tibet on horseback (blind). The blind people aren’t treated well in Tibet; they get no support. She started a school for blind people. She also started Kanthari. That’s a website aimed at making the world a better place: spice it up by ethical visionaries, and driven by integrity, equality, empathy.

What can YOU do?

Change starts with you. You can do something. Doesn’t matter if it’s big or small. We all have the ability to make a difference.

Stop blaming others if change isn’t happening. Even if the management at the top doesn’t change, that doesn’t matter that you shouldn’t also start at the bottom. And even if the management at the top has changed, that is also not enough. We ALL should change if we want to make the world a better place.

He asks us what he wants us to say ‘thank you’ for, regarding the past 4 days. I want to say: thanks everyone at the conference for the awesome conversations, lessons, inspiration, friendship, love, warmth.

And there was hugging all over the room!

Show up with an open heart every day. Recognise the other persons you meet, be kind. This is the most effective way to make a difference!

Olaf has been obsessed with the topic of choice. Knowing about options (real options), thinking about them….and acknowledging the fact that there is an option to say ‘no’. Choice is a very powerful thing! Even staying in your comfortzone is an option…[I wouldn’t advice it to you, my dear reader, because that is how you grow as a person].

Making a choice, however, means that YOU are responsible for your actions. Being able to make choices, requires some ‘pre-work’. Think about the consequences. [I think this is a very good point!! I often have the idea that people just do stuff without thinking it through. Always ask yourself WHY]

A quick bit about real options, yay! Look it up, or read the graphic novel ‘Commitment’. Golden rule: never commit early unless you know why. It will be painfully obvious how many things in life are obligations if you start to think about it. Also, if you start to think about it, when you don’t like your job it is time to stop complaining and change it. You are responsible for your own happiness.

Olaf shows us a pyramid. We usually like to put our systems into a pyramid, nice and simple. But quality is much more like an onion. An onion can look quite shitty from the outside, but can still be nice on the inside. So it’s much more realistic way of portraying the system [still a weird way to simplify things. Why do we always need to simplify things?? Where does this need come from. I think it’s okay to say ‘yo this shit is complicated’].

Olaf asks if anyone has seen code like 10 nested if statements. A lot of people had. But the person who made it didn’t have the intention to create bad code. It could have been yourself from the past. The intent of the programmer wasn’t clear when he wrote that. Quality is limited by how well people making the software know what they want.

We need a shared purpose, a shared model, to create value. The history of how we have run organisations is quite interesting. We were mostly tribal at first, then went onto agrarian, then industrial and then focussed on information. What will be next? [He got this from the book Reinventing Organisations]

We won’t know what will be next. Unless you also believe that dinosaurs once woke up with feathers and thought “aight, cool, this is going to be the next step”. We are blind for most changes at first and later try to clarify and put them in a category.

It’s also not a good idea to blindly copy how other organisations work to your own. You can’t just copy the Spotify model without tailoring it to your own context.

Work-life balance is next. They’re not separate entities, but you have to integrate them. You have to try to make both a joyful thing. Have fun at work, and also have fun in the rest of life.

Back to the comfort zone. You need courage to get up and see something else. You need to leave trust behind to grow. That’s where the magic happens.

“I’ve been a boss once in my life. I had no clue at how to be a boss. I thought I had to know all the answers.” Great that he dares to share this experience with us. I think many ‘bosses’ are operating while secretly feeling this.

We spend a lot of time being angry about the past. But options only exist in the present. So, the anger and fear about the past aren’t helping. To become more mindful would be a solution, but that isn’t easy!! [personally I can recommend yoga, it is so great to become more peaceful inside]

Main message: Get out of the matrix! Say: “I stop laying blame, I start taking responsibility for what I do. Change starts with me. “

Dare to be vulnerable. Dare to be authentic.

Great keynote, very loving and inspiring. I wish the whole world thought like this. Would be such a relief…

Now we are almost nearing the end. Coming up is a summary of the conference by Lisa and Janet and then the closing world already *sob*

What nuggets did you find? Did you find lots of gold nuggets? I for sure did!!

Main reoccurring themes: people were a central theme in a lot of talks. But also: yourself. Find out about yourself what you want to learn, what you want to change, are you happy with where you are? Also: start a movement!!

Thanks for reading my word vomit 🙂