Sunday, September 17, 2017
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.