Building Compassionate Software

Wenzhi Lin
3 min readJan 9, 2017

--

Tips and take-home messages for managing a software development team

During a recent meet-up I attended in Brooklyn, New York, Ash Furrow presented the inspirational idea of bringing compassion to software development. It is not just another way to build a team, or a better approach for a career and happy work space, but a good practice for improving the general environment for software developers overall. It is also a good response to some phenomena in the community such as the fast growth of junior developers rushing out from coding bootcamps, the increase of open sourced projects and so on.

Applying Furrow’s presentation to my own working environment and experience, I identified some actions I can take to bring more compassion to my team:

Remember that feelings matter.

For normal days, most of the communications between team member are basically two types: individual conversations and group meetings.

Individual conversations, in my case, mostly relate to reviewing pull requests and discussing issues. During conversations, we certainly should be sensitive and care how other people feel and react to our words. The same approach also works when writing pull request reviews. Besides thinking about edge cases and watching out for mistakes, spend a little time to check your wording, especially when you are a senior developer who is reviewing a junior developer’s code. Keep in mind that your level and position can easily make negative comments be received worse than you intend.

Group meetings are other good events to foster a compassionate atmosphere. If you are hosting one, not only make sure that everyone in the meeting has a chance to talk about their ideas and thoughts, but also that their thoughts are received and taken into account. When people feel comfortable, they will more openly bring up issues, “smokes” and questions — all critical for software development and team-building.

Be humble and admit fallibility.

In the iOS world, half of the world changes every June, so it’s okay when you find out your information is outdated, and your junior developer has the latest documentation supporting his/her idea. This would send two messages: it is okay to make mistake, and it is okay to bring up issues and mistakes to anyone. As Furrow said in his blog, “Honestly, it’s pretty straightforward: you want your team to feel safe when things go wrong, so make sure to act normal when you make a mistake.”

Make all work as learning experiences.

Spare no effort to help your co-workers learn more. Seeing young developers improve so fast always makes me excited. From a product perspective, increasing the team performance is increasing the product performance, which will help your company win more sales and deals. Other than helping the company, you are also improving your mentoring skills, of which the value is increasing in the booming developer community.

Remove barriers to voicing opinions.

My current team is small with three people, so it is easy to create a flat team structure where anyone can ask questions or state their opinions. We should create, as Furrow said, “an environment where learning through curiosity is praised” in his post.

Besides the above actions, Furrow also provided several concrete suggestions about how to implement psychological safety, which he describes as “the belief that no one will be punished or humiliated for speaking up.”, on the team:

  • Watch out for people being interrupted in meetings. When you see it, say, “Hang on; I want to hear the rest of what s/he has to say.”
  • Don’t pressure people into providing immediate feedback. Instead of asking on the spot, give time for reflective feedback. “I’ll type up what we’ve discussed and send it to everyone; let me know what isn’t clear.”
  • Allow space for your team to re-visit discussions if someone feels his/her voice wasn’t heard.

The lecture titled “Building Compassionate Software” was presented by Ash Furrow on December 12, 2016 at this meetup.

Wenzhi Lin is a Senior iOS Engineer at Appboy, Inc.

--

--

Wenzhi Lin
Wenzhi Lin

Written by Wenzhi Lin

A climber who enjoys skiing and scuba diving, and writes iOS code during the day. Made in China, evolving in the USA.

No responses yet