Think Software Engineers Just Write Code? Think Again. (2024)

Think Software Engineers Just Write Code? Think Again. (3)

Some coders do the bare minimum: write code that meets the requirements. However, great software engineers know their job involves much more than writing code.

If you want to be a great engineer (and get ahead in your career), it pays to know all the “hidden” work that goes into being good at your job. In fact, for most top engineers, writing code is just one small piece of their overall job.

Unfortunately, most of this work is never taught or talked about formally when you’re learning to code. That’s a shame, but in this article I’ll show you all the “hidden” work great engineers are doing to build awesome products, and careers!

Think Software Engineers Just Write Code? Think Again. (4)

Software developers generally fall into two groups: coders vs engineers

Coders like to write code and sometimes they’re good at it! Give them a problem and enough time and they’ll write you some code to solve your specific problem.

Engineers also like to write code, but they mostly love to build useful things for people! Give an engineer a problem and they’ll immediately ask you questions about why the problem exists, what you’ve already tried, and if there are any other related problems that could be solved all at once.

Coders are great for a limited set of tasks, but they often miss the big picture. Engineers on the other hand always look for the big picture first. They write code once they understand the problem space.

So, what do great engineers do that most coders don’t?

1. Discover requirements behind features

Often, building a new feature for an application requires more than just adding a button or some logic.

The Product Manager can’t possibly know all the technical details, so the job of great software engineers becomes discovering the underlying technical challenges that need to be solved:

  • Does this new functionality require us to add a new table or column to the database?
  • Should we resolve this issue using JavaScript to build the feature perfectly on the front end or should we instead update the API to support the new functionality holistically?
  • When planning out a group of features, what order should they be developed and do any tasks block others?

There are hundreds of ways great engineers help discover requirements and make sure they’re surfaced so that teams can plan and release better features faster.

2. Think through edge cases and test them

Most companies have testing standards for new code. In order to be merged, the new code has to meet some coverage threshold.

Decent coders will throw together a quick set of tests that check the happy paths work as specified in the requirements.

Great engineers will think of edge cases and larger scenarios where the code might produce unexpected results. The best engineers write really robust tests (and they often practice test-driven development).

Think Software Engineers Just Write Code? Think Again. (5)

3. Consider user experience (UX)

Designers and product managers can’t possibly anticipate every detail of a new feature. In many cases, a requirement will be missed or a design might exclude some detail.

In these cases, a good engineer often has to make a judgment call about the intention of the feature and what a user should expect. Maybe it’s a missing button, a dialogue to prompt the user, a confirmation email, handling of a specific error…

When you’re developing a new feature, you’re often the first person to see it fully working. As a good engineer, you have a responsibility to consider UX at every step and resolve any issues that the design team didn’t foresee.

4. Architect deployment & adoption strategies

Perhaps you have a brilliant proposal for how to solve a thorny technical challenge at work — problem solved, job done, right?

Not so fast! Great engineers don’t just think up solutions, they also think about how those solutions will be adopted, deployed, and maintained.

A well-planned adoption strategy for a decent idea is better than a botched execution of a perfect idea.

5. Resolve technical debt in existing code

A great engineer leaves code cleaner than they found it.

Moreover, when an engineer encounters a piece of code or architecture choice that no longer fits within a larger understanding of how the product should work, the engineer is capable of explaining the problem and its implications to the team and stakeholders in the company.

Note: A good engineer does NOT go rogue on large refactor work. Taking on a large refactor without asking is a sure sign of a coder with a big ego. Instead, good engineers talk it over, plan it out, and prioritize the refactor with the team.

6. Read & write documentation

Documentation about how the code works is so important for sharing information and onboarding new developers. Great engineers understand the value of documentation and write documentation for the projects they work on.

What is good documentation?

  • Great variable, function, and class names that make it clear what the code is doing. Naming things well is one of the hardest parts of software engineering.
  • Inline, function, class, and file-level comments and docstrings that explain why the code works the way it does.
  • READMEs and other internal documentation that explains larger concepts and usage in the project
  • External documentation like API docs, public packages, and help articles

