Category Archives: Learning

Escape The Consultant Trap

During a talk at a test conference a consultant told smilingly to stick to customers. The woman next to me was bristling. Her company hired consultants.

Is there a way to make this situation more painful for me?
You bet.

As a test consultant I had given her a ticket for the conference.
Ouch.

A good consultant makes herself or himself dispensable.

Definition obliged

Looking at the Dutch job market there is a cry for test automation experts. Even testers with a few months of experience have a distinct advantage over the inexperienced testers. They have a proof that they can use the demanded tool. And they are hired.

So if a company really needs test automation and no candidates have been found, then a test automation expert is flown in. This gives the company a real advantage. Or wings for the intended pun.

What is the consultant trap? After a while there is a test framework and lots of scripts and impressive heaps of test data which must be executed, updated, and maintained. In good order.

It is like buying a car which needs intensive care. If it is neglected for too long, then the car will not ride.

All the test automation stuff can be compared with a car. The mechanic is the test consultant.

No consultant means no working test automation, which means no edge, less revenue, and stronger competition. The company is trapped. This also hurts the revenue.

Path obliged

There are some managers who would object with

  • “This is a proof of concept.”
  • “The product is at the end of the life cycle.”
  • “The consultant is only hired during the holiday of one of my employees.”

These sound like sound arguments.

In this blog post I want to focus on test automation experts who are the only ones to operate the test automation in a company.
That’s bad.

Suppose you are a manager and you have the task to improve test automation. Now you have to avoid the consultant trap.

But you still need a consultant to teach test automation to your team member.
Hummm.

According to me a good teacher doesn’t make the homework of a pupil. In terms of test automation a consultant is helping your team member with learning instead of putting all test automation in place.

Don’t touch everything.

Is there a way to determine whether a consultant is a good teacher?
Sure.

Ask to explain how to set up test automation in plain language. Or ask for possible first steps in your company. Other useful resources are recommendations of other customers, talks, or blog posts.

My suggestion is to keep the number of hours of the consultant low and the number of hours spent by your team member high.

My favourite way to learn something new is pairing. As a pupil I like to share the same computer with an expert while figuring out what is happening. The teacher (she or he) demonstrates things to me and then let me struggle.

Pairing is an activity for 2 persons. I do not like searching the right note with fast scribbled words on it because of the high pace of demonstration. And then interrupting my teacher who is teaching someone else in the meantime.

Attention!

While I was learning Test Driven Development, a junior DevOps engineer was watching every step I took.

Once in a while he made remark. Then I told my thoughts aloud and he would gently lead me to the right solution. He had an educational degree and earned my respect.

In short it is about finding the right balance between demonstrating and experimenting.

Another way for me to learn is exploring. Elisabeth Hendrickson made a nice concise format for this:
Explore < target > with < resources > to discover < information>.

I personally like exploring because of the hidden treasures I might find. Dungeons and diamonds.

OK. Back to the Example.
(No DeLorean included.)

A consultant could suggest something like
“Explore data driven testing with Postman to discover a concise way to maintain test scripts.”
A bit vague.

I tend to ask questions.
“What is data driven testing?”

A good teacher will give some examples:
“Suppose you buy 2 items costing 1 Euro each. What will be the total cost?”
“2 Euro.”

“And if you buy 4 items costing 1 Euro each. What will be the total cost?”
“4 Euro.”

“6 items for the same price?”
“6 Euro.”

“23 items.”
“23 Euro.”

“What did you notice?”
“The question became shorter. And you only changed the number every time.”

“So the numbers are data. What I described were 4 simple tests. In Data driven testing a tester or developer extracts data from the tests. So you only need 1 test with a set of data.”

“What would be a good to store the data?”
“A table like in spreadsheet program.”

And this conversation and experimentation could continue for hours.

After the session a debriefing can take place to reflect and determine new points of interest.

After a while I could explore on my own. If I get stuck, then I could contact the consultant.

Let me write about exploration of data driven testing on my own.
“What is the first place to look for?
I don’t like manuals.

Wait. This is cool:
TestAutomationU offers a free online course from Amber Race about Postman.

It contains a section about data driven testing.”

For the video I used sketchnotes for note taking. When I did some experimentation in this course, I used a word processor for notes.

Also now a debriefing is the way to reflect and to determine new steps. A consultant or colleague can be a person to speak with.

