How to elevate engineering culture at large corporations?

Does a good engineering culture matter?

  • Is there any correlation between the strength of a company's software engineering culture and its profitability? I often hear bad things from programmers at the most successful companies - for example, 80% of software engineers at Amazon seem to hate it. Meanwhile, many companies with great engineering cultures aren't particularly successful.

  • Answer:

    A "good" engineering culture directly benefits a company in a few ways: The company gets the ability to hire better engineers. Many of the best engineers prefer to work with other great engineers in a good engineering culture, and that gives the company a recruiting and retention advantage. For an example see: "I figured Google would be better [than AltaVista] because I knew more of the people there, and they seemed like they were more technically savvy." Engineers are more productive, independent of their skill. This is a result of better infrastructure that builds up over time, a better codebase, more reuse of others' work, less time spent dealing with technical debt, bugs, and firefighting. The differences here can be huge, like 2-5x over an average company and even more when compared against a particularly bad culture. The organization can adapt to change more quickly. This is the result of a lot of small cultural effects adding up. For example, in a good culture it's easy to start a new project and have everyone immediately be on the same page about how code is going to be written, how services will be operated, and what is going to be reused from other projects. It's also easy for engineers to go into a project that's already been finished and extend it to support a new feature. In terms of business outcomes, the sum of all this makes it possible for the company to build products and features that other companies can't, or get things done faster, keep infrastructure costs lower, stay on top in its market, and break into new markets. Here are some examples I can think of: The quality of Gmail in 2004 over other webmail products was a direct result of Google's stronger engineering team and culture. MySpace just couldn't keep up with Facebook's product development pace, even when it had a much bigger engineering team. I remember talking to an engineer who worked at MySpace who told me about how they had this huge list of regular expressions to try to prevent cross site scripting attacks, and whenever there was a new one they would make a new regex to try to fix it, rather than sanitizing html the right way. Things like that add up to a lot of time wasted that could otherwise go into making a product great. There is obviously a lot more than engineering ability that goes into making a company successful, and it matters more in some markets than others. If a company's engineering strength is directed toward building things that don't matter, the company will be beaten by a competitor with a worse engineering team that's more efficient at getting outcomes. To address Amazon: My impression is that Amazon has really good processes and it does a lot of other things well aside from engineering culture that make up for its weakness there. Also, I'm sure it still ends up much better at engineering than Barnes and Noble and most of the other companies it competes against.

Adam D'Angelo at Quora Visit the source

Was this solution helpful to you?

Other answers

I work at a place with a fantastic engineering culture, and it influences the success of the company, but it is not a simple formula for success. For me, it has influenced my entire relationship with the company I work at. I feel valued, and want the company to succeed. I work my hardest to make it do so. I ignore repeated, continual attempts to recruit me from lots of interesting companies. I work to build a community at work, and I want my coworkers to love their job. I care about any job I do, but when the higher ups have put so much effort into making it a great place to be, it makes me care so much more. It makes recruiting easier, because everyone wants to work in a great environment, right? Imagine every employee making these decisions. How could those things not make a company more successful? Even if they did, they make everyone's life so much more meaningful.

Jade Rubick

If you're comparing Amazon to small contract development shops, it's important to realize that growth often degrades engineering cultures.  So looking at "company X is successful with a bad engineering culture and company Y is unsuccessful with a good engineering culture" is biased.  Maybe if company Y grew, its engineering culture would not be intact.  And maybe company X grew as a result of its previously great engineering culture.  A few reasons growth can hurt culture are: Rapid hiring lowers the bar for new employees Large teams have exponentially more communication overhead Existing software supports a profitable and operationalized business, so changes to products carry more costs Technical debt compounds Scale -> firefighting -> unhappy developers

David Crawford

Just to echo what a lot of people have said, an engineering culture is a good way to attract great engineers, and to help engineers build good products.  This doesn't necessarily translate into a successful business model.  The world is littered with products that were engineered and built wonderfully, but suffered from bad marketing, unfair licensing agreements, etc.  The more your company's success is tied to good engineering, the more that matters. If your company is TicketMaster, then you probably don't need a good engineering culture -- your money is in exclusivity.  If your business is Netflix/Hulu, then engineering culture matters, but you can be smothered by outrageous licensing agreements.  Amazon does really well because they remember that their business comes from making their customers happy.  And sometimes that can happen even if the software engineering isn't amazing.  As a former engineer there it made me sad, but I kind of respected their dedication to "if it ain't broke, then you're just making products more expensive trying to fix it."

Derek Wollenstein

Culture matters. Period. For a software engineering company, a "good" engineering culture definitely matters, and is worth investing in: it needs to be carefully cultivated and nurtured. But what is a "good" engineering culture? That's the nub of the issue, IMO. If the engineering culture is so dominant as to overwhelm all other priorities (e.g., customer focus and responsiveness, or financial stability or employee welfare), then I would not qualify it as a "good" engineering culture. Balance is key. Resources are always scarce, competition is always tough and good talent is always hard to find and keep. Knowing where the trade-offs are and allowing that knowledge to inform business decisions is what distinguishes a successful software engineering company from a wannabe or a might-have-been or an also-ran. Generally speaking, companies may find that the path to eminence and prosperity is broadly determined by three key criteria: (1) Customer focus (2) Product/ Service innovation (3) Operational efficiency. Most companies seek to balance all three, but a few exceptional companies assign highly differential weights (i.e. prioritize one of these highly over the other two) and also win. The bottom line is that a good engineering culture is 'necessary but not sufficient'. A sound business strategy (backed-up by an ability to execute) should aim to bring in all the other factors needed to succeed, whatever they may be (too vast a topic to delve into here - I've already highlighted a few such critical factors above). Hope this helps.

