My most recent job interview included being asked about what I would consider an ideal working environment to be like. This post will be me thinking aloud about how to respond if the same type of question comes up again.
Team Structure - Serenity Now
Based on my twenty or so years of working as a professional software developer, I have found the most productive teams are those that are self-sufficient for the things that they need to develop, and have the big picture awareness to anticipate in advance what they need from others.
Partway through writing this section I thought about how this matches up to the serenity prayer:
"God, grant me the serenity to accept the things I cannot change,Being able to deliver working software at a stready sustrainable pace is where I get a lot of satisfaction from my work. Having to wait for another team to produce something can be frustrating, so having strong communication skills is a key aspect of ensuring that progress is not blocked.
Courage to change the things I can,
And wisdom to know the difference."
This section title may sound like a team name from The Apprentice, or The X Factor, but for me it is all about having a broad range of worldviews and levels of experience.
In two of my jobs I have worked alongside students completing a year in industry as part of their university course's programme. Those projects were some of the most rewarding of my career in terms of developing my mentoring abilities and the satisfaction that can be gained from teaching a concept or the benefits of a methodology such as test driven development (TDD).
My half-joking contribution to the diversity of my latest team was that I was the only member originally from the southern hemisphere. The only time that I considered making a suggestion based on that backround was when I heard that a team was contemplating introducing a snowy winter theme to the homepage of the product's website. It would have been Summer in the southern hemisphere.
Thanks to the melting pot of cultures that London provides, I have also had the opportunity to learn from people of different cultures and religions about how they go about every things in life such as choosing what food stand they can visit at the local street markets, and managing their working day during periods of fasting.
Team size - no one size fits all
Depending on how you shape it, I've either been working in small teams, or large teams.
For the day to day incremental changes that my immediate neighbours and I worked on I have had a small team of three. For the effects that our changes have introduced to the wider development group the number goes up to something closer to fifty or sixty - not counting external consumers of our APIs who should have noticed no impact from our seamless changes.
The main project that I worked on during my time at Elsevier involved something closer to a hundred people. I had regular contact with around fifteen members of the core team, and interacted with a dozen or so others when we needed to address a publication version consistency problem.
Getting back to what I would consider to be an ideal working environment, I think a group of between five and ten people - depending on the range of skills required - is a good size:
- There is enough cover for keeping the work progressing if someone is ill or takes a holiday
- We can have a range of levels of experience
- There are enough people to be reasonably certain of having at least one strong opinion when a decision needs to be made
I find that it's much easier to have a discussion with someone if you have already had an informal conversation with them about non-work matters. I'm not someone that runs workshops, so I'm not going to be that person who sets up icebreaker activities for people to get to know eachother at the start of a multi-day meeting.
On the other hand, I do quite enjoy trivia, so sometime back in 2015 I introduced the Friday Pub Quiz as a mini social event for self-organised teams to participate in at the office's break-out area after the Friday afternoon knowledge share session.
It started off small with just a couple of teams, then expanded out to have a couple more teams, then I introduced the rule that the winning team would have to produce a quiz for the following week.
Four years, and three office moves later, Friday Pub Quiz is still a fairly regular event.
Individuals from different development teams, product owners, senior managers, designers sometimes meet eachother for the first time to form a team, then find themselves presenting to their peers together the next week.
Office environment - open plan, but keep the noise down
I have always worked in open plan offices, so I don't see myself moving to my own walled off space anytime soon. I like the buzz of hearing pairs programming and discussing the next test or feature to be developed.
Having said that, there have been a few ocassions when I might have preferred a different setup - mostly around the issue of noise.
Providing table tennis or foosball in the office environment is all well and good, but it really should be in its own space - not somewhere that has no doors between it and the working environment.
A pet hate of mine at a recent job was the daily crinkle of packets of crisps being eaten at some desks near mine. I consider it a bit like water torture when you don't know when that next noise is coming. I'm now wondering what the mouse and keyboard of those laptops would be like as that salty type of food is something I always need to wash my hands after eating.