This article by Marcus Blankenship tries to answer the question why programmers become disaffected with a company and its goals and ultimately turn to just wanting to code.
As I wrote in an earlier article about paying for developer tools with developers, particularly in larger organisations, I frequently encounter a feeling of powerlessness and not having significant say in that organisation’s direction.
Marcus is spot on in that he attributes this far too common attitude to an often dysfunctional work culture that doesn’t value the input of developers in matters that aren’t strictly technical.
It’s a surprisingly widespread misconception that developers should merely focus on coding and not be involved in aspects like the business direction, marketing or the user experience of a product. That in turn is a surefire way to make those developers not care about a company’s overall well-being and direction or how the product fares in the market but rather about the narrow purview they feel they at least have some sort of influence on.
I’m certainly not saying that people shouldn’t specialise or that everyone should be responsible for everything but product development, especially if that product is software-based, is a collaborative endeavour, in which everyone involved can and should contribute from his or her particular perspective or background. Many developers have a tremendous amount of industry experience and hence can contribute in many different ways other than just implementation details.
This distinction between people or roles within a company that have a say in the direction of a product and those that don’t in fact often doesn’t originate from a lack of knowledge or experience in those who aren’t allowed to contribute but rather is based on an implicit hierarchy. Such a hierarchy that distinguishes between people who provide vision, ideas and direction and those who are merely to execute those ideas inevitably leads to disillusionment in those who feel they can’t contribute anything significant.
Not only will a company with such a system miss out on useful ideas but it’ll lose above-average employees and it’ll not be able to attract new ones in the long run either. So, if you want to run a sustainable software business creating a work culture that enables everyone involved in the product creation process is absolutely vital.