Proposal obliged

If there is a company where I would like to work, then it is the one with experimentation and growth mind set. It will earn my loyalty.
Hold my engineer degree.

As a manager you might complain about the time spent. As an Agile practitioner I would answer that competitors might outperform your company by learning and teaching.

In summary hire people with ability to learn and ability to teach test automation.
Thank you for your attention.

Okay time for the legal stuff.

Disclaimer: I have no experience with this approach to escape the consultant trap. I did not do any research. But I do welcome feedback.

According to me this proposal is agile. You learn and adapt. Luckily agile is in high demand.
Say Cheese.

Disclosure: at the moment I am jobless, so I am biased. I would love to have a job with test automation. I made a special form for this occasion.

Struggling to become a DevOps engineer

Sometimes when I am cooking, a bored kid asks:
“How can I help?”
My answer is:
“You can cut the vegetables.” Or
“You can stir in the pan.”

When my kids were smaller, they loved to make pizza. And even small hands are handy for peeling off the brown layers of an onion.

Pair programming

The Test column was empty for a few days and I had finished all preparations for the items in progress. Was there a way that I as a tester could help the DevOps engineers?

“We can do pair programming.”
I was all ears and eyes. So I joined a programmer while he was coding. Once in a while he said his thoughts aloud.

“Okay, now it is your turn.”
I looked at the DevOps engineer expectantly:
“What do I have to do?”
“Programming”
“I mean: what must I program?”

A short dialogue followed. My knowledge of the development environment was almost zero and I did not know everything about Java.
“You better take a course at Pluralsight.”

Pluralsight and Java

In this company every DevOps engineer and the tester (that’s me) had access to Pluralsight. Courtesy of the employer. Pluralsight is an online course platform with a massive load of courses.

“There is a test to determine how good you are.”
Sure no problem.

A line graph is shown with three different colours: orange for beginners, green for proficient, and blue for expert. There is a green circle "Skill IQ 135" in the green line, which is connectd to a vertical line with "40th percentile" at the foot!"

A lot of readers might think:
“Wow, I would hire Mindful Tester.”
Sorry girls and guys. Up to 40% of all people got this level. This basically means that 2 out of 5 people knew as much about Java as me. Not enough to make complex changes.

Now Pluralsight had another nice feature called learning path. So I dutifully cruised through the courses. I had the advantage of two screens, so I could play the course on 1 screen and program on the other 1.

I had some doubts about the courses. It was like a typing course. Just enter the text and you have a working program. Tada.

Another doubt was the absence of Test Driven Development. I shared my concern with a bright DevOps engineer. He reassured me:
“First focus on the language, then the rest will come.”

The same engineer noted the lack of challenge, so he referred me to project Euler. This free online platform had mathematical / programming problems. Afterwards he reviewed my Java code, which I really appreciated.

Java is great, but my team used more tools to develop programs. So I followed courses on Spring and Maven.

At the end of the course I could get some certificate. With no real practice I had some knowledge. On the other hand my experienced DevOps engineers loved Pluralsight. They set the video speed to double speed and picked up their nuggets of knowledge.

HTML, CSS, and JavaScript

“I noticed that you focused on layout.” my scrum master said.
“We need someone who can design good interfaces. Maybe you should focus on the front-end.”

In this company the front-end was a website. So I had to study HTML or HyperText Markup Language, the basic programming language of web pages. I was familiar with HTML. <b> hello </b> is shown as hello. b is short for bold.

I picked a Pluralsight course for advanced web development. This was both horrifying and clarifying.

So I should have basic JavaScript and CSS knowledge. I picked a course with JavaScript: CSS was needed. I switched to CSS. Only HTML was needed. Phew.

What is CSS or Cascading Style Sheets? In my own words it is a way to style a website in s consistent style. E.g. all the buttons look alike and the web page can respond to different screen sizes.

I followed two courses of CSS. They were practical, so I was able to modify the look and feel of a website without changing the functionality.

Next stop on Pluralsight was JavaScript. In my own words this language is used by browsers on the computers or mobile phone of the users. This programming language basically reduces the traffic between the front-end (e,g, website) and the back-end, where the important things happen like handling a payment.

I was lucky again. There were some basic courses which gave me some practice with JavaScript.

