17 May 2022
The title of the Medium post was obviously provocative. The author wanted me to click. So I clicked and read Many software companies are a joke today.
It paints a bleak picture of corporate software development. I get that this post is a rant. This was not the disillusioned ramblings of a junior developer lamenting the death of their dreams. This was an individual with two (2) decades as a software developer experience.
I believe the following quote sums up the entire article pretty well:
One thing I can tell you is that a lot of “software engineers” especially the ones working in really big companies do very little work.
It sounded like the author participated in, and withstood a lot of nonsense. I was not there but I can pretend. I work for a large company. Preparing for and attending meetings with slides and spreadsheets is something that is done all of the time. Only getting 1-2 hours of coding done per day? I am not going to argue with the numbers. I will argue that the author’s expectations were wrong and that affected his entire world.
You see, he did not work for a software company.
The author of the post, Lou Liou, worked for a large financial institution. This is a big item on level setting the expectations for a software developer. If the product or service that is being sold is not software, or even technology, then you work for a regular company. Regular companies use software. Regular companies may even develop custom software. But a regular company is not a software company.
At regular companies the IT department is a cost center. IT supports the creation and sale of the product or service but it is not the product or service. Having worked for both software companies and contracted with and for large companies I can assure you: they are two (2) different animals. When what is sold is not software the company involves a different locus of power. The business side of the house runs the house. IT and software developers, while required, react to the business.
When the company you work sells software, and you are a developer, you are the locus of power. There will always be sales and marketing and other business folks. They may be in charge but the software runs the business. It’s just different.
Do not get me wrong, some companies have great IT departments that have interesting projects and really care about your growth as a developer. They understand that if you grow they can grow too. Others, well, not so much. Working as a software developer in this type of company makes you more of a resource.
Do not confuse the amount of time required to get something delivered with the amount of effort. The larger the amount of revenue there is to protect, the longer it will take to get things done.
I am not talking about potential revenue here. I am talking about the recurring revenue that large organizations already have, and rely upon, to pay their employees. Insurance is a regulated environment and I have been told that the financial segment is regulated even more so. That means most of what is developed is going to take too long. The overriding goal is to protect the company from losing revenue due to wrong decisions being made.
The simple change you made could take as long as two (2) weeks to get it tested and approved for a production change. Is that too long? Yes. Is that wrong? No. The company wants certain protections in place to handle the eventual “oops” moment that will cost it money, reputation, or both.
Productive in the eyes of a software developer is time spent writing code. That time spent coding is crucial for job satisfaction. If you are not spending the bulk of your time coding then you are probably not a software developer.
Large companies tend to have many layers. The layers for a developer start with the lowest rung of a ladder called junior developer. It continues upward to the senior level. Then is rises into the lead, staff/principal roles. Each company has different names but the roles are generally there. As you progress you are expected to do less coding. At the two (2) decade mark I would expect to be, at least, at the lead level. You will write code but are more focused on delivering the solution. This entails many different things to each company but it definitely entails writing a lot less code.
Are you being productive? The junior developer will be writing a lot of code. That is pretty much all they are allowed to do. That is productive. A senior developer has added responsibilities that start taking a bite out of coding time. Leads have a project to run and deliver. Yes there is coding but it is different than heads down programming all day, every day. There are more project related tasks that need to be accomplished. For starters, you need to work on keeping the rest of the team moving forward. That is not exactly writing code but it enabling other to write code to deliver the solution.
Although writing code is still part of the job it is not the whole job and that doesn’t mean they are joke.
< back