I started my career as a programmer more than 10 years ago since i was still in high school. So, i could proclaimed myself as a senior programmer. I’ve been working full time on numerous companies, working freelance on many projects, and partnering with many programmers with various personalities and habits. I found that there’re common issue found by anyone who works with them, then it’s valid if i think that i understand the situation. Let me talk because i want to share my opinion based on my experiences regarding to this issue.
The common issue i mentioned before is simply about why people oftentimes asking “Why does it takes so long time to make it happen?“.
Programming is a unique job. I could say that opinion, because programmers are working by interacting with logical flow and abstract structure, then speak it using non-human language to a machine. They only need a laptop (or other tools with same functionality) then they can create anything we want.
In my theory, every programmer must posses a goodness of both between left and right brain, left brain for logical things and right brain on how they imagine the abstract stuffs. Oh sorry, we should focus on the main topic. Sometimes, we stuck on a situation like we had planned to launch our application, add a feature, or simply fix a bug and it should be completed at a certain deadline. But, we should drag the timeframe to another position and we had to make another plan based on this situation. This is seems to be very confusing but it definitely need a proper handling on how we tackle this kind of problem.
When we ask a programmer “Is it done already?“, there are two possible answers:
- Not yet. And the real possible situations are it’s still in progress or it wasn’t being started at all.
- It’s done. And the real possible situations are it’s still in progress, it’s done but still need to be confirmed if it’s still buggy and need to be assured or it was really well done.
We can confirm their answer by ask them to demonstrate how it works, so we understand how is it going with the task assigned to them. Furthermore, if we understand how to read application source code we can ask them to show it. If they said it’s done and we can confirmed that it’s really well done, then there are no problems and we can celebrate it. But, when they said the other answer with its possibilities, we should understand how to react.
In my opinion, why programmers are potentially not telling the truth on completion of their tasks whether it’s white liar or black liar, it’s simply because they think that their reputation is the most precious aspect in their career. They don’t want to loose their job, they want to be promoted in higher level, they don’t want their salary increment obstructed and they don’t want their pride around their teams or partners go down. If something taking too long to complete or they made a wrong estimation, we should understand that they are might in these situations:
- They are doing another job. I often meet programmer who are doing some side-jobs and they can’t manage it that they should prioritize their main job than their side-job, this is why many companies are deciding to not allowing their programmers to do any side-jobs. If the programmer is doing the job in freelance term, then they might be in a tight deadlines that occurs at the same time or too close.
- They are not capable yet to do the job. Where is the fault? The fault happened in job interview or tasks assignment. We should discuss with the programmers how long they will understand and how to complete the job and make further decision based on that.
- They found a rarely-found difficult issue. Sometimes, this kind of issue is really taking to much time to be passed before completing the main task, if the application is too complex or the debugging process would take a big effort, then we should understand that this is out of their control or might need some help from the team. Every people own different point of view on how to see problems, a difficult problem to someone might a very easy to the other, so we should enforce every team member to communicate and help each other.
- They had another personal problem. This is natural, but some programmers are easily distracted to non-job problems and and sometimes less stable emotionally. But, if we talk in professional point of view, this should not be a reason to not performing ourself.
To my fellow programmers, let’s being straight-forward on how to explain what really happened to make our client or company business running smooth by telling the situation as it is so they can focus on their plan. I’m not doing a judgement, I’m just sharing my opinion. Programming is a fun job and we should make it more fun!