If I look at Pluralsight there are some good courses, but it took time to find them.

Edx.org

The biggest disadvantage of Pluralsight was no examination. My scrum master found an interesting alternative, edx.org.

You could call it freemium. The course and examination are free, but you have to pay a premium for the certificate.
Freemium is “free premium” without ” pre”.

I picked HTML5. The course was for beginners. But I was really happy with all the Pluralsight knowledge obtained. The course gave me a good insight in HTML5, but it also showed its limitations.

Next certificate was CSS Basics. Again I had an advantage and obtained enough points for a certificate.

ReactJS should be possible with my basic knowledge of JavaScript. In my own words ReactJS is a language, which can better interact with users than HTML5. The course was tough and I dropped out.

Edx.org and Pluralsight

Edx.org had the same choice problems as Pluralsight. I had to follow course parts to determine whether there was a click.

A major difference is, that Edx.org courses are time bound. After a deadline the course is closed and only accessible for old students of this particular course.

Edx.org has a slight advantage that it offers up-to-date information. Pluralsight has some old courses. For a Maven course this is tricky. Old versions as shown in the video cannot be used.

Another deadline disadvantage of edx.org is that timing is personal. Several courses acquire 2 hours a week. For someone new to coding this number is too low. Sometimes one block of 2 hours would take me 40 hours. There is also a deadline for a certificate. My advice is first to get the required numbers of points and then buy the certificate.

Once I bought a discounted certificate before getting the required points. Let me write it was not my best investment. There are limitations to be aware of.

Security, privacy, and usability

A DevOps engineer does more things than programming. So I learned about website security, privacy laws, and usability.

In the meantime I acquired some DevOps skills like looking in and understanding log files.

Status update

In April 2018 I got the disturbing news, that I was fired.
No bingo for me.

In case you want to know what I am doing right now.

Thanks for reading. I really appreciate it. Cheers.

Other online courses

This year Trish Koo asked for some online programming courses In the answers there are some online platforms I will try the next time.

Delegate report about CITCON 2017 Amsterdam

“We did it already 14 times.”
Jeff paused for a moment,  “and this one was amazing.”
He was quite modest.

Gotta attend this 1
A few months ago a speaker told about his experiences at a conference. He had difficulties to make contact. One of the responses intrigued me. Mohinder Khosla mentioned CITCON in Amsterdam.

For a Dutchman this was interesting. The price was also reasonable 0 Euro with a modest request to cover the costs. But how could I determine whether the price was right? Among the participants I noticed Gojko and Cirilo. Wow. Then I read a recommendation of @testobsessed and I was sold. I mean the ticket.

Not bad for a conference with a marketing budget of 0 Euro.

Evening 1
Before I want to describe, what happened, I have a small warning. This post will focus on the process and not on the content. The reason I chose to is simple: people came there to share information and difficult situations. So reader beware.
Now it is my task to draw you in the atmosphere of CITCON 2017 Amsterdam.

The first day I used public traffic to go to the venue. It was hosted by Xebia. This office had all the elements to affect people’s mood. There was a standard meeting room with glass walls, a comfy corner including sofas and game computer. Did I mention the TV? There were rooms where I could see concrete shining through.

Evening 1 started awkward. I only knew one participant and he was not present, so I talked with new people. The talks were friendly with a formal undertone. Really polite. Just probing around.

Jeff and P.J. started the conference in a room with more than 100 seated people. They casually introduced the format. Asked for feedback (“5 stars is good.”). And let all participants introduce themselves and telling about things they were excited about or personal struggles. Those small stories let me connect to the people telling them.

The subject proposal session was described. At the moment everyone felt at ease P.J. and Jeff told, that they would take a step back. They would only help in case of problems. It was “your conference”. This lead to an extension of the Q&A. After the last question the organizers withdrew from the flip boards. It was up to us, the delegates.

After the warming up the real stuff started people were requested to pick a subject and clarify it to the audience. A queue formed in the room. People with posts its interested in solutions or volunteering to share information.

I watched the process for a half hour and I noticed the time. Time to send text message to my family, that I would come home later.
I really liked the way, how the subjects were presented. The question part was really clarifying. Participants tried to understand the content. The atmosphere had changed: it was warm and people were supportive.

