DEV Community

Cover image for The Dark Side of Software Development
vibalijoshi
vibalijoshi

Posted on • Updated on

The Dark Side of Software Development

Software engineering is one of the most intriguing and in-demand occupations right now. You've probably heard about how wonderful software development is, and I agree that it excites me every time I hear about it. However, I suppose we should be aware of the flip side of the coin because let's face it no job is perfect.

Image description

I conducted a Twitter space recently on this topic where over 20+ speakers and more than 100+ active listeners were present and shared their views on this. For more such spaces on software development, you can follow me on Twitter.

Addiction to Work

Image description
There's a good possibility you got into this field because you like coding and solving complex challenges. Coding is a highly addictive activity. Something doesn't feel quite right till the bug is fixed.

Though this will benefit you by allowing you to complete more work in less time and impress your boss, we must keep in mind that this comes at a cost.
Image description

  • If you aren't a geek, you can relate to this: we underestimate the code, which requires us to commit more time to it than usual, potentially causing plans with friends and family to be cancelled.
  • If you don't get up from your chair until the glitch is fixed, you could be sitting for up to 8 hours, which could cause major health problems if done on a regular basis.

Suggestions:

Image description

  • Take a break

    • We often forget to take breaks need to remind ourselves to take a break.
    • You can download Stretchly the break time reminder app ( It is also open source!)
  • Disconnect from work

    • Separate your workstation from your bedroom or your resting space.
    • Keep your phone free from all the work apps.

Suggested Reads: The Healthy Programmer by Joe Kutner, 7 Ways To Stay Healthy As A Programmer

Constantly Keeping Up With New Technology

Image description
Let's see if any of this looks familiar:

  • You feel that you are lagging as you are not using the latest tech stack in your current project.
  • You feel like jumping to every other thing and learning multiple tech stacks at once.
  • (For senior developers) You overhear your subordinates discussing a tech stack about which you are completely unaware, and they expect you to be an expert.

Because the pace of new technology is so fast, you can't keep up with everything, yet people expect you to know everything at least to a basic level. To keep up with the latest trends and be an active member of the community, you think need to be well-versed in everything.

How to overcome this:

  • You need to realize that learning multiple things at once results in reduced productivity. Tim Buchalka who has taught over 1 Million students has explained it beautifully in this video.

  • (for the senior software devs) Flip the question, ask your team members to answer this:

    • Can you explain it to the entire team and make it so simple that no one needs to study it?

Project Managers and Product Managers Unrealistic Demands

Image description

There's a good probability that your boss doesn't have a technological background. They are also under pressure from their superiors to release a feature in a short period of time. This can result in low-quality code, as well as a weaker foundation for future builds.

You are annoyed and furious with them, which leads to an unhealthy relationship between you two and a loss of trust. This need not be a case, save this bad blood by following these.

Communication is the Key

Image description

  • Have a healthy discussion, outline why the task is unrealistic.
  • list out the points in detail and the steps why it is unrealistic.
  • Provide them with alternatives.
  • Cut the problem down into smaller pieces, why the requirement is coming in and how can we go about it in a more realistic way.
  • Discuss the (LOE) Level of Effort that would be required, so that you can get a timeline for the issue.

Understand your Boss

Unhealthy competition for compensation

Image description
How many times have you checked out Blind and have been so addicted to it that you had to uninstall it?

  • There are a lot of developers who are just running after money hence switching companies after 6 months.

  • Constant comparisons between peers regarding salaries and stock options have made things extremely competitive, which is affecting their happiness.

Do you feel a constant need to improve yourself to get a better salary or offer?

  • This definitely is a great push for getting better roles. But, at some point, you will overwork yourself as there is no end to this greed. Hence, you will stop enjoying your job.

Switching is not that easy

Image description

  • When you switch so frequently, your integrity gets questioned and this would be reflected in your resume too.
  • It would be clear that for you, money matters more than software.
  • Also you would have to start all the processes of knowing people, building trust from scratch.

Life is not all about money

Image description

  • Money should not be the driving factor. A good work-life balance, good peer group, work on challenging problems matters more in the long run.

Maintaining Legacy Code

Image description

It is just really scary to touch.

Legacy code can be a challenge to maintain:

  • The code is not well documented.
  • The code is not clean.
  • Fewer resources to integrate it with the new trends

Image description

  • You need to step up and change it, if you do not change it then it becomes a dark side.
  • The most important thing you can do to go up in the ranks at any company is to take on more responsibility. Legacy code is an area where no one wants to get involved.
  • This is the best test. A sign of a really good engineer. Take this chance.

What are all other challenges do you face in your workspace? Comment down below 👇🏼

Discussion (11)