Hemant Puthli

I think that the specifics of the business determine what expertises are needed. Many of these "social" startups don't need machine learning expertise in their first 12 months. They just need someone who can find and use a canned recommendation algorithm. They can improve it later, after they've had some successes. As long as their stuff basically works, marketing is more critical to them than engineering excellence. I think that, in the next 36-72 months, we're going to see a reversal wherein the meatiest engineering problems are in the enterprise, and not web/mobile startups. I say "36-72 months" because the enterprise is going to be very slow to realize that it needs to do in order to establish a first-rate engineering culture. (The answer is to carve out an "honors college" or "center of excellence" within the company that's highly autonomous and isolated from the everyday bullshit, but that's politically very hard and companies are going to be slow to implement that.) Now, all that said: plenty of businesses manage to make money despite mediocrity in engineering. There are some large names in finance that come to mind, though much of finance is becoming increasingly technical over time. However, I'd say that a company that doesn't have the use for elite engineers does not need to develop a strong engineering culture. A company that wants to become the next Google, however, will need first-rate engineers, and therefore be required to make the cultural efforts associated with that. For Google in 2000 it wasn't enough to get TechCrunch coverage and attention from the "cool kids" who get wasted at South by Southwest (SXSW). People actually needed to switch to Google for web search and to do so subconsciously, and the only way to effect that was to nail a highly technical problem. So they needed technical brilliance in a way that many startups don't.

Michael O. Church

I wrote http://artofbuildingsoftware.blogspot.com/2011/05/software-development-tribal-culture.html a few years ago to talk about what software engineering culture is, because I think a lot of people don't even know what engineering culture even is. They think it's whether you can bring your dog to work or if you have a ping pong table in the office. That's not what engineering culture is at all. Some people like certain cultures, come people dislike them. Even with great software engineering culture, a company can fail for business, market, or other reasons. So great engineering culture is not sufficient for success. It's not even necessary. But it certainly helps.

David Levine

Excellent software engineering at a company increases yield per unit time and increases yield per dollar spent on software compared to non-rock star engineering teams. That being said, this is akin to precision vs. accuracy. The business needs to be accurate. Excellent engineering that produces products that don't sell or worse, that never get into product have no value - other than to pad a resume or stroke egos. Engineers are poor business guys in general. What's worse is a company that promotes engineers into all sorts of positions. These companies may show profits and remain viable, but it having the right people in the right places is what makes a good company great and very profitable. Michael Gerber describes the need to have technician, manager and innovator roles to make a company work well.  Too often, technicians run companies and therefore the company is stifled.  He does a really good job describing this using a short story in http://www.amazon.com/The-E-Myth-Revisited-Small-Businesses/dp/0887307280. Ok, so that's the business side of things... How does this apply to the engineers liking their jobs? Engineers build things. Most engineers care about what they do all day. If the company sells a lot of the things an engineer builds, the engineer is happy. Where this does not occur, providing the opportunity to build something which has this potential creates the next best environment. I had the opportunity to represent our engineering team in a greivance session with the general manager once. To do so I needed to understand what the engineers wanted. We decided that engineers want job satisfaction above all things. An engineer will work for pay below market if they like their job. They'll stay in a job if the market does not support making a move, but will change jobs immediately if the market breaks and they are dissatisfied with their job. Some companies don't care if the engineers are happy, they treat them like commodities. It's actually unusual for management to understand the value of excellent engineering... unless the company is dominated by engineers in management. A lot of engineers have a thick skin about such an environment, but it does wear them down. The result is a lot of complaining... which basically affirms to the engineer that he has no control over the situation and is not responsible for it. This is rarer toxic, hopefully the engineer finds a way out. There are a lot of factors which make for a good work environment. The bottom line is fairness, respect and balance. The best companies have the right people doing the right things and those people take responsibility and therefore  they are accountable. They also foster a reasonable work/life balance. Often realizing that working a full day and allowing the engineers to live their lives instead of expecting all waking hours to be given to the company is what the essence of balance is. Yield goes up. People are nicer, they last longer at the company and they live longer lives.

Joe Bologna

well engineered products without somebody to consume them results in a business fail; badly engineered products that fills a great need will still result in a great business (despite bad engineering). Google's Wave was well engineered but didn't fit any great consumer need, so it was ultimately killed, whereas the original Windows circa 1986 was terribly engineered and was in no way better than DOS but still succeeded due to  the need for something better than a text based OS.

Quinn Kiet

A good engineering culture helps influence sustainable, risk-managed engineering practices... But you're right, there's no absolute, direct correlation between engineering and business success.

Mark Canlas

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.