The Liberators
Published in

The Liberators

What Makes A Developer Culture?

A personal story of what encouraged a Developer Culture at NowOnline. And why Scrum really doesn’t work without it.

Agile software development started with developers. These days, it seems to be more about Scrum Masters, Agile Coaches, Product Owners, and other “process roles”.

Agile software development was started by developers. These days, it seems to be more about Scrum Masters, Agile Coaches, Product Owners, and other “process people”. Just look at the number of people showcasing their Scrum Master, Product Owner or coaching certificate on LinkedIn. Most companies are eager to send people to classes for Scrum Masters and Product Owners, but they’re not willing to pay for professional development for developers. Or fail to see how important the quality, tools, and skills of developers are.

I’d wager that a good Development Team — one that cares about their users and delivers high-quality software frequently — can compensate for a mediocre Scrum Master and Product Owner. But I doubt the reverse is true.

As a passionate developer, this strong focus on “process people” hurts my heart. The best experiences I’ve had with Scrum were with teams that lived a strong “Developer Culture”; a shared understanding of why software craftsmanship matters.

A bit of context on NowOnline

NowOnline started somewhere in 2001. Starting out with a strong focus on website development, I built my first site for them in 2002, first as a freelancer later as an employee. In 2010 we started a second location in Utrecht that focused on developing HR-related & mission-critical software for brands of our largest customer (USG, Unique, StartPeople, CapitalP). We worked with .NET (first VB, later C#) from the very start. Initially with one Scrum Team, later with three, I doubled as a developer and Scrum Master. This branch of NowOnline later transitioned into HROffice.

1. Have fun together & make personal connections

The best (Development) Teams I have worked with spent time and effort to have fun together. At NowOnline, some of that fun happened during work, with practical jokes and having a laugh together, while others happened outside of work, during trips, barbecues, and team activities.

Practical jokes in our software (top-left) to having drinks after work (bottom-left), sharing a barbecue outside our office (bottom-right). One of our bars is shown in the bottom center.

2. Continuous [everything]

Way back in 2003, I set up the first continuous integration server at NowOnline. Using CruiseControl with some hefty ANT-scripts, and connected to a red and a green lava lamp, it was easier to tell if our code was still compiling after a commit. Not much later, we started using Visual Studio’s ‘Web Deploy’ to simplify a push to staging or production. The purpose was always to get feedback (does it work? does it deploy?) sooner.

An early version of our uptime monitor, showing the status of the various API’s, endpoints and services. The monitor would perform various checks, like SSL expiration, uptime and response time.

3. Create an environment where you can take risks

At NowOnline, we made sure to create an environment where people could take risks. Writing code is often difficult and risky, especially when you try to refactor dense, convoluted code or when you try to automate something.

4. Make your work transparent

Inspired by the concept of stigmergy — or how we need to surround our environment with visual traces of work done and to be done — we always tried to keep our work as transparent and physical as possible. We had several movable whiteboards that we carried with us to wherever they were needed. When we worked with customers to refine the Product Backlog, we did so physically on a wall. On the way out, people updated their happiness for that day on a small whiteboard near the door.

Some of the things we made transparent in our work environment

5. Developer Hygiene

At the peak of my work at NowOnline, we had three Scrum Teams consisting of around 15 developers. With most of our products being mission-critical, there was a strong emphasis on writing clean code and applying practices from Extreme Programming.

A Daily Scrum taking place (top left), a developer pairing up with a designer (top right), creating the Product Backlog together (bottom left) and knowledge-sharing sessions and retrospectives taking place.

When we deployed a breaking bug or when the software crashed, our phones would ring.

Most crucially, I think, was that the Scrum Teams took care of supporting the products they built. When we deployed a breaking bug or when the software crashed, our phones would ring. This included products that were in active use 24 hours a day. We’ve spent several nights (using WhatsApp and telephone to communicate) debugging breaking issues on production. This incentivized the teams to test thoroughly before deploying. But it also encouraged us to automate as much as possible, making it easy to deploy a hotfix.

6. Learning new things together

Learning new things together is one of the hallmarks of a good developer culture. One way we did this was by always having two or three interns at the company. Although interns often had to work on special assignments for school, we made sure they were an active part of one of the Development Teams. They would help with testing or pair up with different developers. With few exceptions, all interns wanted to (and often stayed to) work for NowOnline. It was a good source of new members for our teams and a good way to embed our developer culture in them from the very start.

An impression of some of our Tech Talks. Most of them hosted by developers or interns from NowOnline / HROffice, others by guests such as Wim Heemskerk, Bert Willems, and Gunther Verheyen. The agenda of upcoming Tech Talks is shown in the middle.

7. Engaged directly with users and customers

I believe that a good developer is someone who takes joy in solving problems for users (with code). You can’t do this if you never talk to users. Since the very start of NowOnline, the founder always made sure to bring developers with him to customers. This gave a face to the person expressing the needs on the Product Backlog and allowed developers to better understand their context.

One of our developers pairs up with an employee from StartPeople to see how they use our product in their day-to-day work. Not visible in the picture, are other pairs in the back
Results from a retrospective on how to increase the quality of our products and what we could measure to keep track of that

8. Shared identity and history

The picture wall in one of the earlier offices. In one of the pictures, I can be seen ‘wearing’ a fluffy orange octopus. This was the ‘octopus hat of shame’ for when someone broke the build — which I did on occasion.

Not perfect, but an awesome experience

What we did at NowOnline was really cool. I enjoyed my time there tremendously, as I know others did as well. It certainly wasn’t perfect. We once spent a year building a really cool product that turned out to be a bit of a dud upon release. Although we used something that looked like Scrum, it wasn’t as empirical as it should’ve been. And the culture was by no means as homogeneous as it might seem; some developers valued the “Boyscout Rule” (for example) far more than others. But on a whole, we did honor it most of the times. Over the years, we also struggled to balance the many products we developed with our small teams. It was quite stressful at times. Purely speaking for myself, I’ve spent many evenings writing code. Not because anyone forced me to, but because I was committed to solving user problems. This is also the flipside of a strong “Developer Culture”; it can be intoxicating and unhealthy if you don’t have the discipline to reign it in.

You can already support us with $1/month. Find out more on patreon.com/liberators

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Christiaan Verwijs

I liberate teams & organizations from de-humanizing, ineffective ways of organizing work. Passionate developer, organizational psychologist, and Scrum Master.