Gardening Is A Lot Like Developer Relations

Rod Burns
10 min readJul 11, 2021

Many of us have struggled with our mental health over the last year and a half and one of the things that has helped me to cope is gardening. I am a keen gardener and have been since I was young when my Dad and my Uncle George taught me about growing plants and the maintenance that is needed to keep your garden looking good. I’m lucky to have a fairly large garden that allows me to grow all sorts of different plants. Gardening ticks a lot of boxes for me: it allows me to get outside in the fresh air, takes my mind off the stresses of life and it gives me a real sense of achievement when, at different times of the year, I can see the fruits of my labour, whether as actual fruit or beautiful flowers. It has always helped my mental health, but never more than the past eighteen months. I would add I am not the only person from the Developer Relations community who is a keen gardener, I noticed Mary Thengvall has been enjoying the benefits of gardening during the lockdown.

So how is gardening a lot like Developer Relations you might ask? Well, let me try to explain my thinking. Whilst in my garden doing some jobs recently, I thought back to a presentation given by my friend Steve Citron-Pousty where he entertained us all by explaining software ecosystems using his background in ecology. Steve is such a great speaker and really engages an audience and that talk stayed with me a decade later.

My garden in late summer

Pondering this and looking at the greenery around me, it occurred to me that Developer Relations is actually very similar to gardening. My garden is very similar to a developer community — there are many different elements to it that complement each other in different ways.

I have a lawn, which holds the garden together and creates a structure for everything. My lawn is pretty low maintenance and I don’t need to feed it very often and so long as I keep it mowed it looks good throughout the year. There are even some interesting plants in my lawn like clover and dandelions that help to attract insects to my garden. This is like the core set of developers in your community who are around all year, maybe helping on Stack Overflow or other channels helping keep your community healthy but never making a big deal about it, and they inadvertently attract new developers to the community through their essential work.

Then there are the shrubs. These are often evergreen so look good for the whole year, but once a year they flower and produce a wonderful display. They sometimes need to be fed and generally will need to be kept in shape to look good. There are developers like these in most communities who are always around but will also regularly shine and produce something great for the community. Maybe they turn up once a year to make a talk at your annual conference, or write blogs.

Perennial plants are an essential part of my garden, these plants hibernate during the winter losing all their foliage but come back every year and often flower for months. These plants need new compost and fertilser to be at their best every year. I think we all have developers like that in our communities. Those who are not always around but they contribute a lot when they are around. We do however need to make sure they are “fed” to be a healthy part of the community. These developers contibute to discussions online and regularly make larger contributions to the community, perhaps to open source libraries or resources, and maybe we help ro repay them with swag and trips?

Annuals are plants that are sown once a year, produce an amazing display through the summer but die at the end of the season. They need to be sown from seed every year if they are going to appear in your garden. Within our communities we see these kind of developers who come in really energised and contribute a lot but will disappear after a while. Perhaps they arrive and write some great blog posts for new developers on how to use your tools or APIs, but they do make a significant contribution.

These plants compare well to some of the key members of a developer community:

  • Lawn — The stalwarts of our community who quietly help to hold things together
  • Shrubs — The consistent performers who are always there but often also shine
  • Perennials — Make consistent contributions on a regular basis but maybe they are not around all the time
  • Annuals — New members of the community who bring new energy, vigour and maybe a bit of excitement
Lilac is a great example of a shrub that really shines for a short time each Spring

All of these are important to demonstrate and operate a healthy developer community. We need people who are around all the time like the lawn who require basic but regular maintenance. We need the shrubs who are ever present but can also step up every year to do a talk or demo at a conference. We need developers who, like perennials, can shine for a large part of the year helping at conferences or with blog posts. We also need our annuals, people who are enthusiastic and full of energy even if they are not around forever, maybe reigniting some energy into the Slack channels or helping to bring important product feedback.

So how about bringing in new members to our developer community? This is a key part of Developer Relations and a healthy community needs new members. Guess what? This is something that is done for the garden too, you’ve always got to be adding new plants!

Throughout the year I sit in my garden looking around, taking in all the different flower beds and areas, and figuring out where I need to make improvements to my garden. One of the things I like about gardening is there is no quick fix, everything needs to be planned and mapped out and often I am thinking a year ahead. To maintain a healthy and attractive garden there needs to be a real balance with long flowering plants, spectacular but short lived flowers and structure to make the garden interesting at all times of the year. This is what makes your garden stand out, some plants bloom for a short while but put on an impressive display like my rhododendrons and others like Verbena will flower for months on end. In Developer Relations this is also something we do every year. We look at what is missing or what needs to be improved to ensure we have a health developer community or “ecosystem.” This might come out of a survey, or we might be gathering feedback from discussions on Slack, or we might want to invigorate the community with new members through outreach activities.

