Creating and Maintaining an Effective Coding Culture with Sven Peters
Sven Peters presented a guide to creating and maintaining an effective ‘coding culture’ at Craft Conference 2015 in Budapest. Recommendations included: defining and regularly retrospecting on organisational and team values, giving people time to innovate, celebrating success, enabling transparent communications and actions, and ensuring the needs of the customer are constantly in focus.
Peters, a technology evangelist at Atlassian, began the talk by stating that developers often think about code all day long, but typically do not think much about company culture. However, the development of company culture is vitally important in order to build a successful project and run a high performing team and organisation. Peters noted that the offer of free food, beer and games at an organisation are not culture per se. Culture runs deeper, and includes beliefs, morals and customs. Taylorism may be to blame for the lack of importance an organisation assigns to developing culture, as the assembly line metaphor and hierarchical management structures reduce communication and collaboration.
Free food, beer and games at an organisation are not ‘culture’. Culture runs deeper...
Peters suggested that the ‘innovate or die’ mentality is becoming a cliché, and the most important resource to give people in order for them to generate innovative ideas is time. Atlassian runs quarterly ‘ship it’ days, where the entire company has 24 hours away from their typical work in order to focus on innovation. Developing a culture of happiness is also important, and facilitating company-wide social activities, celebrations, and team-building days enables people to build relationships across the organisation, and learn about each other’s strengths and weaknesses.
Retrospecting regularly is also vital. Learning from mistakes and celebrating team wins is essential, and Peters suggested that care should be taken to include all of the people within an organisation, as some teams do not necessarily contribute directly to creating shippable products.
Life moves pretty fast. It’s essential to stop, look around and retrospect on what we are doing
An example of celebrating success within a customer service team included the team meeting every two weeks to identify and praise ‘cultural rockstars’ who had exceeded the team’s stated values during an interaction with a customer. Peters also described how Atlassian had created an iPad ‘mood app’, which can be used to track levels of happiness across the organisation on a daily basis.
A culture of 'balanced passion' is also beneficial, and although creating products may make people within the organisation happy, the customer should never be forgotten. Atlassian have developed several ‘personas’ that represent users of their product suite, and these are placed throughout the working environment to constantly remind people of their importance. The persona cards represent the entire range of users, including technical and non-technical users, and include questions that must be asked when product functionality is being changed, or new products created.
Balance your passions - creating stuff makes us happy, but we are creating great software to make the customer happy
Atlassian have created a series of ‘engineering values’ that are applied throughout the organisation, and these include not writing bad code, saying ‘no’ if a change will harm the software, and always looking for better solutions. Peters suggested that these values must be written down and shared throughout the organisation, so that people can easy refer to them and challenge change if appropriate.
Peters provided several recommendations for creating a culture that scales as an organisation grows. Transparency is vital, and phone calls, emails and water-cooler conversations are not documentable and searchable. Atlassian makes use of messaging software with chat rooms to implement transparency - each team may have a chat room, and there are also functionality-focus or expertise-based rooms, where any person can ask for advice from experts. The chat rooms also integrate with development systems, and may contain ‘bots’ or other tools that can be used to co-ordinate activities or initialise deployments.
Peters summarised the practical implications of the talk by suggesting that the optimal development team size within Atlassian consists of six to eight cross-functional people, with a reference to the famous Amazon ‘two-pizza’ team size. Atlassian have created a ‘do-ocracy’ where autonomy, trust and transparency are part of the organisational values. Certain parts of the Atlassian code base may be the broad responsibility of a single team, but an ‘internal open source’ model is used in conjunction with code reviews to ensure progress is not slowed by unnecessary bureaucracy.
Peters concluded the talk by stating that in his experience, transparency gives lightweight control, and that defining and regularly retrospecting on the organisational values is essential in order to develop and maintain a healthy culture in which both the people within the organisation enjoy their work, and the needs of the customer are constantly kept in focus.
Products come and go. Culture stays…
More details on Sven Peters’ talk ‘Coding Culture’ can be found on the Craft Conference website. Additional details on creating an effective coding culture can be found within a recently published InfoQ article by Peters.