Nothing is what it seems

Kendall Walsh
2 min readJul 29, 2021

I realized that not understanding a task is a more frequent factor than not knowing how to program or use a library. It is very common to face this type of situation since as software developers we are always getting involved in areas outside our knowledge. Some experiences I have had are the following:

The logistics of a business: I am currently involved in a project where the company handles things in a somewhat unusual way. This causes that the issues created by the client at first glance seem that they do not make sense and that there is a conflict between how I thought things were handled and how the company handles them. For this reason, it is very important to ask the client when you suspect that something is not fitting.

Another situation that has happened to me a lot in that same project is that I am using a database created by the company. It has happened to me a lot that I see the relationships of the tables and I feel that they are wrong, the relationships so upside down, etc, after a good time trying to understand the relationships, I ask the client to explain to me how they are managing the relationships, and then after the client finishes explaining to me, everything makes sense.

Perception of the application design and workflow: A few weeks ago I was working with a mobile application in ionic, and the task seemed to be very simple, add a button that would activate a Bluetooth scanner on the main page. The problem is that this was not the application flow that the client wanted, the flow was to click a button on the main page which redirects to a new view that contains the scanner. This is very different from what was written in the issue, so it seems very important to clarify 2 factors in each feature.

1. What is the need for this feature? Understanding what the client needs helps to know which is the right path, it is very common for clients to say what they want but not what they need. If you don’t know what clients really need, this is blind programming, and you can’t make good decisions.

2. Application flow: How the client expects this new feature to be used, thus avoiding what was mentioned above.

--

--