Navigating The Organization to Make A Right Decision
Taking a right decision is always hard things to do when there are no options to satisfy every stakeholder in the organization.
As software engineers, we frequently make decisions in various ways. The more senior we are in the organization, the greater the number of factors that must be taken into account before making a decision. As a junior software engineer, you may have to think about how the code flow incorporates conditional statements to align with current functionalities. As you move up to a senior level, the importance of the consideration increases. For instance, you must evaluate the scalability and performance of the implementation when receiving thousands of requests per second, as well as how other engineers can expand or enhance the implementation you developed.
At the managerial level of software engineering, making a decision is becoming increasingly complex. Typically, it starts with considering the time element, which revolves around analyzing the current situation (or current implementation) and determining the organization's desired goal.
The next question is whether stakeholders in the organization are already in alignment with the goals, or if there are aspects that still need to be communicated in order to achieve alignment. Stakeholders include not just your colleagues or other teams within the company, but also those above and even those across different levels.
Your skill in locating the correct spot is crucial in this scenario. You must remember that while the organization has a goal, individual stakeholders may have their own goals that may not be in line with yours, despite all aiming towards the same organizational goal.
Let's examine this situation. Consider a scenario where there is a suggestion to develop a feature that has been asked for by a big existing customers. The feature must be completed within 2 months, or else the customer will churn and switch to a different solution. Multiple options are available, but none of them satisfy all stakeholders.
The first choice may involve developing the feature properly left no time to test it, which does not match the QA team's objective of ensuring there are no issues, so every feature should undergo thorough testing.
The second possibility is to develop the feature half-baked and properly test it, resulting in technical debt for the software. This may not be in line with your objective as it incurs debt that must be repaid later on.
Next, request two engineers from another team to ensure the feature is developed correctly and thoroughly tested. Nonetheless, it may create scenarios in which other teams are unable to achieve their objectives because of a shortage of personnel.
There may be a fourth or fifth choice available, but you understand the situation for now. When none of the choices please all the involved parties, you must find the correct balance to achieve it, and sometimes the situation is worsened by the need for a quick decision.
There are two tips that I could offer. First, seek assistance from your superiors and subordinates. This will help you in broadening your perspectives. You must keep in mind that you have support, so don't attempt to handle it alone. There is always a possibility that your team member offers a superior solution to the problem.
Second, negotiate with your horizontals (other stakeholder). The outcome of this can differ among individuals. You need to have good negotiation skill to make sure that they are align and agree with the approach. Your social capital is also important in this scenario, because you need to have enough social capital to pull this through.
Thirdly, be willing to give up things if needed. Ultimately, you may face a difficult decision that could require you to make sacrifices based on your choice. It's acceptable, but you should have a strategy to address it in the future or it could become a ticking time bomb.
If you have successfully take a right decision and everyone is happy with it, then it’s good for you. Remember, your job is not to make everyone happy, but your job is bringing value to the organization. So, it’s ok to make unpopular right decision as long as it provide good impact to the organization.