A little story: I’m from West Texas where cattle ranching is big. In communities around the Panhandle, there are feedlots where cattle go to spend the last 3-6 months of their lives before becoming steak. Feedlots can hold a lot of cattle. As you can imagine, the air quality around feedlots is pungent, to put it mildly. When the wind is blowing the right way, you can smell Hereford in Amarillo, 60 miles away. All that methane is a byproduct of the feedlot, one that the people living near the feedlot would gladly give up especially if they could still get steak.
Funny thing is, people who work on a feedlot don’t notice the smell, at least after they’ve been living there a little while. Like any constant stimulus, our body eventually can tune it out.
What does this have to do with writing software? Like the methane from a feedlot, lots of companies seem to view the software they produce as a byproduct. Typically the leaders of these companies, like the people around a feedlot, would love to get rid of software development if it meant they could still make money. These people tend to want to buy as much software off the shelf as possible, even if it’s not a very good fit. They want business analysts to be able to set up complicated custom solutions using some sort of drag and drop IDE that never seems to quite live up to its promise. In the end, they wish the company didn’t have to produce software to make money.
When software companies are run like this, you get an IT department that is mediocre at best with low morale and zero initiative to improve the process of writing software. Talented software developers go somewhere they are appreciated, where their talents can be used to solve actual problems. When software is seen as a byproduct as opposed to an actual result, there’s no real difference between developers since whatever comes out will be the same. Everyone’s shit stinks, as it were.
A company that treats software developers like cows in a feedlot will always function at the level of the lowest common denominator. The company may not fail, but it will never really succeed either. I recently left a company like that. I don’t think it will fail. I just don’t think they’ll ever succeed.