Whenever I sit with my boss I often hear these lines:
Can you compress this time schedule? Why do you need an extra day? Haven’t you done it before and this time it should be easy to do? Can you compress the schedule by working late hours?
You try to answer these questions and you realize that your boss is getting bored. How do you feel at that moment? Frustrated!
This happens when you give an estimate for a task while thinking that a quality code will take more time. If good design is your priority then it will take extra effort to complete the task.
It does not matter how precise or compressed your estimates are you will always have to bargain with your boss over your estimates.
This will leave you with two option either to write code as fast as you can or fight for quality code. I will always choose the ‘quality’.
Why does this happen? Is your boss skeptical? I believe not.
Being skeptical is a good trait but being fearful is not. It is easy to understand if your boss is not fearful. For example, if you tell your boss that a particular task will take around two weeks. What do you think a fearful person will be thinking?
“What if he fails in completing the task”
“What if the result does not match what I want”
If your boss is fearful then he needs proofs, data, and maths to show him that design patterns help in writing good quality code. But you know that there is no scientific method that can satisfy your boss.
Software design is not science. It is a heuristic.(I guess I am writing these lines too much :)- )
Let your boss be fearful. But I don’t want you to be like that. I don’t want you to be fearful when you select quality over quantity(i.e writing code fast)
All you have to do is just write quality code and wait. No matter how much time it takes to write good quality code. Just don’t be fearful that your efforts are in the danger of being wasted.
You will not get the reward for your good quality code in the next week. You will have to wait and you will reap benefits later. You will see and feel the benefits of your good quality design.
Let the greatest tester of all time test your code and that is the ‘time’. If your code passes this test which means easy to change, re-use and maintain then you don’t need any other mathematical proof to show off.
Afterwards, you can show off your design knowledge to your colleagues but this time with authenticity because you know what it feels like to be a writer of good quality code.
In your opinion what is important to you?
+Showing off in front of your colleagues
+Defeating your boss technically 🙂
+Writing code as much fast as you can
Or anything else. Reply in the comments section.