Collapse
cubikca profile image
Brian Richardson

I think most of the bad jobs in the industry I've held have been bad because of legacy code. Interestingly, though, I think the code was the symptom and not the problem. It wasn't that there weren't good people, it's just that the problem was ignored until it was too late to fix it. Bad legacy code seems to be correlated to negative bosses, and my opinion is that it's the latter that's the root cause.

Certainly there's never enough time. This drives the work addiction, and here I don't think you can blame the bosses. It's up to a developer to find the self-discipline to have a decent work-life balance. Now, admittedly, here's an issue. IT is a 24/7 job. While developers don't often deal with this, stuff needs fixing on weekends and deploying outside business hours. I think part of the problem is that there are many people who have the expectation that you can just work 9-5 and ignore everything else. To an extent this is true, but I don't think it's reasonable to expect to work such hours in IT all the time.

You mention new technology stacks as popping up far too often, for there to be far too much learning. I tend to agree with you. Part of my role at work involves evaluating new technologies for use, and supporting developers in learning them. I try to be mindful of the workload I am putting on them, but the fact is that technology does advance, and we work in a field that needs to keep up. So, to address this, I'd suggest that dedicating people to research has a positive effect on the codebase, and certainly to the people doing the research. This can be a good promotion path.

Unhealthy competition is an interesting one. I think this is more a result of company culture than it is specific to IT. Plenty of areas in the company will see the same trend as skilled individuals compete for promotions and raises. To an extent, this is desirable. A company that tolerates, and even encourages, extreme competition will not be a good place to be. If you should ever be unlucky enough to find yourself there, run! This comes straight from the top, and it will destroy you. If you're at a good company with a bad co-worker, that's just a human resources issue.

I'd repeat your positive message that the best thing to improve your quality of life as a developer is to strategically take on responsibility. Try not learning that new technology stack that will not be used, and present design and process modernizations instead. Developers often pick things for the coolness factor, but bosses worry about stakeholders and business needs. Show the value of what you want to do, and you may find yourself doing it.

Collapse
mjoycemilburn profile image
MartinJ • Edited on

This made me laugh so much I could cry!

Actually, I'm crying quietly most of the time anyway. Software is such fun, but it seems to me that the industry is going into meltdown in the search for perfection. All these "stacks". My view is that they're mainly just a scramble to launch another platform and create a niche to sell services, write books, run courses, etc, etc. It doesn't need to be like this

Collapse
mike_andreuzza profile image
Michael Andreuzza

true, is very addictive and I the guy of the first image.

I have around 8 projects plus one saas, I have probably made 10k this year and is crappy money, but until that layout isnot ready, or if the drops down are not just there... is always something.

In the beginning when I started to touch webdev I could be hours awake n sleep little to nothing, working on a free project, I corrected this and actually went to bed....

After all, I did it so I could be seen by recruiters and work in tech, after 8 projects, just got a job as a UIUX designer.

fun fact I am writing this at 03.20 after being awake so I could build and design a simple landing page to a friend as a surprise...and because is adictive....

Collapse
webdevinci profile image
webdevinci

This is one of the most entertaining dev.to articles I've seen in a long time. The comics/memes nail each point! I can relate with each, and as I become more senior (director now) I have given up on keeping up with my younger years' affinity to learn every aspect of every of new technology

Collapse
vibalijoshi profile image
vibalijoshi Author

Thank you so much for taking the time to write this! Such feedback inspires me to write more.✨

Collapse
liveuk profile image
Mike Hebblethwaite

So nice to see us all on the same page, this page.

I wrote a lot of what you all call legacy code.
Young, new, comes in and adds their NEW!
way

Then to yours a NEW! way

Learn assembly anguage learn eectronics.
When you switch on a light think 1 when you switch it off think 0

Stop trying to make the next global solution and concentrate on making the base code like the roots of a tree for me but you can use any analergy you want to.

Work on your code your way get paid for work in the day work on YOUR clean code in your hours. Work feeds you and your famiy just do what they ask and no more.

Your work is your DNA your Legacy so write more in the comments say why and as this amazing lady writes and shows in her cartoons keep your passion.

Collapse
bradtaniguchi profile image
Brad

I love the programmer memes 👍

Collapse
vibalijoshi profile image
vibalijoshi Author

Woohoo, my mission accomplished 🥁🌈

Collapse
johnerincon profile image
John Eduar Rincon G.

Thank you for this post. It's very important to me.

Collapse
vibalijoshi profile image
vibalijoshi Author

Glad you liked it!

Collapse
santosh profile image
Santosh Kumar

What to do when seniors are not following best practices? Things like not writing unit test, not documenting, writing inconsistently styled code?
They are senior, right?