BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles Focus on Culture When Building an Engineering Culture

Focus on Culture When Building an Engineering Culture

Key Takeaways

  • Culture cannot be enforced, but only facilitated
  • Hiring is crucial in building and sustaining great engineering culture
  • Continuous learning helps create the right engineering team environment
  • Self-driven teams with minimum directions are ideal teams that we all should aspire for
  • An environment without red-tape and unnecessary controls will help engineering innovation, productivity & quality

More often than not, when I meet fellow engineers, thought leaders or young job aspirants, engineering culture is one hot topic that invariably pops up for discussion. Unfortunately, this is one area that lingers in the backdrop when business focus areas are defined. Most of you would agree, no matter how vehemently we convey this across, the topic fails to attract the attention it deserves, until we retrospect sitting on a large pile of issues to be solved.

When I am discussing “Engineering Culture” here, my focus is on “Culture” alone. I am purposely separating the two words and keeping aside the engineering core practices for next time.

I have tried to highlight some key focus areas from my learnings and experiences with engineering teams over years.

Hiring & Structure

No matter where we are based or which industry we belong to, hiring good engineers has always been a challenge. The effort is worth it when these awesome engineers help build our engineering brand. An established engineering brand results in attracting more such talent. As great sustainable culture is usually built bottom-up, it is imperative that we hire the best.

I was lucky to be part of different teams right from the start. Some mantras I learned and followed include:

  1. Never settle for anyone below your hiring benchmark. Go for the best, because that’s the only way you can ensure they will hire the next best. I once waited for an entire year to find ‘that’ best candidate I knew would certainly raise the bar.
  2. The team should be more heterogenous in formation. A diverse set of individuals bring in a diverse set of qualities with them. Quite often, the teams with a healthy gender ratio, different cultural backgrounds, complimentary skill-sets etc. tend to outperform the homogeneous bunch.
  3. Take your team’s culture and showcase it to prospective candidates. That’s a valuable step in advancing to attract talent that fits your culture. Use social media, have on-premise boot camps, tech talks etc and give prospective candidates opportunities to have a feel for the culture you are so proud of.
  4. Have well thought-through strategies to leverage the diverse talent in the team. All engineers are different, hence needs person specific approaches. There is no single mold for all!
  5. Keep as less hierarchy as possible in the team structure. Too many levels dilute involvement and the sense of ownership. In one of the businesses I was aligned with, there was this process of taking approvals from seniors for almost every other thing that you so desperately wanted to try out. The result is anybody’s guess! The team slowly turned into a bunch of executioners/implementers. Our star performers left us and we were left with a team that worked like robots programmed to complete tasks. That’s not what anyone of us wants!
  6. Don’t go for standard team structures. Believe me, there is no such thing as “standard” here. Do what is right for you. Build a structure that is best for individual growth and aligns well with business needs.

Learning and Knowledge Sharing

We need to build great work-place environments for teams where they can learn and share knowledge. Continuous learning results in growth. Growth, be it in skills, knowledge or outlook, is bound to make people happy. A happy team helps build great culture.

I strongly feel it is important for organizations to provide engineers with an environment encouraging them to challenge themselves and to be insanely curious. Provide them with platforms for experimentation by being flexible & adaptable. Our knowledge is the only vessel that helps carry innovations. We all have seen many organizations collapse where innovations took the back seat in business strategies. Some of the points that have worked for me include:

  1. Lead from the front to show that learning has nothing to do with experience or roles. Teams that have high levels of curiosity and penchants for learning in their senior members know the importance and get inspired.
  2. Allow teams to make mistakes and learn from them. Lend a free hand wherever you can. Give them confidence to bring positive disruptions. In one of the teams I was part of, whenever someone made a mistake and owned it, we used to get-together for a snacks party. There we would make the person comfortable and then discuss the mistake and ways to avoid it in future.
  3. Organize events like Hackathons, Bootcamps, Technology town halls, sessions etc to provide platforms to encourage ideas, experimentation and learning within the team.
  4. Pair-programming & peer-reviews with their other known benefits works wonders in expediting learning. Although it worked for me, it doesn’t necessarily mean it will work for everyone and in every situation. Decide wisely.

Responsibilities, Collaboration & Accountabilities

We all know that high performance teams clearly know what is expected from them. Teams with a clear understanding of their responsibilities and accountabilities are more focused.

It is always a good idea to clearly define responsibilities in advance in order to avoid ambiguities and confusions later on. However, these responsibilities should be the minimum stuff an engineer must do. Here, it is extremely important to communicate that opportunities are endless. Responsibilities should not be perceived as boundaries beyond which one should not tread.

Most of you would agree with me that engineers are more passionate for their work when they are encouraged and empowered to be self-driven. I cannot emphasize enough on the importance of a “self-driven” team. They are the bunch of self-motivated torch bearers who make their own way rather than wait for assistance. They are the ones who have the sense of belonging.

I have always been a strong advocate of co-ownership and collaboration in engineering teams. This fosters high involvement levels in teams. Working in isolation, to me, is not a scalable practice. However, this does not mean that enough freedom should not be given to engineers to find their space away from distractions. A closely-knit team working on a common or complimentary set of objectives will negate the “Us vs Them” syndrome. At the same time, high performing teams may be autonomous yet synchronized. They will be strongly aligned to the common objectives.

Spotify (from whatever I have heard) is one place with an admirable engineering culture. I stumbled upon one of their blogs about their culture, and found this piece really inspiring:

Building products at Spotify should be like being a part of a jazz band; although each musician is autonomous and plays a different instrument, they should all listen to each other and focus on the whole song.”

