Skip to main content

Things I’ve learned from running lean coffee and why you should organise one too

I’ve been running a 30 minute lean coffee session in my workplace every two weeks for 18 months now. Our first meeting for this year is tomorrow. I started the sessions when a bunch of people from work went to the Agile Australia conference and we wanted people to keep sharing ideas and other learnings. Now I invite any software developer in the building so my invite list has grown to 99 people but I typically only get about 10.

How lean coffee works: A few people from work got to take part in one at Agile Australia but I missed it myself. So I just got online and read everything at http://leancoffee.org/ I grabbed a bunch of index cards and texters and was ready to go.

I feel it’s super important to my company as it’s the only time people from all the software development teams can meet each other and discuss things. It’s helping break down walls between teams and helping ensure learnings can spread to other teams quicker.

  • Location matters. I started off in the building’s cafe but it would get too noisy when the coffee grinder is going. So we moved to another table in the entryway. I like that we’re highly visible but also in a casual environment. I find meeting rooms too formal. I also like that there are lots of tables so I can split the group up on demand.
  • I setup up one table for the discussion and if that table gets full I ask someone with experience to help run that table and move to a new one. I try and split like this once we hit 8 people. Timing of topics is done on a phone so anyone can do it and once someone has come a couple of times they know the routine and can run a table that has already been setup.
  • I am always prepared to throw in a topic to get things started. I especially like light hearted subjects. Last time my card was “How would Santa write software?”. This is extra useful when I’m going to leave a table to setup the next one.
  • Be a good host and facilitate the discussion. If you see someone get cut off ask what they were going to say at a later moment.
  • Take notes. You never know when you’re going to learn something. But also you might get useful feedback for the lean coffee at unexpected moments. Who else should I invite? What’s a good topic for next time? Do we need to change the location? The time?
  • I run mine for 30 minutes as it’s pretty hard to get people to leave their desk when I’m not supplying lunch. But at 30 minutes we are lucky if we can get through 4 topics. You could do it an hour but I think the energy and attention would quickly drop after that. Also I host mine in the morning as I find it easier to get people to make time just before their standup meetings.
  • I only get a few people attending. And that’s okay but I try and push to get people from different teams coming. It’s all about sharing information and if it’s only a couple of teams then there is a huge part of the company we’re not hearing from.
  • Encourage people to bring coffee and tea. I like the casual feel it helps add.
  • I use index cards instead of post its. I find it works better on a flat table and means I’m less likely to have a texter bleed through and mark the table.

Comments

Popular posts from this blog

Setting up Fitnesse on Ubuntu in 7 steps

Some pretty basic steps but just to make sure it's here for everyone to see. Setting up fitnesse and running the jar is easy enough. Just go to http://fitnesse.org/ and get started and do it on your desktop just to see it in action. But for me that wasn't good enough I wanted it to run as service on ubuntu. I stole a few tricks from how ubuntu runs jenkins and setup fitnesse a similar way. 1. Create a user and group for fitnesse (optional) I didn't do this because I wanted tomcat, jenkins and fitnesse all running as the same user. Call it laziness to avoid any permissions classing but it doesn't change the process that you need to create or choose what user you're going to make it run as. Don't make it run as your user or root! 2. Download the jar file and place it in /usr/share/fitnesse Make the folder too of course. It can belong to root as long as the fitnesse user has read access 3. Create the folder to run in at /var/lib/fitnesse Fitnesse user needs...

RestFixture

So most of the tests I'm writing now in Fitnesse are using RestFixture . Being able to do all this black box style testing has helped me get a lot of tests up and running without having to change the existing code base. Now I've taken a step future with my own little fork  so I can use scenarios and build nice BDD style scripts. But first I want to give me own quick guide to using RestFixture Step 1: Installing You can dive straight in by grabbing the latest jar files for RestFixture here  https://github.com/smartrics/RestFixture/downloads If you know what you're doing can get the nodep version to work nicely along side other libraries you may be including in Fitnesse. But I grabbed the 'full' version and unzipped it into a RestFixture folder alongside my FitNesseRoot folder. Step 2: Write your first test I took advantage of the built in Fitnesse api as a basic test and wrote a page called RestFixture with the following contents !define TEST_SYSTEM {slim} !...

Are mocks/fakes reusuable?

Programming 101 states: Don't copy and paste code. If you find yourself doing something repetitive then do it right so you can reuse the same code. Functions, classes and even separate files all serve this end. Now that I'm writing tests all the time I often find myself creating Mocks. Mocks are where you tell code to use a pretend version of some functionality instead of the real one. It could be because the real one does something you don't want in your tests (writes files, reads a database) or it could be that you've got some messy legacy code you can't to pull into your tests (yet). There's other reasons too but you get the idea. So if I make a Mock version of a class it makes sense to try and share that with everyone else that might be trying to test with that same class. Or does it? That assumption has some serious flaws that I'm only now starting to understand. And here's a few: Behaviour you need to test may be completely different to the next gu...