Let me give an example. I proposed a session to share information about blogging. For me it is a way to clarify my thoughts and reflect. I was questioned about it:
“Why do you call it ‘Blogging as a service’”?
“I needed a title … and it is a service to the Community and outside the Community.”
BTW there was also a session proposed “What’s in it for me?” It was listed In the final program.

After the subject proposals I voted and went home. Afterwards I heard from a fellow Dutchman, that he was requested to compose the program. He kindly declined. He had already arranged the venue. This was a reasonable excuse.

Morning 1
The next morning I entered the office, where I had a small chat with Pati about conferences and IT. I skipped my second breakfast and collected a good coffee. There was a friendly buzz in the air.

I went to the program and browsed through the stickies on the flip boards. My session about blogging was accepted. Yay. Then the bad news sank in: there were too many interesting sessions at the same time. That happened to me years ago.

I arrived early for the first session. I remembered that several stickies or subjects were combined. The room was quite big for the small group. I moved my chair to the middle of the room for better interaction.

The first session was about testing and I tried to participate as good as possible. I had to watch my politeness, but I had no time. The subject was too interesting. I bent slightly forward and started contributing. I was in business mode: polite and helpful.
The day before the code of conduct was explicitly mentioned. Proper use of language was also checked :
“Can I use the F word here?”

For the second session I had to find the stairs. Glass walls wrre exceptionally handy in this particular case.

The previous session was still in full swing. I put me in the background, while observing the room. Sofas. These are great: It is difficult to maintain a neutral position. So I had an extra indicator for inclusiveness.

So I was in my session about blogging. And someone else. Okay time to start the Q & A. There were good questions. I got other questions than expected. Those made me think and reflect on my actions.

After a while other people joined. They had used the Law of Two Feet. If delegates were not interested in their session, they were allowed and encouraged to change the session. For my session it was welcome.

Lunch 1
During the lunch people were still having sessions. One session was about strange effects of particular Unicode on programs. A bit too tech for me.

You might have noticed that I changed the category to ‘Techies conferring’. My first thought was, that CITCON was about testing, until I read the description. It was about integration and testing. Other technical people would also be present.

During the lunch I joined a conversation about 3,000 pipelines. This was another world for me. So I had to drop my idea of an extremely small set of pipelines. There can be more than 1.

In a later session “mister G” had a good suggestion to improve builds. Suppose you have suppliers who are only focused on their own software. “Just let them provide tests to each other they can use in their build. If the build breaks they have something to talk.”
G thanks.

Writing about the afternoon let’s switch sections.

Afternoon 1
After the section switch I try to stay of content, but that is difficult.
One participant told a story about switching lines in code in order to cause bad unit test results. If the unit test did give an OK, there was likely a bug in the unit test.

I also saw some really awful Gherkin to describe actions instead of abstractions. Gherkin is good for testing of flows. For tabular stuff FIT of Fitnesse are the tools to use. And Concordia is another good option for the remaining option. Thanks Gojko.

For one of the final parallel sessions people were requested to bring real life testing problems. I joined this session. The facilitator did a good job to clarify the problem. A lot of whys and whats. I thought I could handle a lot of testing problems, but these were really hard to solve.

O yeah. Back to the process. I went to a big meeting table and met someone else. After some small talk we decided to start. About …
I volunteered to take a picture of the stickies. My hand went to my pocket and stopped. The location had been changed. I had been warned. So I warned the other and up we joined the session in progress about Gherkin. You might have read about it. Some centimeters higher.

After the session everyone was gathered in a room to share their AHA moments. There were a lot. I saw people who showed emotions. I saw people ready to take action when they would be back in the office.

People referenced to the ‘Gentle punch in your face’ session with Jeff. Other people had some great conversations. Outside in the sun. Hopefully a dev snd a tester. The truce is out there.

Evening 2
With more than an hour travel time and past my dinner time I had to find some place to eat. “It always works out.” Jeff reassured the people. Indeed a big group assembled on a terrace enjoying snacks, French fries, and burgers. They even had veggie ones.

I talked with other testers, who knew about context driven testing and cynefin. I don’t meet these testers very often.

There was a friendly guy with a nice sweater with a known software supplier on it. That made me curious:
“How did you get that sweater?”
“I work there.”
“I use your software.”
“Me too.” another techie joined in.

I ended in a group of Finnish guys. Talking about things. Things different from IT and work.