Good documentation doesn’t have to be long or complicated! In fact, great engineers know the best documentation is short and clear.

7. Review other engineers’ code

Code review is a huge part of an engineer’s job! During code review, great engineers look for:

  • Does this code meet the requirements of the ticket?
  • Is it technically correct and handle error cases?
  • Is the implementation as simple/straightforward as it can be while still being flexible?
  • Is there good test coverage and do the tests cases reflect actual usage?
  • Does the new code include good naming, docstrings, comments, and type hints?

Being a good code reviewer helps set a standard of quality for your team. Of course, great engineers should be expected to meet their own standards in the pull requests they open!

What’s more, code review is a great opportunity to mentor other developers and expand their thinking/skills. Good engineers provide empathetic, actionable feedback in their code reviews.

8. Interview candidates

Engineers that understand the whole software development lifecycle are much better prepared to interview candidates to join the team.

They understand that it’s not worth hiring a great coder if that person isn’t a good team player. By the same token, they’re willing to see the promise in a weaker coder if that person shows potential.

Hiring is hard, and being an interviewer requires a high level of emotional intelligence. Being a good interviewer is just another way that great engineers contribute to their team in hidden ways.

9. Coach junior engineers and pair program

Truly great engineers want to share their knowledge! They help others on their team get better at building useful products with code.

Sometimes that means pair programming. Other times, it’s one-on-one mentoring. Even code review comments can be considered a type of mentorship.

Coaching other members of the team and collaborating on work is a big part of an engineer’s job. While it means the engineer isn’t spending time developing new features, coaching leads to better facilitation of work across the team. Even though individual throughput might go down slightly, the whole team’s throughput improves when engineers share best practices with one another.

10. Respond to incidents

Engineers do their best to thoroughly review and test code, but incidents and bugs can still arise for customers.

A coder might be able to respond to an incident, too, but engineers take their response a step further. Great engineers ask:

  • Why was the incident able to occur in the first place? What are we missing in our unit tests, QA process, code review standards?
  • Who else might be affected by this incident? Could other customers possibly experience the same issue? Do other services rely on the affected component?
  • How do I document the incident, its resolution, and followup steps? If something similar happens in the future, how do I make it easy to find the solution?

Engineering involves much more than writing code. There are a whole host of hidden jobs that great software engineers do on a daily basis.

Hopefully, this article sheds some light on what it takes to become a truly great engineer. However, this is certainly not a definitive list. There are even more tasks that software engineers undertake!

Take this article as a challenge to focus on all the work that’s adjacent to coding and just as important! Getting great at the hidden work of engineering sets you apart from the pack in your ability to build great products and get ahead in your career.

DeveloperPurpose.com — Email series on how to build a meaningful software career

Think Software Engineers Just Write Code? Think Again. (2024)

FAQs

Think Software Engineers Just Write Code? Think Again.? ›

Some coders do the bare minimum: write code that meets the requirements. However, great software engineers know their job involves much more than writing code. If you want to be a great engineer (and get ahead in your career), it pays to know all the “hidden” work that goes into being good at your job.

Do software engineers just write code? ›

Software Engineering Job Description

Software Engineers write the code for websites, apps and software. Software Engineering teams often work together to thoroughly test their work and address problems before it goes live.

Are software engineers just coders? ›

As coding specialists, programmers work on a specific aspect of the development process, so their work helps software engineers complete theirs. Software engineers can handle programming responsibilities, but they also have more development responsibilities related to their areas of expertise.

Do software engineers just code all day? ›

Their typical day involves a lot of coding, and they don't spend a lot of time fixing technical issues. Usually, software engineers manage several projects, work with coworkers, and develop new codes.

Do you think AI will replace programmers? ›

As you can see, It's evident that AI's usage in software engineering is still in its nascent stage and is mainly beneficial for basic and repetitive tasks. So, it's unlikely that AI will replace high-value software engineers skilled in building complex and innovative software anytime soon.