I realised I follow a similar pattern in my garden as I do in my job, setting specific goals that I want to achieve and mapping this to when it is feasible to achieve these goals. For example, last year I identified a border that needed new life and it needed new plants that flower throughout the summer months. However it’s not really advisable to do this in the middle of summer, when plants get stressed by a lack of water or too much sun. I needed to plan out for the following Spring how I would re-vitalise that border and bring in new plants to achieve my goal. I also need to plan that planting to give me the kind of coverage I want. I want a mixture of Spring, Summer and Autumn flowers and foliage to make it attractive in all those seasons. I mapped out the plants I wanted and where they would go and when the time was right I added lots of compost to promote growth in this part of my garden, and added the new plants.

In Developer Relations, we follow the same steps. We identify areas of the developer community that need help, or support, or where we need to do outreach, and set some goals to achieve that. In the same way we need to plan the best time to target these activities. For example it’s probably not possible to do mass outreach activities in the middle of summer when there are not so many conferences happening, and trying to run a developer survey around Christmas probably isn’t a great idea because many developers will be on vacation. We need to define targeted goals and activities then plan the right time to achieve these using the right tactics and fertiliser.

I live in Scotland, and our weather is not exactly tropical so some plants need extra love, and we need to cheat a bit to encourage them to grow healthily. This is where a greenhouse is essential in order to grow the likes of tomatoes or peppers. There’s another role for the greenhouse however since things don’t warm up until later in the year in the UK. If we are sowing new seeds we need to give them some extra warmth to help them grow big and strong so we can transfer them to our outdoor borders. The greenhouse provides additional heat to the plants encouraging growth as well as protecting them from the elements (like the “April Showers” we so often get in the UK).

In Developer Relations a “greenhouse” is often necessary to help different parts of the developer community. If, for example, you are setting up a new community you’ll need a way to get things growing more quickly. Maybe you need to dedicate a lot of 1–1 time with individual developers to engage them and understand what they are looking for, or perhaps you need to incentivise them with swag and trips to conferences to talk.

A garden shed is essential for any serious gardener and this contains the tools needed for garden maintenance. In order to maintain our garden we need to use some different tools. I use my shears in the garden to keep the larger shrubs in the shape I want them to be, my spade is used to refresh the soil and plant new things, I keep my lawn tidy using my mower, and crucially I use fertiliser to help my plants grow and stay healthy. It’s also important to know how to use these tools so you don’t cut your finger off, and you need to keep them in top condition otherwise those shears will be blunt and useless.

Within a Developer Community it’s really important to perform “maintenance” and the tools might be different but the practices are the same. We use websites like Stack Overflow, Reddit and Slack to maintain our community and the fertiliser might be t-shirts, and recognition for contributions to the community. It’s crucial to know how to use these tools effectively in communicating and supporting the community, and making sure forums and channels don’t become ineffective because they are impossible to navigate or follow.

Larger plants, such as climbers like Honeysuckle or Clematis produce beautiful flowers but they need support from the gardener to make sure they can be at their best. We need to use canes and supports to ensure these plants are able to grow tall and product the most flowers. In our developer communities we do the same by identifying those members that have the potential to contribute a lot but need help to reach their potential. For example by ensuring that the processes and resources are in place to make open source contributions simple, and supporting developers who want to make those contributions.

Every gardener spends a lot of time dealing with weeds, this is inevitable. The challenge for a lot of new gardeners however is recognising what is a weed and what isn’t. The same can be said of developer communities. Nobody’s perfect and there will be many instances where we need to step in to deal with trouble within our communities. We can use code of conducts and guidelines to set expectations but we will need to deal with those weeds in our communities. We also need the skills to identify when someone is becoming a weed which I believe a lot of the time is down to experience of dealing with conflict. I do believe that most people do not set out to offend or behave badly, but we are required to stamp out the sort of behaviour that would harm our community. Weeds can get large and take over a whole area of your garden, you don’t want the same thing to happen in your developer community so deal with problems before they get too large to deal with.

Ultimately you need to enjoy the role you play as a gardener and if you don’t then maybe you are focusing on the wrong areas. If you hate cutting the grass, then maybe turn your lawn into a meadow with long grass and wildflowers. The same can be said about leading a developer community, focus on the goals you want to achieve and maybe you can let some areas go a bit wild.

Have I convinced you yet?

If you want to talk to me about gardening or Developer Relations, or both, reach out to me on Twitter. I’d love to talk to you.

If you are lucky you might get some amazing visitors to your garden

--

--