How to build a Software Engineering Culture?

Introduction

I have spent sleepless nights on this one question. There comes a point in a software developer career where he quizzes himself- how can one scale-out the software productivity across breadth and width of teams and company. Decades of working in all sorts of companies have taught me that software engineering has always been an afterthought. Why? This is mainly due to market reasons – Shipping product is always a high priority. We can have an exclusive blog post discussing the need for quality in software products in near future. Let’s dig in for gold.

What is culture?

I have tried to give an organic definition rather than quoting somebody.

Culture in corporations means – “companies are made up of employees; employees define the culture that company carries. Employees regularly build a conversation that is unspoken, uninhibited and unmonitored in conduct or behavior, not only within themselves but also between their counterparts, through mores or custom in a commonplace to exceptional problem-solving situations”

Why we need culture?

Culture defines the personality trait or aura or thumbprint of a company. As much as a community need a value system as a means to steer them through their goals, companies too need a value system that moves them forward, not just through a crisis but equally through routine matters. Few positive traits I have observed in companies are as follows:

  • Encourage tough bold questions that challenge the status quo.
  • Open-minded to new ideologies and methodologies.
  • Empathy and kindness.
  • Experimental in implementing techniques.
  • Powerful feedback loops that sensibly adjust the trajectory.
  • See failure as a means to improve and learn.
  • Innovation.

How to induct software engineering culture?

We have dealt generically with culture and the need for culture. The question we are going to deal with here is, how software engineering can be inculcated as part of the company culture?

  • Software nerds at the helm – Software engineering experts should rule the helm and have a decisive say and power in company strategy and development. This has a telling effect on the culture that trickles down. A silent language or tacit assertion that is driven from top to bottom effortlessly.
  • Software as a lifeline- How can a non-software company evolve as a software powerhouse. We need role players here. Expert software engineers who can enact like their business counterparts are critical to see problems from the user perspective.
  • Software Quality as the first mantra– Software quality is not an afterthought or only for an exclusive set of employees (QA), but a company-wide challenge. Software quality can also mean code quality. Code refactoring as a means to code quality through a proper review process in place.
  • Passion- People with passion makes a huge difference not just inside but outside too.

Conclusion

We discussed definition of company culture, the need for culture, and how companies can induct software practices into their mainstream culture. You have to put the cart behind the horse. The horse here is software practices, which is the driver. Companies should realize that if they are selling any sort of software products then, we need engineers working across from the boardroom to frontline workers. Otherwise, the company cannot sustain to competition and squander the know-how.

Leave a comment