As someone who is a software developer, what is the most challenging part of the job?
#software-engineer #software-developer #technology
8 answers
Jennifer Mazza Cagliuso, CPIP, POPM, AAC, SA, CSM
Jennifer Mazza’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.
Jerel’s Answer
It's easy to get lost in the sea of new technologies, frameworks, languages, patterns, etc. This is especially relevant for frontend engineers that do work primarily in the browser. As a developer for 10 years, I've seen and used so many JavaScript frameworks, state management libraries, and programming patterns come and go. Not only is it difficult to keep up with it all, but I find it also difficult to find some restraint. Innovation is exciting and it can be tough to stick with something that may start to feel "old" after a while. That doesn't mean that you can't use the new stuff, but it can be difficult to fight the urge to always be bringing in new stuff.
Finding the "right" solution can be pretty difficult. I can't tell you how many times my team and I have built something that we were excited about and just KNEW the customer would love it, only to get feedback that what we built was confusing or unintuitive. What may work today also may not be sufficient tomorrow. As customer needs grow and evolve, so does the product that you need to build. Sometimes a simple change to the text of a button can be responsible for an explosion of interaction from your customers. This can also take huge chunks of time. While the customer only sees the updated text, there can be many hours that go into deliberation, setting up ways to measure success, etc.
Hope this helps!
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.
Melissa’s Answer
* Technical problems:
From time to time, you will get stuck when trying to solve a problem or implementing a feature. This could be something that you have control over, for example you are still learning on a new technologies and you will get better as you go. However there are times where the reasons are outside of your control, such as the limitations on the third party plugins, or delay from other teams. The second scenario is definitely trickier to resolve. This is where good communication skills will be handy to discuss and agree on the resolutions with your team members.
* Handling support cases and incidents:
When incidents happen, there are high pressures to resolve and mitigate issues that the customers experiencing as quickly as possible. However we also need to resolve the problem safely so it does not introduce further issues. It can be hard sometimes to stay calm and thinking of solutions when we are under high pressure.
* Constant changes:
Tech industry changes rapidly, so you will need to be comfortable with change, be flexible and adaptable to new technology stacks and ways of working.
Lev’s Answer
You're never done learning. New systems, frameworks, languages, architectures...
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:
Delete Comment
Flag Comment