This is how I measure the quality of my work

notneededI have blogged in the past about product development and measures of success, it is a topic that interests me a lot.

I am an individual that sells services to organisations that develop products. This makes me a product as well. In fact organisations might want to hire me because they have a problem and believe that I (the product) can resolve it.

The product I advertise is something like this:

“I will help your organisation deliver products that matter through coaching your people on the use of agile and lean practices”

 

There are many ways of defining success KPIs for engagements of this type. targets will be set, numbers will be pulled out of thin air, promises will be made, but I am not 100% sure that the quality of my work can be measured like this.

I might meet or exceed all the KPIs we agreed at the start of my engagement, but if at the end of my gig you still need me to fix the same problem, then I have failed.

A coach must be able to work himself out of his own job.

If you don’t need me anymore because your people are now able to resolve the problems without my help, then I can safely say I succeeded.

So, my promise to my customers is:

I will do all I can so that you don’t have to pay my services in the future

If I want to be treated like a professional I should act like one

Drunk-Surgeon-801916Developers and testers often complain that they are not recognised as real professional experts, I wonder why.
One category of respected professional experts is for example heart surgeons.

Now let’s imagine I go talk to heart surgeon Mike and go

<me> I need heart surgery
<Mike> Sure we will schedule it
<me> No no no, I need it now because I have a dinner appointment tonight
<Mike> OK, that’s fine we’ll do it quickly, I won’t even wash my hands

Would you trust Mike as a real professional expert? I wouldn’t

Now let’s think about a common scenario where Product owner Jeff comes to me (developer) and says

<Jeff> I need the new payment feature
<me> Sure we will schedule it
<Jeff> No no no, I need it by tomorrow, we need to comply with regulation
<me> OK that’s fine, I’ll hack it together for you and I won’t even write tests

How can i expect to be treated like a professional?

Thanks for the idea to Marcello Duarte (@_md)

 

Talk to me for God’s sake

If you remember this, you're old
If you remember this, you’re old

E-mail is a great tool, it was the first killer app of the Internet, that directly demonstrated the intrinsic value of the network well before the web became useful.

Before e-mail, people that lived far away could communicate through slow traditional mail, expensive phone lines or simply travelling and meeting each other somewhere. The competitive advantage of e-mail was huge and as a consequence its adoption was fast and furious.

It was a no-brainer for any company to use it. We can save time and money with little or no effort, yippeee!

Being an e-mail salesman was the easiest job in the world, I was one.

But, hang on a second, why the hell would you use e-mail if you have to ask a question to your team mate sitting next to you?

A conversation is cheaper than e-mail, a conversation is faster than e-mail, a conversation includes much more information than e-mail, a conversation will finish there and then with a solution.

Let me try to sell my new product: Internal e-mail For Lazy Asses©

Send mail one more time
Send mail one more time

Dear co-located colleagues,

Internal e-mail For Lazy Asses© will allow you to avoid getting up your arse all day while you’re comfortably coding and watching the deep youtubes

In the likely event you suddenly lost your tongue or had your mouth welded by accident, you will still be able to communicate with your team mates and be productive!

You will be able to demonstrate you are working on something while actually not giving a shit about it, because, let’s be honest, if you did, you would go and talk to your colleague and not sit on your arse for days waiting for an answer that you haven’t got in 3 days.

You will be able to avoid troubleshooting or even bother thinking about a problem if you forward it to your full team!

You will be able to conceal your body language so that nobody will know you haven’t got a clue about what you’re talking about; when suspicion arises, you can attach old confusing and obscure threads that will implicitly demonstrate you have known the topic all along

Somebody else will eventually do your work, yippeeee!

So, are you buying it?

CIAC – Certified Ignorant And Curious

Madrid Is a beautiful city
Madrid Is a beautiful city

Speaking and learning about other people’s ideas at a conference is an incredibly energizing activity for me. The reason, I believe, is the fact that I am naturally very curious; people’s thoughts and ideas generally satisfy my curiosity at least for a few hours.

On Wednesday evening, in Madrid, I was involved in the ExpoQA “Great debate” where speakers, sponsors and the conference goers discussed various topics in an open session.

Inevitably the topic of “Professional Certification” was touched.

I briefly made my point by saying that I am not one for certifications because I believe that what the Greek philosopher Socrates said: “I’m the smartest man in Athens because I know that I know nothing”. For me learning is a continuous activity and the most important element is the acknowledgement of ignorance rather than the certification of knowledge.

The discussion went on with the sponsors making some good points pro certifications and some interesting insights from the conference participants.

On the flight back from Madrid I thought about it a bit more and eventually decided I am going to start certifying Ignorant people. What I mean with ignorant people, is:

people that are aware that learning is a continuous activity and can never end. People that, no matter how much they know about a subject, have the humbleness to listen to all voices, including the ones that they don’t like, because they believe there is always a chance they might learn something. These people, know that they don’t know and are driven by curiosity in their continuous search for knowledge.

The certificate
I started by certifying myself

I had a quick chat with with Socrates on Skype, he liked the idea and that’s why I am here presenting to you the CIAC certification.

Do you want to become a Certified Ignorant And Curious professional?

Add a comment to this post or mail me directly with one sentence where you clearly demonstrate you are a humble ignorant in search of knowledge. You can also tweet your sentence using the tag #IknowThatIdontKnow including my twitter handle (@augeva)

If you are successful, you will receive a prestigious certificate signed by me and Socrates.

No industry benefits, no costs associated, it doesn’t need renewal, you can print the certificate, frame it and proudly display it in your office!

Little Tim and the messy house

The messy kitchen
The messy kitchen

A cute little boy, Tim, lives in a messy house.

In the morning Tim’s mum, Tina, spends an hour looking for rubbish in the house, when she finds some, she writes a note on a piece of paper where she describes the steps that she followed when she found it, and sticks the note in one of 5 different drawers. Each drawer is labelled “Severity 1”,  “Severity 2” and so on down to “Severity 5”.

Tina and Tim’s uncle Bob, meet every evening to discuss the daily findings and after arguing for a good while they agree on how to file the notes written during the day into 5 folders with labels “Priority 1”, “Priority 2” and so on up to “Priority 5”.

Tim’s father, Oleg, every morning picks the folder with label “Priority 1” reads the notes Tina wrote, follows the steps, finds the rubbish and throws it in the bin. He then writes an extra note on the piece of paper saying that he has thrown the rubbish in the bin. If the Priority 1 folder is empty, Oleg picks the Priority 2 folder and follows the same process. Some times Oleg cannot find Tina’s rubbish even when following her written steps, in this case he adds a note saying “there is no rubbish there!”. Sometimes Tina takes it personally and Oleg sleeps in the spare room. Oleg barely ever opens the folders with Priority 3 to 5. Such folders are bursting with new and old notes from many years back.

Tina spends an hour a day rechecking the Priority folders to see if her husband has added his notes. When she finds one, she will follow her own steps to make sure that Oleg has removed the rubbish from where it was as he said he did. If he did it, she will shred the original note, if the rubbish is still there she will add a note at the bottom saying, “the rubbish is still there, please go and pick it up!”. She will spend some more time adding some extra information on how to find the piece of rubbish. Sometimes, while she is tracking some old rubbish she finds some new, in this case she creates another note and adds it to a drawer.

Each piece of rubbish was filed neatly
For each piece of rubbish, a report was filed neatly

From time to time uncle Bob calls around asking for rubbish reports and rubbish removal trends. In these occasions Tina and Oleg spend the night up counting and recounting, moving sorting and drawing before they send a detailed rubbish status report.

Strangely enough, no matter how hard Tina and Oleg work at identifying, filing, removing, reporting and trending rubbish, the house is always full of shit and uncle Bob is always angry. Tim’s parents are obsessed in finding new rubbish but they don’t pay much attention to family members dropping chewing gums on the floor, fish and chips wrapping paper in the socks drawer, beer cans in the washing machine and so on. After all Tina will find the rubbish and following their fool proof process they will remove it!

One day Tim calls her parents and Uncle and sits them down for a chat. He suggests to stop throwing rubbish on the floor and messing up the house so that they can reduce the amount of time spent finding, removing filing and trending the rubbish. He also suggests to get rid of the folders labelled Priority 3, 4 and 5 as nobody has done any work on them and after all the existence of a minuscule speck of dust on the bathroom floor is not going to make their life uncomfortable. He also suggests that Tina calls Oleg as soon as she finds some rubbish so that he can remove it straight away, without the need for adding notes.

Uncle Bob tells Tim that what he says is nonsense, because the family are following a best practice approach for rubbish management and in agreement with Tina and Oleg locks him up in a mental facility.

Everybody lived unhappy ever after.

Have I eventually gone bonkers and started talking nonsense?

No, I haven’t suddenly gone crazy. I am Tim and I want to change the world.

The 5 Stages of Expertise

Niels Bohr
Niels Bohr

It was more than 20 years ago when, in college, for the first time, I heard this

An expert is a man who has made all the mistakes which can be made, in a narrow field.
                                                                                          Niels Bohr (Physicist 1885 – 1962)

Initially I didn’t understand it, but it fascinated me, with time I learned to appreciate it.

Let me demonstrate it for you.

