5 answers
Asked Viewed 224 times Translate

As someone who is a software developer, what is the most challenging part of the job?

Troubleshooting, making sure your input gives you and the user the output that is desire. Important, people are important, think of yourself as they. Erik Solá

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you
100% of 5 Pros

5 answers

Updated Translate

Dinesh’s Answer

There couple of challenges of software developer, but it's easy to mitigates. The technical challenges are not really problems, they are just challenges and most often fun to deal with. The satisfaction gained by solving a critical problem is immense and long lasting. Here is the details:

Technical challenges are what you normally associate with the core coding aspect of software development. It's learning the languages, the frameworks, the systems and the algorithms. It's dealing with writing quality, maintainable code that can scale to multiple systems that can serve millions of users. It's finding and fixing logical errors, debugging some esoteric minute bug in the code.

Operational challenges are less unique to software development and thus less mentioned but equally if not more difficult to handle. Dealing with management, career advancement and recognition, collaboration with other engineers as well as designers and product managers, and continuous education of both technical and business parts of an organization are all issues that software developers face. As a matter of fact, the emphasis on the pure technical challenges above downplay these operational challenges.

Also, there are some other challenges such as:

  • The requirements are not clearly defined.
  • The requirements are defined by people who don’t understand software.
  • The requirements are clearly defined, but then changed in the middle of development.
  • The requirements are not defined at all.
  • The requirements are defined, but not communicated properly.
  • You’re being forced by management to work on more projects than you have time for.
  • You’re being forced by management to use a certain set of tools even if you know they’re not the right ones for the job.

Hope this will help to your query.

Updated Translate

Leon’s Answer

One of the most challenging aspects is probably finding an approach to your problem that both works and is efficient. This usually involves coming up with diagrams or planning designs to tackle your problem. For example, if your team is trying to move their services from one cloud service to another, there are a lot of choices to make when it comes to where to move, what infrastructure management tools to utilize, etc. And as others have mentioned, you must constantly learn new technologies, but it's great for your own development :)

Updated Translate

Michele’s Answer

Even with 30+ years experience as a developer (oh, dear, am I really that old?! :) -- I still find the most challenging, but also the most rewarding, is staying current on the latest technologies and methods for creating the best solution possible. The goal of always wanting to implement the best solution, is itself, a never-ending challenge, so I would recommend always starting with the simplest approach, get that working with tests to validate correctness, and then start tinkering (refactoring) to make it faster, more elegant, using more of the latest proven methods, as available.

Michele recommends the following next steps:

Start simple.
Don't over-design.
Write tests to give you the confidence that your solution remains correct as you make changes/break things.

Updated Translate

Jennifer’s Answer

The biggest challenge can be remembering that delivering VALUE to the END-USER is the GOAL.

Sometimes, programmers can get stuck in the weeds, working on particular solutions, and lose sight of the original intent of the project initiative. The role of Business Analyst is crucial, as a liaison and translator between the developers and the business unit end-users.

Updated Translate

Lev’s Answer

You're never done learning. New systems, frameworks, languages, architectures...