Software Development Reality vs Expectation (How It Actually Is vs. What You Think)


You have finally taken the first step into your software development career. You came into the software development field filled with excitement and expectations only to find out it is nothing like you expected. You thought you’ll be building the next world-changing software, but all you have been doing is maintenance work.

 

I’ve been developing software professionally for 3 years now and much of what I do is nothing like what I expected. So, in this post, I want to focus on some of the things that new developers think they will be doing when starting out.


 

Not Understanding the Role of a Software Developer

 

software development problem solving

 

I used to think that all a software developer do is code. Turns out that is only a small subset of what a software developer actually do. Most of the time was spent on solving problems with software — automating a solution for a problem. I spent the majority of my time thinking about how to solve a problem than coding. I was attending meetings to gather domain knowledge and to understand the problems that are trying to be solved with software.

 

Writing Code All Day

 

software development coding

 

You wouldn’t be writing code every day. Most of the time you’ll be working with legacy code by reading and interpreting the codebase. You will be fixing bugs in an existing application. If you’re lucky, you get to rewrite some code by refactoring some code smell. But mainly, you’ll be doing maintenance than writing new code.

 

Working on New Projects All the Time

 

software development green field

 

You will rarely get a chance to work on new (green-field) projects. In most cases, you’ll end up working with an existing (brown-field) project. It doesn’t mean there will be no opportunity for you to create something new, just that it is not common. So, don’t be disappointed if you’re not working on something new and exciting.

 

 Problems Don’t Have Clear Solutions

 

software development not clear solutions

 

When you’re learning how to code, the problems you’re trying to solve tend to have a clear solution. However, software in the real world tends to not have a clear solution. There is always some sort of trade-off and it is up to you to learn and figure out the best solution suited for the situation. The best solution for one situation may not be the best for another case.

 

Most of Your Time Is Spent on Learning

 

software development life-long learning

 

You’re going to be learning a lot as a software developer. When you first get into the field you’ll feel like you know everything only to find out you don’t know anything. But don’t panic… it’s normal in the field of software development. You’re always going to be working with something you don’t know. So, you’ll spend a good portion of your time reading books, articles, blog posts, and documentation about the technology you’re using.

 

It’s Not All About Technical Skills

 

software development soft skills

 

In your first few years, you’ll be growing a lot in your hard/technical skills. You might be getting one promotion after another. Then suddenly it stops and you’ll not be sure why.

 

Once you reach a certain point with your technical skills, it is your soft skills that matter. It’s simple to understand why that is the case because higher promotion means you’ll be leading other developers. If you’re not good with people then you’re not suitable to lead others. Would you want to have a leader who yells at you? Would you want to have a leader that doesn’t care about your success?


 

I hope this post was helpful to you. If you found this post helpful, share it with others so they can benefit too.

 

What are your experiences with software development so far? Has it matched your expectations?

 

To get in touch, you can follow me on Twitter, leave a comment, or send me an email at steven@brightdevelopers.com.

 

Additional Resources


About Steven To

Steven To is a software developer that specializes in mobile development with a background in computer engineering. Beyond his passion for software development, he also has an interest in Virtual Reality, Augmented Reality, Artificial Intelligence, Personal Development, and Personal Finance. If he is not writing software, then he is out learning something new.