Building foundations of Software Engineering Culture that doesn't suck

Let's start with the question: How does the organization you work for (outside of your team!) impact your everyday's work (as a software engineer)? I mean: what does the organization...

2 years ago

Latest Post How does Dunning–Kruger effect impact collaboration in tech teams by Sebastian Gebski

Let's start with the question:

How does the organization you work for (outside of your team!) impact your everyday's work (as a software engineer)?

I mean:

Not sure about what qualifies & what doesn't? OK, let's try some guiding questions ...

  1. what are your interactions with other teams except of these related to day-to-day project work?
  2. do you have any kind of influence on who you'll be working with (teams switching, recruitment)?
  3. what's the org's approach to experiments - do these officially exist? are they encouraged in any way?
  4. what are the ways knowledge is being shared in your work environment (project-specific, industry-specific, domain-specific, generic technical, ANY kind of knowledge)?
  5. how is your work (and / or work products) evaluated? based on what factors / metrics / opinions?
  6. where does your autonomy end? what's the level of trust your org puts in you?

Done? Good.

Software engineering ... culture?

What was the point in asking these questions? The answers to them are very helpful in assessing org's contribution in shaping the engineering culture of your workplace. Definition-wise:

Software engineering culture (SEC) is defined by values, behaviors, principles & actual practices (technical & non-technical as well) that are being actively promoted, encouraged & applied in everyday work of software engineers in your company (or unit or whatever).

Don't get me wrong -> SEC can't be "designed, packaged & literally executed" solely by the employer as it is being shaped (yes, a continuous process) by whole community (consciously or not), but companies & all levels of management can have a significant impact (especially negative) by promoting or blocking particular behaviours (thus affecting the conditions in the environment).

I have some observations & my conclusions are rather sad - majority of companies that employ programmers either don't understand or underestimate the importance of conscious building the proper software engineering culture.

Frankly speaking, in surprisingly many companies I've had some contact with, developers ...

  1. ... were supposed to turn requirements into working code. Period. End of (user) story. In their breaks they should not wander/talk to much, so others are not interrupted & can complete their tasks as well.
  2. ... should be happy, because they are paid well (better than in other industries) & that's what should matter. If they are unhappy, well, a raise can be considered if it's justified by sheer performance (efficiency, preferably measured with lines of codes committed / number of bugs fixed).
  3. ... should follow the well-trodden path: documented, stable, well-known, standardized (so even a monkey can take over if needed). The more deviation from the norm, the worse.

It's actually very typical that employer doesn't care about differentiating its own development unit from the competition (and then they wonder why people are not "loyal" at all ...) - the only shared values they can come up with are:

So what?

I acknowledge the fact that for many that may be just fine. It's just a work after all. An occupation. Cool.

What I don't like at all is that more & more passionate developers claim that this becomes more of a standard in the industry, even in companies that find themselves ambitious & operate in highly competitive markets - if you give it a thought or two, it looks like an outrageous waste.

For the sake of comparison, let's list some actions implemented by companies that understand the important of SEC (this list is inspired, but not limited to, by recent speech "Building an engineering culture", presented by Marek Kirejczyk at Agile By Example 2016):

Clearly, additional effort (... & money) is required to do all of that. Is it justified? Does it change anything in a way that it pays off? Would it matter for you - to work for an employer who implements such actions (if your one doesn't) or get rid of these actions (if that's what your current employer does right now)? Would it make you feel ... more proud? More engaged? Or maybe just to care more? Give you more purpose?

Let's leave it like this for now. I'll let you judge it by yourself without any more comments.

Pic: © Photobank - Fotolia.com

Sebastian Gebski

Published 2 years ago

Comments?

Leave us your opinion.

Subscribe our newsletter

Recieve news directly to your email.

No Kill Switch © 2018.