CodeX
Published in

CodeX

3 Important Non-Technical Problem Solving Skills a Developer Must Have

Photo by Guille Álvarez on Unsplash

Given that, the distinction between a software developer and a programmer is virtually non-existent, a programmer/developer has to learn a lot of aspects of the application her/his company is developing.

Apart from the technical side, when it comes to problem-solving skills, one has to pay closer attention to the human side of the errors as well.

In this article, let me list out the 3 skills that I found were very important and developed over a period of time.

Identify Human Error

Photo by Nong V on Unsplash

More often than not, defects raised in lower (non-production) environments end up being a test data or test scenario issue.

Before pulling out all the logs and switching your IDE to the debug mode, analyze and assess the situation.

Is the scenario valid? Is the test data accurate?

Worst of all, make sure the right code is available in the environment where the defect was raised.

Skills Needed? A clear understanding of the business requirements.

Know the Components

Photo by Christina @ wocintechchat.com on Unsplash

As a Programmer, you have done coding as per the requirements, unit and integration tested it, and deployed to a test environment.

Your code is not working now, how would you solve this issue?

Have a basic understanding of the different systems and software components involved in your application.

Your code might not be working because of the following hypothetical scenarios,

  1. Response from the external system is not as expected.
  2. Response from one of the third-party APIs failed and your code was never executed.
  3. Asynchronous messages are getting produced but the consumer service where your code is written is not consuming messages and your code is not executed.

Fun Fact: 3rd scenario happened in real and my code was reverted by a genius for no reason. I didn't know at that point how to identify Kafka issues :D

Any of these issues and more could happen in real life and you should have a basic knowledge of the multiple parties involved in your application.

Skills needed? A wiki page to document the application architecture and basic skills to understand the components.

Isolate the Error

Photo by Ursula Drake on Unsplash

Isolate the issue as much as possible before using any kind of technical expertise to tackle the situation.

Start with basic questions like,

  1. When was the issue noticed? Since when is this happening? logs or monitoring tools can help you identify that.
  2. Did anything change at that point? Did a DB migration happen? Was there a code deployment? Did any software patching happen around that time? Was there scheduled maintenance around that time? Start with the most basic questions.
  3. If it was related to code deployment, check the commit history and validate the new changes. If it was patching verify any other service that uses the same product.
  4. If data retrieval is failing, validate that data was saved properly from the application and so on.

Most of the problem-isolation process is not directly related to your technical abilities to develop software or programming concepts. It is more about your basic understanding of various pieces involved in an application.

If x and y are consuming z and y is not working then validate if x is working fine, if yes, most possibly the issue is with y and if no, then check z.

I have debugged a lot of software issues in my career so far and a few of them were in systems and services that I was not directly working with. The confidence my management had in me while pulling me into any production triage call was my ability to narrow down the issue to its origin. As mentioned earlier, I would rarely attribute that ability to my technical skills it's all Analytical.

Skills needed? Logical Reasoning.

Conclusion

Hope you find this article useful. Let me know some of the non-tech skills you used at work to solve issues in your application.

--

--

--

Everything connected with Tech & Code. Follow to join our 900K+ monthly readers

Recommended from Medium

encryptCTF 2019 Pwn Write-up 5 of 5

Get Intersection of Two Subsets in Excel

FitNesse Training: 5. Best practices — Creating smart scenarios in FitNesse

Case Study on Azure Kubernetes Service (AKS) : Industry Use Cases

The Most Common Types Of Web Development Solutions

Create a simple Golang rest api with Mux and MongoDb

Importing Conversational Data from Rasa to HumanFirst

FizzBuzz in Java 8+

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Ruby Valappil

Ruby Valappil

Digital Entrepreneur | Programmer | I write about Technology (Software, Network Protocols, Space Technology) & Digital Entrepreneurship| https://rubykv.com/

More from Medium

Dear Developer and Stakeholders, Please Take Maintenance into Consideration

Note of Head First Design Patterns

Mind your problem surface

Clean code by TDD with Static Analysis