Building high performance synchronized teams is not easy. And we all know there is no single recipe too. But I hope some of the following points will help us take tiny steps towards that.

  1. Responsibilities without accountabilities are meaningless. Similarly, accountabilities without ownership will not yield much. Teams or individuals where I had given end-to-end ownership for tasks, projects or certain deliveries, showed much better quality of work, initiatives and innovations.
  2. Do not underestimate the impact of communication. Communicate precisely what is expected. Engineers do this all the time, and they expect the same from others. I give a lot of importance to para-phrasing and summarizing when communicating with individuals. Also, mode/channel of communication is extremely important.
  3. The philosophy of “minimum resources, minimum direction” goes a long way in building self-driven teams. I encourage my teams to make decisions and drive their projects/tasks till the end without worrying too much about the outcome. It is like teaching toddlers walk. They may be unsteady and fall often at first, but once they are on their steady feet, there is no stopping them !
  4. If there are multiple functional sub-teams within a team, encourage them to sit together. This will help build a cohesive bond and will encourage collaboration. If teams are not co-located, set systems/platforms where they can interact and collaborate remotely often. I encourage my engineering and quality teams to sit together. The environment lightens up when people bond.
  5. Encourage engineers to meet in person, or when working remotely, call/video-chat instead of writing mails or sending texts.
  6. Build a culture where Quality in every sense is owned by all. My engineers are equally responsible for the quality of a feature/product as the testing team is.

Freedom

Everyone loves their freedom; engineers are no different!

I truly feel that while established controls in the form of processes, deadlines, resources etc in an organization are inevitable, there should be enough freedom for engineers to think freely beyond constraints. That is how “disruptive” ideas are born. Gift them an environment that does not confine their thoughts, but instead gives them wings. Freedom to experiment, freedom to fail, freedom to speak their mind, freedom to take a break, freedom to ideate, freedom to challenge an idea… all of it will help retain talent in team.

I am highly inspired by Reed Hastings’s words, as they speak a lot about the engineering culture in Netflix. To quote him:

Responsible people thrive on freedom and are worthy of freedom. With the right people, instead of a culture of process adherence, we have a culture of creativity and self-discipline.

I couldn’t agree more and this is what I recommend:

  1. Cut the Red-tape! Chop off all processes that deprive an engineer from adding value. I know I sound like a rebel here, but we all know what really matters in the end. As a true servant leader, we must clear all impediments and encourage the team to move fast.
  2. We will always have a mixed bag of engineers. The degree of freedom would depend on the degree of self-discipline they have. Freedom comes with a lot of responsibilities, and hence should be wisely initiated.
  3. Never discourage an engineer from sharing ideas, even if it is not in sync with your business objectives. Their inquisitiveness, involvement and open thoughts should be encouraged and nurtured.
  4. Flexi work hours go a long way in providing freedom to engineers to work in their most productive hours. However, I love it doesn’t mean it will work for everyone and in every situation!!
  5. Build an engineering place where each one of them can be themselves. This is very important to me. You cannot pretend to be someone else all the time and still give your best!

Appreciations & Acknowledgements

Who doesn’t like appreciation for their work? An awesome engineering workplace is where every individual in the team feels important and valued. I have found engineers to be mostly task focused and they set very high benchmarks for themselves. It is therefore extremely important that we build a culture wherein we sit back and acknowledge all the good work done.

Genuine appreciation should be encouraged within teams, and has to be top-down. We know it takes time, but we must persist with it. Similarly, honest attempts should be acknowledged too. Appreciations and acknowledgements should not be attached to success alone. Efforts are important and needs to be equally highlighted. 

  1. A pat on the back for a quick issue fix or a trophy for “King of Sprints” are both different forms of appreciation. The right form of appreciation should be chosen wisely and objectively. I get the best ideas for appreciation when I ask my team about what would make them feel rewarded. Of course, the perfect reward may be different for different people, but you will still get a sense of what is best.
  2. It is a one-way path. This initiative cannot be rolled back. The sudden closure of a rewards program or of a certain appreciation form may raise questions on intentions. Hence, it should be thoroughly thought through and communicated.
  3. It is important that engineers get visibility in the business. Engineers themselves do very little to showcase themselves, hence it is important that there be proper platforms to do the same. I make sure that my team has clear skip-level access, they are invited to business meetings, they get to voice their opinion around product strategies etc.
  4. We can use our daily rituals like the daily stand-ups to acknowledge individual contributions whenever needed. Don’t wait for a big-bang annual reward ceremony. Do it when it matters the most!
  5. This one is important – don’t go overboard with the frequency and intensity of the appreciation. More than what is needed will dilute its importance.

There is a lot that goes into building great engineering culture. I don’t have a defined framework that can help build one, nor would I recommend one for you. We should look around and seek inspiration, but should never try to build a culture just because it is working for someone else.

In my opinion, leaders should not perceive engineering culture as a project with clearly defined do’s and don’ts towards a pre-defined outcome. Rather, it is a continuous process that requires constant alignment and involvement. I very strongly feel that middle level managers or seniors play an extremely important role here by ensuring the process is not derailed.

Some of the points here are no-brainers, but to execute them consistently is what matters. I may have missed some other important points. I would be happy to know your thoughts and learn from them. 

About the Author

Sujith Nair started out as a full-stack developer with India's number one job portal Naukri.com. Over the years since then he has helped build engineering teams for 4 businesses, and now heads technology for the country's leading matrimonial platform, Jeevansathi.com. Sujith has over 15 years of experience in delivering Mobile & Web application products for both enterprises as well as large consumer masses. He is a Certified Scrum Master and Project Management Professional, and an active Agile proponent.

Rate this Article

Adoption
Style

BT