Wednesday, February 21, 2018

Cambridge Lean Coffee

This month's Lean Coffee was hosted by Roku. Here's some brief, aggregated comments and questions on topics covered by the group I was in.

My favourite context-free test is ...

  • Turn everything up to 11. Put all of the settings on their highest levels and see what happens.
  • Power cycling rapidly and repeatedly.
  • Sympathetic testing. Just getting a view for what the product offers.
  • Simply trying to use the product.
  • Smoke test.
  • Try to do the opposite of what any documentation says.
  • Ask how the users will use it.
  • Ask what the customer wanted.
  • Find someone without prior experience of the product to look at it.

How do you enhance your personal development in a busy environment?

  • We are given time for personal development at work, but I end up dong work stuff instead. 
  • The company empowers us but it's on us to use the time.
  • I don't want the others on my team to feel that I am slacking by taking the personal development time.
  • I might come in to work early to do some personal development but then find myself picking something up from the backlog.
  • I want to learn python but, because I know I can do it, I'll always revert to bash for quick scripts.
  • I did a Masters degree and the structure, and deadlines, particularly exams, helped me to focus on it.
  • Book slots in the diary for it.
  • Make joint commitments with others because you'll keep them more reliably.
  • Our company puts tasks into backlogs for training, so it's explicit.
  • Can you find goals that can be done on every project, rather than needing time set aside?
  • We might like to do a hack day.
  • We had an internal team conference.

A development process with no mention of testing.

  • Our company has produced a process for architecting or rearchitecting software, something all teams must follow.
  • It says things like "talk to X before going too far down the road in such-and-such an area".
  • ... but it has no mention of testing in it. Should it have?
  • If it's about rearchitecting, perhaps there are already tests? 
  • Or you can use the original implementation as a reference.
  • It's on you to explain the value of testing.
  • Any change to the code base can yield bugs.
  • "We're just moving classes around" being safe is a dangerous assumption.
  • Where's do you think there might be problem? For example, is it that there's no mention of testing in the document, or that you think that nothing you'd call testing will happen, or something else?

How do you avoid mini waterfalls in Agile?

  • There is a natural process: work has to be done and won't be ready until the sprint end. Then it's handed over and needs testing!
  • Are sprints a necessity?
  • No. Some teams work in continuous flow.
  • Could you try pairing, to remove or reduce the impact of the handover point?
  • Could you break work down into smaller chunks?
  • Could you have predetermined acceptance criteria? (And non-acceptance criteria?)
  • Could the stories be closed earlier (e.g. are the developers hanging on to them after finishing?)
  • Could there be too much work in progress, so stories progress slowly?
  • Can you sit with the developers? Proximity breaks down barriers.

What is a good job interview?

  • From whose perspective?
  • Do you ask interviewees to do a task, write tests, talk through their CV?
  • How do you react to tasks as an interviewee?
  • I've rejected roles because of how the company has come across to me.
  • I've accepted roles because the task was interesting and enjoyable.
  • Interviewee: show their best in whatever respects are important to them and for the role.
  • Interviewer: facilitated in a way that let the interviewee show their best in areas that are important to the company, got some sense of the interviewee as a person, and saw how they can think.
  • I think of interviews as auditions.


  1. How do you avoid mini waterfalls in Agile?

    I had this in a previous role, where we were working with a remote team and where we did not get our hands on the deliverable until after their sprint had finished. We ended up setting our "Agile calendar" one sprint behind the dev team. In exchange, they built time into their estimates for their next sprint for picking up bugs we found in their previous one. We would have a conference call every Tuesday morning to triage the identified bugs for the week. It ended up working well (sort of).

    The odd thing was that we were only 100 miles apart - us in Leicester, the devs in That London. (UK) On the next project I worked on, the devs were located offshore, in Moldova; but we were much more collaborative, we used video conferencing to participate in the daily stand-ups, IMs for conversations, and we ended up with a far better relationship with the dev team than in the first project and working in a more Agile way.

    What is a good job interview?

    I had a job interview with - let's call them Company A - where at the second stage, I was talking to the CEO/company owner. I'd been made redundant from my previous role because the company's distant venture capitalist owners had decided that in-house dev and testing was "an unaffordable luxury", and they'd gone out and bought the company that produced the main competitor product to Company A's to replace the in-house provision. I talked about this to Company A's CEO at the interview.

    Feedback to the recruitment agency was that I'd out-performed the only other candidate who'd made it to that stage, but they were still thinking about what I'd told them. It took them a week to decide that I "wasn't a team player". This mystified me, because I'd talked a lot about team roles and team working as it was really how I'd worked for the previous twenty years.

    In the end (and it took me a few months to realise this), I reasoned that there had just been a complete mismatch of ideas. I'd dissed the owners of my previous employer because they were distant and we were just an entry on a balance sheet and they showed me no loyalty, so I owed them none; but the Company A CEO had taken that personally because he was the owner and most likely thought that I had a dim view of all company owners. He never said that in the interview, so all I can assume is that we had a complete mismatch of views.

    Stuff like this just happens. There's not a lot you can do about it. Sometimes, in an interview, you just have to chalk it up to experience, attach no blame and move on to the next one.

    1. Thanks! In the mini waterfall case, can you say what made the Moldovan developers more collaborative? Was it them, one of them, you, your team, different technology, something else?