Communication is often underestimated in our job. That's because when we start our journey with software engineering, we focus on the hard skills, such as backend language, frontend language, CI/CD, databases, infrastructure, and all the other sexy stuff. But as our seniority level increases and we get more and more experienced, we should start thinking about our soft skills as well. Because our job stops being just writing the code. Communicating with other team members and business gets more and more important.
In this post, I will use business interchangeably with the Product Owner, Manager, or anyone that should bring application requirements, in your company.
Have you ever experienced when a business or Product Owner / Manager came to you and said that he wants you to display certain columns from the database on UI? Or that you should simply select, insert, whatever value into the database?
This is just an example. I hope you see where I am going. The business often gives us workarounds or what they think is the best technical solution, instead of requirements.
I truly believe that we need to understand the problem first before we solve it.
And let's be clear here. I don't mean that you need to learn about CROSS-JOINS to solve the problem. I mean to understand the purpose. The WHAT of what the person that talks with you want to achieve.
It might involve some discussions. It might require some time. Especially when you'll start digging for the first few times.
What I noticed is that the business or users of our application often look through the prism of the current system. Many times, it's not what the business or users really want. Talking with users or the business will lead to a better solution.
Ask few questions. Try to truly understand a problem. You might get surprised when during discussions you'll run into a solution that doesn't require writing a single line of code.
Let's stop talking SQL.