I smoke cigarettes that i roll up by myself and in the years I screwed up in likely every possible way while rolling one, and learned a lot about how to make a cigarette even in the most adverse weather conditions like gale force winds and pouring rain. I never rolled during an earthquake but if I can do it easily while driving a non automatic car in the city traffic, I can infer I can do it if the earth shakes a little so I can exclude this edge case. I can proudly claim to be an expert in the narrow field of “Rolling up cigarettes”

How about domains more complex than rolling up cigarettes?

When we talk about a complex domain, like software testing for example, what is an expert? If we want to go by Bohr’s definition we could assert that an expert in software testing doesn’t exist because it is physically impossible for any human being to make all the possible mistakes in such complex domain in one single life. I tend to think that Bohr’s quote is still valid for complex domains and real experts in such domains don’t exist.

These are what I imagine the 5 stages of expertise to be

The 5 stages of expertise
The 5 stages of expertise

As in stage 4, learning is an infinite activity, obviously there will be a wide range of expertise within the same stage and the closer you get to infinity the more you become an expert. Is infinity relative to time? Amount of books read? Number of experiments run? Maybe all of it.

This stupid model has been imagined by me, a person that believes that, in relation to software testing, he is is in stage 4 “Perpetual Learner”.

The reason why you don’t see the 5th stage is thatI haven’t reached it, in fact I don’t even know if such stage exists or not.

On the other hand, if the 5th stage existed, it would invalidate my own very model, in fact the model states that “Learning is an infinite activity” that contradicts the existence of a 5th stage. So should I exclude the existence of a 5th stage, so that my model works? Not really, I’d rather search for the reason that invalidates my model than defend it. Why? Because I learn more when I make mistakes than when I am right, how about you?

Constructive conversations

A constructive conversation is a conversation between 2 or more individuals on a specific subject, where any of the individuals is free to express his opinion and uses other participant’s feedback and knowledge to discover the subject to new heights.

It is a process of discovery, in which each individual participates with the goal of of higher understanding.

A constructive conversation is successful if at the end, one or more participant learned something.

A constructive conversation is even more successful if at the end of it, the higher understanding achieved also produced an agreement for action.

Constructive conversations have no scope boundaries and could be as simple as discussing what tool to use to complete a simple task, up to discussing how our own company can improve to change the world.

Constructive conversations don’t have roles, there is no master and slave, no matter what the level of seniority, each participant receives the same respect and has the same ability to pose questions and contribute their thoughts.

Constructive conversations require engaged participants with equal desire to learn and enrich knowledge for all participants.

People with shallow knowledge on a subject will mainly use the constructive conversation to learn, but will also offer perspectives and questions that might not be immediate to the people that already possess high knowledge. They have the outsider view.

People with high knowledge will help other people by sharing it and request feedback because they know that no matter how high their knowledge, they don’t own the truth.

Constructive conversations require empathy. Constructive conversations require humbleness. Constructive conversations require courage. Constructive conversations require respect. Constructive conversations require empowering leaders and empowered people.

Constructive conversations are the backbone of successful agile organisations.

Cross-dysfunctional teams

Every agile enthusiast will tell you how powerful an empowered, self-managing, cross-functional team can be. Once you have one, it brings complete team accountability from product idea to customer support, it naturally grows with continuous improvement, and finds self motivation in innovation and delivery of customer value.

It’s a beautiful and powerful concept; the practical implementation sometimes is not so beautiful and more often than not what you get, is a cross-dysfunctional team.

Let’s have a look at the cross-dysfunctional examples I have experienced.

Pseudo specialist cross-dysfunctional teamfarm-silo

Developer: “I am a developer I am not meant to test, the testers test!”

Tester: “I don’t need to know anything about how the product is designed, I only care about how the customers use it!”

Business Analyst: “I am not technical, I can’t help you guys!”


devops“As Long As It Works for us” cross-dysfunctional team

Developer: “It works in our environments, it’s operations responsibility to make it work in production”

Tester: ”Listen, it worked in UAT, it must be a configuration issue, or a missing firewall hole and nothing I could have spotted during testing…”

Customer: “Hello! Nothing works here…”

Abdicating cross-dysfunctional teamheadinsand

Developer: “The architect told me to do it like this”

Tester: “Feck it, let the Test manager deal with it”

Business Analyst: “I don’t think there is any value in this story, but the Product Owner wants it, so get on with it and develop it!”


no-thanks-were-too-busyContinuous Decline cross-dysfunctional team

Developer: “No point in doing retrospectives, things are always the same”

Tester: “We DON’T HAVE TIME to try new things!”

Business Analyst: “We do it like this, because that’s how we do things here, and that’s it!”

Disintegrated cross-dysfunctional teamWorked-Fine-In-Dev-Ops-Problem-Now

Developer: “My code works perfectly, it’s their system that doesn’t work, who cares”

Tester: “We have 100% coverage, all our tests pass and we have no bugs, if the developers of system X are idiots, there is nothing we can do about it”

