Being a Distributed Tester was hard

As a new father, being able to work a few days per week from home has been a great way to help adjust to our wonderful new addition and the demands that go along with him. Days in the office are great for face time and collaboration and days at home are for getting shit […]

I’ve fallen and I can’t get up

A common theme around testing is answering the question “How did you fall into testing”. Honestly? I cringe a bit every time I hear this question. It might be that English is not my native language, but when I hear “fallen” I get the impression of some…

Developer! Developer! Developer! Tester!

Last weekend, one of the testers from my team was speaking at Developer! Developer! Developer! East Anglia, a .NET community event. Naturally, because I’m a caring and supportive manager — and also as it was in Cambridge, and free — I went down to have a look. Despite not being a developer, it wasn’t hard to find something of interest in all five sessions, although it’s a shame the two talks on testing were scheduled against each other. Here’s thumbnails from my notes.

Building a better Web API architecture using CQRS (Joseph Woodward): Command Query Responsibility Segregation is a design pattern that promotes the separation of responsibility for reading data (query) from writing data (command). A useful intro to some concepts and terminology for me, it went deeper into the code than I generally need, and in a language and libraries that I’m unfamiliar with. I found Martin Fowler’s higher-level description from 2011 more consumable.

I do like listening to practitioners talk about topics they care about, though. Particularly enjoyable here was the shared relief in the room when it became apparent that many of the attendees, despite being advocates of CQRS, found that they all violate a core principle (commands don’t return data) in favour of practicality from time to time (e.g. when creating users and returning a unique ID).

Client-side web performance for back-end developers (Bart Read): Chrome’s developer tools got a massive big-upping, particularly the memory monitoring and task manager. Bart provided an interesting list of heuristics for improving user experience on the client side which included: load only enough to show the first thing that that the user needs to see, do the rest lazily; inline what you can for that first load; if you can fit it into a single packet even better because that reduces the cost of latency; It’s the latency, stupid; load all adverts last, really last, totally the last thing that you do on a page, honestly never do anything with adverts until you’ve done every other thing you have to do.

Visual note-taking workshop (Ian Johnson): I’ve thought a lot about my own note-taking over the years and I know that it’s heavy on text. I’m very comfortable with that, but I like drawing and I’m interested in trying sketchnoting to see whether going out of my comfort zone can give me another perspective or perhaps technique to roll into my usual approach.

This talk was a primer: some basic iconography, some suggestions for placement (corners for metadata such as dates, speaker name, conference); thoughts on prominence (bold, colours, boxes, underlines, …); reminders that sketch notes are not about realism; exhortations to just go for it and not worry if it doesn’t work out; and this rule of thumb for ordering noting activity: content then boxes then colours. (Related material from Ian is here.)

Testing Demystified (Karo Stoltzenburg): Karo’s talk is the reason I was at the conference but she’s written about it already in Three Ways to get Started with (Exploratory) Testing as a non-Tester so I won’t say more. I will, however, mention that I took the opportunity to practice my new-found sketchnoting skills in her talk. As expected, I found it hard to resist writing a lot of text.

Monitoring-First Development (Benji Weber): Unruly are an XP shop applying XP development practices in a wider context. In the product they’ll write a failing test then code to make it pass, and in production they’ll write a failing monitor (such as checking for equivalence between two data items using a tool such as Nagios) and then implement whatever functionality provides the data for the monitor. A neat idea, and it works in their context. (Similar content here in an earlier lightning talk by Benji.)

I was really impressed with DDD: 300 attendees, friendly atmosphere, just enough organisation, free, and good spread of talks.
Image: DDD!

Mentoring question – where do I start learning testing

Reading Time: 5 minutesI got the following question in my mentoring section: “Where do I start in learning testing?” Obviously, this is very generic question, yet I think I have some stuff to offer on it. So, I decided to reply to it publicly. Here’s a short list of things you can do to start with learning testing. Learning testing is not for everyone. The way that the question is asked, uncovers the hidden assumption that there’s one definitive answer, something like: go […]

The post Mentoring question – where do I start learning testing appeared first on Mr.Slavchev.

Forget It

Now where was I?

Oh yes, The Organized Mind by erm … hold on a minute … it’s on the tip of my tongue … err … ummm … there you go: The Organized Mind by Daniel Levitin, a self-subtitled guide to thinking straight in the age of information overload. And surely we all need a bit of that, eh?

One of the most productive ways to get your mind organised, according to Levitin, is to stop trying to organise your mind (p. 35):

The most fundamental principle of the organized mind, the one most critical to keeping us from forgetting or losing things, is to shift the burden of organizing from our brains to the external world … This is not because of the limited capacity of our brains — rather it’s because of the nature of memory storage and retrieval in our brains.

Essentially, memory is unreliable. There are numerous reasons for this, including: novelty being prioritised over familiarity, successful recall being reliant on having a suitable cue, and — somewhat scarily — that the act of remembering can itself cause memories to change.

To get around this, Levitin favours lodging information you’ll need later somewhere outside of your head, in the place that you need it, in a form that’ll help you to use it straight away. He likens this to affordances as described by Don Norman in his book The Design of Everyday Things which I blogged about in Can You Afford Me?  From there:

an affordance is the possibility of an action that something provides, and that is perceived by the user of that thing. An affordance of a chair is that you can stand on it. The chair affords (in some sense is for) supporting, and standing on it utilises that support.

Failing to externalise can lead to competition for mental resources when a new primary task comes along but in the background your mind is rehashing earlier ones (p. 68):

… those thoughts will churn around in your brain until you deal with them somehow. Writing them down gets them out of your head, clearing your brain of the the clutter that is interfering with being able to focus on what you want to focus on.

Perhaps you’re worried that too much organisation inhibits creativity? Quite the opposite, Levitin claims (p. 87):

Finding things without rummaging saves mental energy for more important and creative tasks. 

Which brings me to testing and a conversation I was having with one my team a couple of weeks ago. In it, we agreed that experience has taught us to prefer earlier rather than later organisation of our test notes, the data we’re collecting, and our ideas for other possible tests.

I’ve also written at some length about how I deposit thoughts in files, arranged in folders for particular purposes such as 1-1 meetings, testing experiments, or essay ideas where they may later be of value (e.g. Taking Note and A Field of My Stone).

Even posts here on Hiccupps serve a related purpose. I find that I don’t easily remember stuff, but curating material that I find interesting and writing about it, and adding tags, and cross-referencing to other thoughts helps to me to retain and reinforce and later recall it.

Try to keep everything in my head? Forget it.
Image: Amazon