Wednesday, September 4, 2013

Live and learn

In spring I wrote about a big change on my career, continuing to work as a tester but changing almost all other aspects of the working context, the aspects being:

- Customer acceptance testing role into Developing our own products
- Waterfallish into Agilish project models
- Business oriented & simple into Mission critical & complex domain
- 8000km from developers into a Few meters from developers
- Consultant into Employee
- Non-technical into Technical

So how has it been?

Comparing my new job between the jobs in the organizations I've previously worked for isn't really possible, or fair, due to the many contextual differences (trust me, I worked on a blog post comparing the differences for a long time until eventually scrapping it). But still there are huge changes that have happened to me as a tester, which I'll briefly discuss here.

Information over-flow
The biggest change has happened regarding getting information on the contents of the changes I am testing. I had got used to spending a lot of time digging through different communication layers in order to get some rational data about what, why, and how the changes were done. Now it's almost the opposite: very approachable developers eager to help me and extremely dedicated product owner sitting behind me. Mandatory descriptions on how changes are done and how those should (at least) be tested are documented and available. Full access to code repository to see the specific code changes done per a change. All kinds of documentation regarding the many aspects of the system we are working on. Now my problem is to try to solve which sources of information to use and when, and to understand the information I get.

Was previously just a word for me. I had gotten used to having testability built in through the user interfaces, and having little or no need for any "test features" (now that I am thinking, I would have had a need for these many times...). Now after working on algorithm development where there is initially little or no control to the inputs, and little or no visibility for the outputs they produce, the situation is really different. I have to be active in asking and suggesting ways how these variables can be modified dynamically during testing, and in trying to convince (myself and others) that those are worth the development effort needed. Today, test interfaces are my trustworthy friends, and logs are my lovers.

As a consultant, I had started to think that I am a software testing expert. I had started to think I knew the secrets of the software testing business. I had started to think, that I am to software testing what Neo was to the Matrix. Awakening from the day dream was pretty rough (actually it also kind of felt like Neo's awakening in Matrix looks like :) ). So currently, I think, I'm looking at the world of testing with a bit more open eyes, and open ears. (though I think it is already passing and my ego is starting to rise again, alas this blog post).

Agile testing
Hey, not that much has changed there. Of course there are differences due to the changes in the context, but testing is still testing: exploring, learning, and experimenting. Huib Schoots said it beautifully and I agree:

there is no Agile testing, but instead testing in agile context.

Live and learn.