Customer: “And still, nothing works here…”


ihazsuperiorityNazi cross dysfunctional team

Developer: “Testers are failed programmers, they shouldn’t be called engineers”

Tester: “Developers are only able to produce bugs, the world would be better with more testers and less developers”

Business Analysts: “I don‘t know why I bother talking to testers and developers, they are total idiots”

Do you recognise your team in one of the categories above? What have you done until now to help your team change? Little? Nothing? But you are still bitching about it, aren’t you?

Remember, you are very powerful and can become the change that you want to see.

Signoff by High Five

signoffI hate the word SIGNOFF.

I thought that once I got away from the horrors of waterfall software development it would disappear forever. But no, the menacing SIGNOFF has made it into agile software development teams. I was at Agile Testing Days in Berlin last week and I had an incredible time talking and listening to passionate people. On the other hand, I was surprised to hear how many people still talk in term of SIGNOFFS.

Overheard in Berlin:

“The user stories need to be signed off before you can start working on them”

“…then after our signoff we can deliver the software…”

And so on

This is my definition of a signoff:

“A point in time where my responsibility ends, so for errors up to then you can blame me, after that it’s your fault and I don’t give a rats arse.”

That’s what it is, it is a Cover Your Ass activity. There is no other reason why you would want to signoff on something unless you are trying to cover your own ass and blame somebody else. The fans of the Cover Your Ass manifesto are also the ones that would sing off on anything.

What’s the value of a signoff to our customers?

Signoff by High Five at the Dublin Java User Group
Signoff by High Five at the Dublin Java User Group

0 – Zero – Nil

What’s the value to the development team?

Less than zero because signoffs cause finger pointing and blame games

So, why the hell do we do signoffs?

I don’t know.

One thing I know is that the agile manifesto (among other things) says:

Customer collaboration over Contract Negotiation

That in my head translates into

Shared activities over Signoffs

In my team we have started a new trend, it’s called “Signoff by High Five”, it works like this: You get 3 people (possibly the 3 amigos) and you get them working on a task, for example writing a user story. They work together and when

Our senior dev signing off on testing
Our senior dev signing off on testing

they are finished they go:  are we happy? Yes! “High Five!”

At this point you don’t need to have a document with a checklist and a signature of somebody to blame, you simply need 3 people agreeing and one simple “High Five”.

We also do this when we do exploratory testing together, at a certain point we look at each other and we know there is nothing more that we can do to add value then it’s “High Five!”

Sometimes we do that at the end of a demo, the high five there means the story is accepted.

So what happens if there is a problem and a bug appears on software we had wrongly high fived? Not much, we just worry about repairing the issue as soon as possible and delivering the missing value to our customer, no need for arguing over who fucked it up and how we can punish him. What we do is deliver value, that’s what we care about.

How Ignorant am I?

Students know that they don't know
Students know that they don’t know

When I know that I don’t know something, it’s a really easy situation, I can study and research to remove the ignorance factor and eventually I will know that thing I didn’t know. This is called first order ignorance, I know what I don’t know.

Homer doesn't know what he doesn't know
Homer doesn’t know what he doesn’t know

The second order of ignorance is a bit more tricky, in fact it can be described with “I don’t know what I don’t know”. For example you are estimating a piece of work and what can happen is that your estimates cannot cater for what you don’t know that you don’t know. Being a bit moire specific, say you are estimating writing a new feature that allows your customers to buy tickets for the cinema. You probably know that you need customers, you need a movie, you need a movie theater and a date. What you might not know is that for instance some of the movie theaters are roofless and attendance might depend on whether the sky is full of stars or there is a full blown storm over the screen. Not knowing this you won’t initially estimate the work required for reimbursing the customers that stayed at home during the storm. You will more than likely find out about this either while you are working on the software thanks to an occasional “WTF? moment” or if you are unlucky when you get people knocking at your door because they want their money back. There are quite a lot of things that we can do to try to limit the negative impact of second order ignorance, like doing risk assessment, or breaking down the complexity in many small stories. This won’t guarantee you remove it but will help in many cases. One thing that we always need to keep in mind is that “we don’t know what we don’t know” so deep inside we know that estimates are only there as a placeholder for people that are obsessed with dates, but deep inside we know that they have no real value.

This guys was very confident, an example of third level ignorant
This guys was very confident, an example of third level ignorant

Then there is a third order of ignorance, and I would describe it as “I don’t know that I don’t know what I don’t know”, basically “false confidence”. This can be extremely dangerous because third level ignorant people make a lot of confident statements because they have no clue that there might be something they don’t know, but when it hits, like Homer once said “Forget it Marge, It’s Chinatown!”

If you want to see the original work on the 5 levels of ignorance see http://c2.com/cgi/wiki?OrdersOfIgnorance