Will AI replace programmers in 10 years? ›

The answer is no. In fact, AI will create demand for even more programmers. As someone who has been in the software development field for over four decades, I've witnessed numerous predictions about technology making programming jobs obsolete.

Is it stressful to be a software developer? ›

The Pressures of the Profession. Software development is indeed a challenging profession. It involves solving complex problems, often requiring engineers to think in abstract terms and to maintain a relentless focus on details.

Why do software engineers make so much? ›

The high salaries serve as a recognition of their hard work, dedication, and expertise. In closing, engineers get paid so much because their skills are in high demand, their knowledge is specialized, and the hiring process can be challenging.

Is software engineering harder than computer science? ›

The difficulty of computer science versus software engineering is subjective and depends on individual strengths and interests. Computer science often involves more theoretical concepts and mathematical foundations, which can make it seem more challenging if you're naturally strong in those areas.

How much of software engineering is coding? ›

It's not all coding!

According to a survey conducted by Electric Cloud, developers spend up to 54% of their time on non-coding tasks. While the exact time spent on these tasks varies based on the development phase, the graphic below depicts what software engineers do in an average week.

Is coding 1 hour a day enough? ›

It is true that the more time you put in, the faster you'll learn, but if you're okay with a longer timeframe, an hour a day is plenty. In fact, if you had the choice to spend ten hours learning to code over the weekend versus spending one hour each day of the week, I'd recommend the latter.

Is coding 4 hours a day enough? ›

Yes. 3-4 hours of quality coding time is enough particularly in the context of a project or job. Yes. You can definitely learn to code while working if the job involves coding.

How many hours do software engineers actually code? ›

Few developers code more than 2 hours per day

Our data reveals that only about 10% of developers spend more than 2 hours per day coding, including weekends. About 40% of developers spend more than 1 hour per day coding.

Why AI won't replace coders? ›

AI can help us do things better, faster, and more efficiently, but it cannot replace human creativity, intuition, and problem-solving skills. To maximize the benefits of AI, we need to work together with AI, not against it. We need to use AI to augment our skills and abilities, not to replace them.

What jobs AI can't replace? ›

119 Jobs That AI Won't Replace
  • Health care and well-being.
  • Creative and artistic fields.
  • Skilled trades and construction.
  • Academia, education, and training.
  • Service and personal care.
  • Business management and legal fields.
  • Sports, fitness, and recreation.
  • Environment, agriculture, and conservation.
Jan 16, 2024

Why AI won't replace developers? ›

While AI can analyse vast amounts of data and detect patterns, it lacks the emotional intelligence and moral judgment necessary for making nuanced decisions. The "human touch" if you like. Furthermore, developing AI systems capable of tackling complex problems requires extensive domain expertise and data training.

Do programmers code 8 hours a day? ›

Most programmers don't write code for 8 hours. But they think more than 16 hours. Their mind doesn't stop.

What do software engineers do all day? ›

Maintain Software Functionality: Software engineers maintain existing software and create new software. This includes making updates to align with the latest industry and company standards, troubleshooting problems, and brainstorming future improvements. Maintenance is equally as important as writing new code.

Do coders code everyday? ›

It ranges. A junior can be coding for 1 hour a week or 80 hours a week. A senior/staff may never code at all. It's hard to judge.

Top Articles
Latest Posts
Article information

Author: Tyson Zemlak

Last Updated:

Views: 6304

Rating: 4.2 / 5 (43 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Tyson Zemlak

Birthday: 1992-03-17

Address: Apt. 662 96191 Quigley Dam, Kubview, MA 42013

Phone: +441678032891

Job: Community-Services Orchestrator

Hobby: Coffee roasting, Calligraphy, Metalworking, Fashion, Vehicle restoration, Shopping, Photography

Introduction: My name is Tyson Zemlak, I am a excited, light, sparkling, super, open, fair, magnificent person who loves writing and wants to share my knowledge and understanding with you.