Shared values are an important part of a software development organisations culture; they communicate how teams prefer to work and their desirable (and undesirable) practices and principles. Many companies across many industries explicity define and publish their company values to the wider world which can act as a useful PR tool for recruitment. Some notable examples within the software development industry are GitLab, who actually publish their team handbook as part of their transparency value, and Slack who more directly use their values as a recruitment tool.
Aligning teams behind a shared set of values is a great way to help define your culture and can help to make happier teams who are more productive because they understand how to set priorities according to the values. However getting buy-in can be difficult especially when they are defined by the top of the organisation and imposed on the teams further down the chain. My experience has been that values defined in this way are often shallow and meaningless values such as "teamwork" with little substance backing them up.
If you want the people on your teams to get behind common values then they need to have a voice in creating them and you need to elaborate on why it is important to your teams. GitLab do a great job of this with their values; they provide a lot of detail on the benefits their values bring and even describe how people at different job grades are expected to demonstrate the values. Personally I would prefer values to have something a bit more brief than this so there is a balance to be struck here.
I've spent a lot of time thinking about to sort of values I would like to see in a software development organisation and it got me thinking about what I personally value. This post marks the start of a series of posts in which I will attempt to define my personal values in software development.