Culture is very important in a Software Engineering Company broadly because it can make or break a business.
The company’s ability to achieve its goals and productivity levels, as well as their employees’ satisfaction depends to a great extent on the company’s culture. Regardless of its importance, it’s amazing how it’s a matter completely overlooked or usually left quite unattended.
But…
What do we refer to exactly when we talk about a Software Engineering Company’s culture?
Initially, it might seem quite like an abstract concept and somehow extremely hard to define. The thing is, in order to start defining it, we must not confuse culture with other aspects of the software engineering company. Culture is not about the perks at the office, like getting free fruit or meditation space. It does not equate to the company’s values either. A company’s culture, such as Horowitz defines it, is about three things: the collective behavior of everyone in the organization, what people do when they’re not giving them a direction, and the organization’s way of doing things.
Company culture is a reflection of the leadership and works environment within it. Reason for which, if it’s healthy, it can catapult a person’s career and if it’s bad, it may have an utterly negative impact on the person’s learning and growth as a software engineer.
Is it crucial for the software engineering company’s success?
A company’s success depends on several aspects. A healthy culture can definitely help organizations achieve their goals and it’s crucial for their upheld success.
People in a healthy culture recognize that each of the roles involved in developing a product is complex and requires specialized skills, preparation, determination, and knowledge to be effective. So, healthy cultures succeed with teams of people who have all the necessary skills to get the job well done.
People in a healthy culture are realistic about what they can achieve and know exactly what their role involves. They rely on data from previous experience to make sensible choices and commitments to other team members. They prefer to under-commit and over-deliver; their organization is crucial for the company’s success.
Is there such a thing as a “bad” software engineering company culture?
Totally. A culture in which there is no set of shared values, goals, or principles could be identified as a bad culture. When people have different priorities or don’t meet eye to eye on things that are extremely relevant for the company’s success, such as project priorities, goals, and expectations, working together could possibly become a nightmare.
The culture provides a foundation for the decisions people make and the actions they take. If people are consistent with their decisions and actions, they’ll be reinforcing their culture. If decisions and actions are chaotic and inconsistent, those decisions would still be a characteristic of the culture, but it does steer the wheel towards the development of an unhealthy and unpredictable environment.
Ok, so…. What is a “healthy” software engineering company culture?
Let’s describe it by defining its three essential components of commitment to the company:
- A personal commitment. Each developer must be committed to creating high-quality products by performing effective practices.
- An organizational commitment: Managers at all levels must provide the best possible environment in which software quality and delivery on time are the main goals and which allows each team member to achieve this successfully.
- A team commitment: All members, as part of a whole, are committed to continuously improve their performance, thereby continuously improving the products they create.
These three commitments imply that team members should dedicate a certain amount of their effort not just to project work but to learn how to work with each other, to training those skills they already have, and to the constant improvement of their software development processes.
In a healthy culture, people share their knowledge and know their limits.
Mutual trust, generosity, and respect are characteristics of a healthy software engineering company’s culture. A free and open exchange of knowledge and ideas is most certainly to be a booster towards accomplishing the company’s goals.
How can organizations start to improve their engineering culture?
Company members must start thinking about what are the characteristics of their culture. A good way to start could be by creating a shortlist with those items that are fundamental when they work together to build software.
It is important that everyone in the organization has the opportunity to participate in this discussion. It is highly probable that not everyone agrees with every principle proposed. Nevertheless, in the end, most of the organization’s members should buy into some set of shared concepts. Everyone is affected by the culture, so it’s empowering if every member gets a saying when it comes to shaping it.
Discussing and setting shared principles, values, and attitudes is important to align the team members. It helps decision-making, facilitates consistency, and allows an organization to achieve its goals.