Thanks P.J. and Jeff for the conferring.

A musing post

Some readers might wonder about the fact that I tweeted Lisa. Yes, the Lisa from the testing books. And yes, Janet was the other author.

Was this a typical case about courage? Nope.

If you would ask me, that I would use Twitter 5 years ago, then my answer would be: “No way”.

Today Twitter is my way to get updates from the testing community.

I want to stress that my tweet to Lisa is not about ‘Don’t fear your peer’.

I just grew.

 

Is it possible to find new ways of testing in a tester infected country like the Netherlands? Sure.
But there are already so many test methodologies and specialists.
So what?

Hark! The testing muses sing
[On the melody of ‘Hark! The Herald angels sing’ ]

An artist gets her or his inspiration from a muse. Some readers might think about a person, whose mere presence brings music or words in her or his mind.

For testing there are other muses. Do they sing Mozart? I do not know.

A muse like Lisa tweets. She writes.

Hark! The testing muses write
[On the melody of ‘Hark! The Herald angels sing’ ]

At this moment one muse Katrina is writing a book. The announcement led to great excitement in the testing community. And she blogs.

Read the stuff the muses wrote
[On the melody of ‘Hark! The Herald angels sing’ ]

I read posts from Maaret, a rather influential one. I read posts and books from Elisabeth, Alan, and Jerry.

I just grew.

An Appendix to Visual Testing
Last weeks I read some blogs, which I will incorporate in my workshop at TestBash NL. As you might have read, it is about visual testing.

I combined my thoughts and experiences with the ideas from blogs of my testing muses.

Now I am in the editing phase for my workshop: figuring out some logic in my slides, creating mind maps for structure, and using insights from sketchnotes.

It was and is a wonderful journey. (Hark! The muses co-create.)
Thanks for the invitation, Rosie and Huib. Other testing muses indeed.

I just grew.

Teaching = Learning

This week I sent 2 proposals for the Spring Event to TestNet, the Dutch Special Interest Group in Software Testing. One was for a presentation for 3 quarters of an hour, the other one for a workshop of 1 and a 1/2 hour. The process of writing proposals was time consuming and intense. My proposals will be rated and then ranked against the other proposals. Finally I will be notified, whether I have a speaker slot.

In 1992 I went to my first Dutch Juggling Convention. I was thrilled; I would be performing in the Public Show. It had taken me months to acquire the Blow Off Your Socks level of juggling. (I still dropped my juggling prop though.) The first part of the convention was a long warming up for my act.

On the first day I walked in the gym. I noticed a few people juggling, but a big white paper sheet drew my attention. It was a table. On one side time slots were mentioned, on the other workshop areas. 2 or 3 workshops had been filled in.  A marker was hanging on a string.

I am still amused, how simple it is to book a workshop for myself on a juggling convention. No rating, no ranking. Just write down my name, juggling prop, and level. Or one name and two nouns. (The only exception I experienced is an International Juggling Association convention, but that is another story.)

There are many possible reasons, why I signed up to give a workshop. I only wanted to share knowledge about juggling. My favourite juggling prop is the devilstick. Wouldn’t it be great, if there were more good jugglers with a devilstick? So this workshop was not planned. A coincidence to happen.

If there is a huge juggling convention which cannot be ignored by a mainstream juggler, then it is the European one. My first European Juggling Convention was in Leeds. This time I came fully prepared. I had rehearsed two workshops for devilsticking in English, which definitely differs from my native language Dutch. The schedule of each workshop I had written down and memorised. And the tricks and combinations were still evolving during my preparations. The most difficult part was to locate the workshop schedule. You still remember that big white thing on the wall attached to a marker. I had planned two workshops, but gave a total of 3 workshops. Good response can be a nudge in the right direction.

Looking back I notice exciting patterns:

  • Determine the biggest step people can take and still follow me.
    [Blank faces.]
  • Discover and share new tricks and combinations, because attendees love them.
    “Did you write a book?”

The most important thing I learned was to observe the attendees. A struggle with the devilstick triggered the reaction: I had either been unclear or combined too many movements. So their struggle became my struggle. By dissecting my juggling tricks for my workshop pupils I learned more than I imagined. I determined the elementary movements to make more combinations.

Once a young woman was impressed by my flurry of movements of the devilstick. Then a man remarked dryly: “He is just combining a few little tricks.”

