Managing software teams, and being an engineer myself for just about a decade, has eventually lead me to form my own perspective (likely not a unique one) on how I approach software engineering and really what I’d hope that others would think about when they write software.
At the core of any piece of software engineering is a problem to be solved. Behind every problem to be solved are humans that we are solving it for. So many times when writing software we remember the former, but not the latter. It appears that software engineering is falling far behind other industries that already know this, and put a deep focus on it as they realize the deep connection to serving the human and repeat business.
Many of these ideas of serving the human while solving these problems has been an area of focus for many people for decades under the umbrella of hospitality, or hospitality management. If you’ve ever been to a hotel, a restaurant, or any where that has customer service you’ll have experienced hospitality front and center.
I’d like to break down some of these principles of hospitality and align them for software engineering teams since I believe that we are here to serve the humans that use our software no different from the staff at a restaurant.
Principles of Hospitality
While there are many principles behind the concept of hospitality I’d like to focus on four that I think are deeply important and inform many of the other concepts within the realm of hospitality. We’ll discuss the ideas of respect, vulnerability, personalization, and anticipation as they relate to engineering teams and the products they produce.
It should go without saying that respect should underpin everything that we’re talking about, however, often times it does not. Remember that people are choosing your software, your team, etc. While it might not be an easy choice for them to make (and maybe they don’t even like the choice) they are here and should be treated with respect if you ever want them to respect you back.
It is 100% true that with regard to respect that you get what you give. If you are dismissive to the needs of your customers they will be dismissive back. We’ve learned much about what respect means in the physical world for face to face interactions, but still have a ways to go when it comes to digital respect.
Establishing a respectful connection to the humans that you are serving will open up the opportunity to be vulnerable with them. This means that accepting feedback about the experience should be the expectation of this relationship as well as being able to express what you are, and more importantly are not, offering as part of this experience.
Being vulnerable doesn’t mean that you are there to be a door mat for excessive complaints and abusive behavior. You can’t please everyone, and that is the unfortunate reality with any service based product. Recognizing when the time to be vulnerable to feedback and critique has vanished because the respect has evaporated is just as important as being vulnerable in the first place.
While personalization can often seem like an after thought (especially in the world of software engineering) it’s something that allows people to feel like they own part of the shared space that you and your team are creating. Remembering someone’s name that comes in all the time establishes them as a ‘regular’ and demonstrates a level of care at an incredibly basic level which gives comfort and safety.
This is not to say that you should memorize everything about your customers and tailor every single aspect of their experience. People are smart when it comes to detecting themselves being pandered to. This level of personalization (which is common in software engineering) is creepy, and typically only useful to retain people in your software while providing an experience of questionable quality.
Small touches of personalization at the beginning of the experience helps better set the mood and respect levels for everyone involved rather than completely overt personalization throughout the entire experience.
This final component is really where things start to feel like magic for the folks that you are serving. Being able to anticipate their needs and proactively give them the things they don’t need right now, but will need in the very near future completes this sense of hospitality.
You shouldn’t be aiming for anticipating every single one of their needs, but a few of the larger needs will provide the right balance of thoughtfulness and magic. Beyond that it will seem overbearing and as if you’re removing autonomy, which isn’t a great look.
Applying Hospitality to Engineering Teams
When looking at these principles and how they apply to teams, I like to think of personalization and successful anticipation as the byproducts of creating a respectful and vulnerable agreement between all involved parties. Executing on the former will create the space to allow you start venturing into the latter for the community of folks you are supporting.
There are many ways to create respect and vulnerability on your teams, however it starts with you as the manager. Doing things in service to the careers and needs of your team is a great first step in cultivating respect, however, making sure you’re actually delivering on the things you’re promising is more important than saying yes to anything that comes across your plate. Being judicious about where you can actually help someone and where you can’t more clearly sets expectations between folks which drives a behavior of openness for both intra-team and inter-team relationships.
Some key items for creating respect & vulnerability within your team:
- Be honest (admit when you’ve fucked up, or when a situation isn’t great)
- Be transparent (similar to the above, but the point here is to proactively offer information from your scope of view within an organization)
- Follow through (deliver on the things you said you were, explain why you don’t deliver on something, etc.)
- Exercise restraint (be judicious about what you and your team signs up for through the lens of the careers you are responsible for and the end product you are creating for the people who use it)
- Remember the humans (your team is full of humans, and everyone is different, remember this)
While not exhaustive, these items will allow managers, team members, and any other stakeholder to easily refocus on what’s important. While at times it’s hard to remember all of these actively, creating a culture that tries it’s best to look at the world through a set of lenses like this empowers everyone.
If this is a topic that interests you I would recommend taking a read through the following books to get a different perspective about hospitality than you might normally be exposed to: