Why Engineering Culture is the Number One Factor for Your Company Success
When I started interviews for a developer position in the start-up industry and later on as a Team Lead, I couldn’t understand why companies talked about their engineering culture. I thought to myself, culture is something so vague. Why do companies need values? I have my own values. So why do I need my workplace to talk to me about values? How should I evaluate the culture of a prospective workplace?
If you have ever asked yourself one of the above questions, this article is definitely for you. If you are about to build your own company or a people manager in any company, this article is a must-read. If you are seeking a new job, you might find insightful ideas.
What is culture?
Before I start to explain why engineering culture is so important, it will be helpful to understand what culture is in society.
“Culture is an umbrella term which encompasses the social behavior and norms found in human societies, as well as the knowledge, beliefs, arts, laws, customs, capabilities, and habits of the individuals in these groups” (wikipedia)
In simple words, culture is a set of common activities that defines a group. Therefore, anyone who joins a group will embrace the culture as well.
For example, every sport has a culture. Football fans have a unique culture. It will be bizarre to sit in the Barcelona fan’s tribune wearing a tuxedo and drinking tea while expecting people to whisper. On the other hand, it will be odd to participate in a chess contest dressed in shorts, a dry-fit t-shirt, and drums. Needless to say that you are expected to speak in a low volume.
In both cases, the group’s culture is indisputable, the dress code and the participant’s behavior are well known. Anyone who joins these events knows what is expected from them.
Culture is derived from the organization’s values, while values guide us for better decision-making, culture makes the work environment.
The importance of organizational values and culture is already covered in many books. Personally, I recommend reading “built to last”.
What Is Engineering Culture?
In a sense, it is not very different than society’s culture. Engineering culture is the set of common beliefs and values that will later impact the way people in the organization make decisions or actions around software development.
Here are some topics usually discussed regarding to an engineering culture:
- Do you adopt a “no QA” policy
- How does your development cycle look like
- Should every process be automated first
- How do you manage versions of your code
- How much emphasis do you put on building systems that scale
- How do developers are getting promoted
- How are engineering decisions made
- What is the engineering management style
- Is it an open culture or hierarchical
- How do you plan and prioritize your tasks
- Are you using Agile, Scrum, or Kanban.
- What kind of routine exists around coding quality
- and more.
As you can see from the examples above, a good engineering culture may impact many aspects. But the common theme of the examples above is guidance and clarity to make the right decision.
When a culture is implemented the DNA of the group is established. It means that the organization has agreed on a set of common beliefs that bond all together. anyone joining the organization will adopt the culture without the need of constant top down involvment. A good culture will enable good decision making at the lowest level. Even without understanding the company values.
An important note is that organizational culture and engineering culture are intertwined. I believe that if the engineering organization has a totally different culture than all other organizations, something is wrong. Most of the cultural values should be shared across all the departments in the organization.
The benefits of a good culture are tremendous. I’ll try to illustrate some of them by using an example.
Customer-centricity is very important in many companies, especially in B2C companies. Now, imagine a world with only two companies. Both companies suffer from a lack of customer-centricity around the Engineering organization. So, the CEO of “Company One” sent a memo about the need to focus on customer-centricity for the next quarter. Additionally, he set up a small task force of top managers to overcome the customer-centricity issues. After a while, the task force comes up with a list of recommendations. The main ones are lists of important customer requests that should get higher priority.
In “Company Two,” the CEO declared that customer-centricity is now a company’s core value. He explained in detail his vision of why this value is important to the business of the company. The CEO asked all the managers in the company to discuss customer-centricity with the teams and come up with a plan. The engineering organization analyzed the areas that customers complained about most and decided to focus on quality and reliability. The engineers started to look up tools and methodologies for better monitoring & alerting. one engineer decided to push for a better and effective code review and published across some slack channels and mailing lists his recommendation. Other engineers liked those recommendations and started to adopt them. Another engineer suggested adopting a “zero bug policy.” the Data Science group developed a model that predicts when a customer might get upset by “Company Two” services. The QA automation engineers in the company decided to start to give higher priority to the usability issues. As a result, any usability issue started to get a higher severity. HR and Engineering managers concluded that it would be good to add to the interview process questions that reflected for service-oriented or customer-minded candidates.
Both companies decided to react to the customer-centricity challenge. “Company One” provided a short-term solution by a tiny group of people. Unfortunately, from my experience, it is likely that after two quarters, the company will still suffer from customer-centricity issues.
The CEO of “Company Two” took a different approach. He acknowledged that customer-centricity is not a one-time problem. He understood that the company would not succeed without customer-centricity. He also recognized that customer-centricity is a wide term and that it will be wise to give engineers the freedom to analyze and come up with a solution. That is another core value of organizational culture. Combining those two core values generated a variety of very powerful suggestions and actions, which created an engineering culture that ensures high-quality software.
*Important note* engineering culture doesn’t start from management, but if you don’t have the awareness and the support of management it will be hard for an engineering culture to thrive
Other Known Benefits
Employee satisfaction in companies with strong engineering culture is higher than average. It is shown by a relatively low percentage of employee churn and high retention and engagement. Employees and managers have a good understanding of what is expected from them and the competencies they are evaluated. Those companies also report higher delivery rates. Employees feel that things are being done. In addition to that, companies with strong engineering tend to generate more innovation—eventually, all of the above sums up into building a strong company brand and pleased customers.
I hope that by now I have convinced you about the importance of culture.
Engineering Culture Anti Patterns
- Copying Engineering Culture From Other Company
One company can get inspiration from another company, but copying culture from another company will most probably fail because Engineering Culture results from the people, the industry, and local traditions. Therefore, a B2B company will mostly have a different culture than a B2C company. I have more to say about it, but it will make this article too long.
- Diverse Culture Between Engineering Groups
if you have too many subcultures, that is a symptom that shared values are lacking
- Engineering Culture Constantly Changes
At some point in time Engineering Culture should get stable. If every time a new VP arrives, Culture changes, that might indicate that the values adopted were not genuine.
- Values Are Enforced By Management
Managers should definitely be driving or involved in the engineering culture values. But if all the values are defined by management top to bottom, then all the point is missed. Remember, values should be discovered, not enforced. People need to feel belief in those values.
Examples Of Good Engineering Cultures
Many companies are well known due to the strong culture that they have. So I’ll try to give a glance at some of them.
The real values — a set of values are real if a firm decides who gets rewarded or let go. I won’t go into the details of the culture since Netflix has already done it very well.
Our core philosophy is people over process. More specifically, we have great people working together as a dream team. With this approach, we are a more flexible, fun, stimulating, creative, collaborative and successful organization.
Netflix engineering culture is focused on Freedom and responsibility. Netflix hires senior and strong developers who can be trusted and work on their own. Engineers are expected to manage the microservices end-to-end from writing code to operation and documentation. Teams are fully autonomous and expected to make their own decisions and are responsible for their own code from inception to deployment to operations. Like many other strong culture companies, autonomy and trust are the name of the game. There is no mandate for a specific programing language. No SRE or NOC team monitors the services. Each team is responsible for the validity and reliability of the services they own.
Team structure and methodology are also inconsistent. For example, each team decided whether to use Scrum or Kanban and manage tasks and requirements.
To be able to accomplish the above, Netflix “hire, develop and cut smartly, so stars are in every position,” meaning that Netflix is not shy to fire people if they don’t fit anymore. This also explains why Netflix tends not to hire for graduates or internship positions. They don’t mind paying more to have the best team, which will generate higher value.
Netflix doesn’t want money to be a reason for you to become dissatisfied with the company. This is why Netflix pays the top salaries in the market and encourages engineers to go to interviews in other companies to ensure they are well paid.
Netflix is a very data-driven decision company. It is very clear from Netflix’s technical Blog that all engineers are very minded to that. Every feature, either internal or external, is developed with a set of measurements. Data platforms are democratized across the organization, and developers are encouraged to contribute.
Hack day — is a big thing at Netflix. It is a pure innovation day. On this day all the company gathers, and anybody can create whatever they want wants. production and Tech people are gathering together and come up with many types of ideas. one of the ideas that I personally really liked was a new feature called “Where Was I?!”
Company Culture — “the open-source way.”
Red Hat was founded in the nineties. Since the beginning, the company was inspired by the Linux and Unix way of working through full transparency and community sharing. This is before the internet era before, GitHub and Git. When sharing globally was not obvious and definitely not easy. In this atmosphere, Red Hat was founded, and from the very beginning, contribution to the community and collaboration was significant to the company.
Red Hat is an example of a company where engineering culture and principles influenced the company culture.
Company values: freedom, accountability,courage,commitment
No single value is as important as all of them. Freedom without accountability is chaos. Courage without commitment is aimless. Commitment without freedom is pointless. Accountability without courage is uninspired.
Red Hatters are big contributors to many open source projects. All Red Hats products are open sources published on GitHub(“upstream first”). the company transparency is so extreme that even the people team and Open culture are managed in a public GitHub repo.
Red Hat Multiplier
Red Hat values are also translated to competencies that are expected from every Red hatter: connection, trust, transparency, collaboration, inclusive meritocracy. These competencies, also called the Red Hat Multiplier, are the translation of red hat values. Using the Red Hat Multiplier, every Red Hatter knows what behaviors they need to follow or improve are.
The memo list is a mail distribution to which all the company is subscribed and is open for everyone for posting. It’s definitely not a regular distribution list. You could find there active discussion on almost every topic. It can be a discussion that starts after management announcements, some associates will express their disagreement, and the CEO will reply. In some cases, company decisions are made in the memo list. For example, the company’s mission statement was chosen after a long discussion in the memo list as described by Jim Whitehurst, the former CEO of Red Hat.
We are red Hat week
a full week where all Red Hatter sites around the world are celebrating
Red Hat engineering doesn’t own private GitHub Repos. All the code is on GitHub. In fact, Red Hatter’s are encouraged to push code to Upstream First and contribute to other open-source communities.
Meritocracy at Red Hat engineering is very strong. Meritocracy means that the best idea wins, and hearing everyone’s voice is important. In some rare cases, decisions are made by management only, but it comes with many explanations and discussions. A good example was the decision to support centos stream instead of centos which created a very loud discussion in the memo list.
*Full Disclosure: while writing this article, I decided to move to Red Hat.
I tried to share most of the things that I learned about the importance of engineering culture. If you are working on a company with a unique culture, I would be happy to hear about it. Feel free to share it in the comments.
Why Engineering Culture Is The Number One Factor For Your Company Success was originally published in Level Up Coding on Medium, where people are continuing the conversation by highlighting and responding to this story.
Source: Level Up Coding