Let’s go back to testing. It is my way to earn my living after all. In one consultancy company I had to earn my place as a teacher or workshop leader. I spoke with several colleagues about test courses. Yes, they were looking for new teachers. My pitch was: “I have more than 15 year of experience with giving workshops in juggling.”

In the meantime I started to teach mind mapping to my colleagues. The whole process of dissection repeated for me: why do you add branches clockwise? What is a fast way to make a mind map? A lot of questions, which bothered the attendees. I learned to mind map according to the rules, but also using mind map programs working around their restrictions.
BTW I wrote this post using a mind map program while commuting. I moved and added branches to make this a compelling story. Hopefully.

My pitch became: “I have experience with teaching mind maps to colleagues in our company. These are my scores from their feedback.”

Once I had a funny insight to illustrate testing Virtual Reality with juggling. I had one brilliant test idea to start with. My colleagues were supportive and a Bit sceptic (with a capital B). To everyone’s surprise my proposal was accepted in 2008. The preparation gave me lots of energy and inspiration. What is a good test idea and why? Let me break it down for you and show it to you with Real Life juggling.

Then I noticed that there were more people willing to speak than available speaker slots in a test conference. As you might have guessed: I did not speak at many test conferences.

I started to miss the thoughts in my head breaking down my testing examples and improving them. So I began to experiment on my work, but that was not enough.

Why not start a blog and write about mind mapping, SFDIPOT, and 2 screens?  Wouldn’t it be great, if there are more good testers? So this blog post was not planned. A coincidence to happen.

 

Losing gracefully

“Han Toan, something has to be tested.”
I got a short briefing, csv files and decent specifications. A senior tester and I had to test an interface. He started sprinting: opening a csv file and logging bugs. I froze. No time for writing test cases and reviewing them. I confessed to the tester, that I was uncomfortable with the situation. I tested a csv file, but I was losing gracefully.

Theory and practice revisited
The following text is translation of a text I found in a Dutch farm:

“Theory is: if one knows everything and nothing is right.

Practice is: if everything functions and nobody knows why.

In this company theory and practice are combined.

Nothing is right and nobody knows why.”

Learning to win
One evening I was playing Skip-Bo with my wife. My plan was to lose gracefully. So I forced myself to play the wrong cards. Her position in the game improved gradually. She was happy, so was I.

After a while I was holding too many good cards in my hand. There was no way, that I could hide them for long. I would either win or lose awkwardly. The last option was worse than the first one.

In the months after this clumsy situation I tried to repeat the steps during other games. What was the first wrong move I made? What were my following strange steps? Based on my observations I was able to extract a single rule to win or heuristic.

I think, that I might be able to find scientific evidence for my heuristic. But I chose not to, because it worked. That was my goal.

No log in required
During an afternoon session James Bach told about testing without scripts. He was in a hotel lobby and saw a computer. He described the techniques and heuristics he used to get access to this computer. At the end he succeeded.  

I was in the library. Killing my time with browsing newspaper articles. But that was not exciting after a while. I had an appointment within half an hour. In the meantime there should be something to be tested. I was still staring at the computer, when I remembered the story of James.

The computer environment had 2 access levels for normal users. A guest could use only basic functions, which were also limited. I did not have a library subscription, which would grant me a time slot to use standard office software and the browser. I could buy a time slot, but that would lower the challenge.

So I started testing the applications. There were many search engines for news and books. Then I noticed, that I could open the browser. It did not take me much time to go the download area. A document with Resume in the title drew my attention. I expected an error message, when I would attempt to open the file.

Then I actually opened the file. I had access to Word. And to personal data like name, address, birth day, …. I got more information than I had anticipated.

It was time to inform the information desk about this particular situation. One of the women acted adequately:
“Did you log in?”
“No. I did not log in.”
One brief look on the computer screen made her check the other computers in the library. She asked me the steps to reproduce the error. After my answer she continued with:
“After logging out the cache should be cleared. I’ll contact the system administrator about this situation. ”

I went back to the computer, which still showed the resume. I closed it. Then I noticed, that a pdf reader had been installed on the PC. One of the recently opened files contained passport in the name. One click gave me a high resolution full colour scan of a passport including social security number and picture of a fellow citizen.

I had made a little start. To explore in unknown environment. Without a script.