Open Space #2

Jeff Foster
Ingeniously Simple
Published in
3 min readDec 11, 2017

We’re trying to use open space events at Redgate to encourage people to get together and use their 10% time to learn together.

We made a few tweaks since the last event. We had more flexible timings (blocks of 30 minutes, use as many as you need) and better descriptions of the events (index cards instead of smaller post-it notes).

Agenda for Open Space #2

We ended up with a smaller program than the last time, but there was a great variety in topics from Santa Claus, via Kubernetes and on to bells.

What did I learn?

Kubernetes is awesome.

santiago arias and Chris presented a whistle-stop tour of Kubernetes, a container orchestration framework. Read more here!

A pod is a collection of containers (and most containers are docker containers). Containers within pods share an IP address and port space and can communicates with IPC like shared memory. Pods alone are things that can born and die, they aren’t automatically resurrected.

A service is an abstraction with defines a logical set of pods and a policy by which to access them. A service might be something like a load balancer or a port. You can also use a service to access an external service (like a database or front-end cluster).

A deployment specified a desired state for pods. It’s a declarative description of how the pods will be deployed.

All of these things are described using YAML (it’s like XML, but we moan about it less because it’s not XML).

Enums are Evil

We had some feedback last time that we didn’t have enough contentious topics, so I thought I’d try to argue that enums are evil (the previous talk was on the Anti-If Campaign).

I tried to argue that Enums violate the Open/Closed Principle. We have some code that wraps types in SSMS Object Explorer, when new types are introduced in SSMS we have to edit the code (even though it’s just a thin veneer over a string). How could we get around that?

Well, you can’t. Using an object ain’t going to save you.

Good debate ensued. The real problem wasn’t so much the enum, it was the proliferation of the enum talk into different bounded contexts. The enum in our case represented SSMS types, but in some examples we we’re using it for slightly deeper meanings, thus change was hard.

We need a gateway (via https://martinfowler.com/articles/refactoring-external-service.html)

I did a bit more reading afterwards, and this pattern is known as an Anti-Corruption Layer.

If your application needs to deal with a database or another application whose model is undesirable or inapplicable to the model you want within your own application, use an AnticorruptionLayer to translate to/from that model and yours.

(from http://wiki.c2.com/?AnticorruptionLayer)

Change is slow, why?

Things take ages, why?

Gareth Bragg presented the topic of “Why do things take too **** long?”.

The key take away for me was to get better at taking less than perfect decisions. Most of our decisions are reversible, and the consequences of not being perfect aren’t life threatening therefore, Do!

Sorting using bells

At the end of the day Ian Johnson ran a session on demonstrating sorting algorithms using bells. I’ll let the video do the talking/embarrassing:

Conclusion

Open Spaces seem to be working. They get people together talking about topics that matter (and having fun!). There’s definitely more to tweak (we maybe ran this one a bit soon, and we could have done more to encourage participation across the business).

Looking forward to doing some more next year!

--

--