Highlights from the Clean Coder Part 2: Saying No

Sevcan Doğramacı
3 min readJan 31, 2023

--

The work environment is different. We are there as a colleague of others and have responsibilities towards our work. Throughout this journey, all of us come across technical and social difficulties in that environment, and learning by experience is challenging. This is where Uncle Bob’s the Clean Coder book comes to benefit us in improving ourselves on how to deal with these challenges and become software professionals.

In the previous post, we talked about Professionalism from the Clean Coder. Today I am going to mention the parts that I highlight and apply in Saying No chapter of the book.

Photo by Florian Schmetz on Unsplash

Can you think of a professional hesitating to speak the truth?

No, of course.

Let’s ponder a scenario. You are the developer having an approximately ten-days task and you have just started developing. Your project manager comes to you and asks if you can complete the task within three days. What should you say?

👍 You say “Ok, I will try.”. Then, you will find yourself rushing in order to finish the task for the deadline. However, you are sure that the task is not a three-days task. Then, how? You will work overtime, but it is not enough. Then, what is more? You will start searching for workarounds to develop as fast as you can which may cause leaving your development principles. In the end, you might have a fragile feature in your hands that only saves the day but definitely needs testing and refactoring (not completed actually), or even worse nothing.

👎 You say “No.”. You explain why it is not possible to complete it with all qualities supplied and adhere to reality. Then, you make your development without abandoning your principles and finish with your heart.

Software professionals do not hesitate to state the reality. There is no trying! Trying here means “to apply extra effort”.

There is a simple logic behind this. If you say you will try something, it means that you have the time and resources to make this happen. Also, the one spoken to will accept it as “Yes.”.

Without having a reservoir of resources for the task, then how will you try? If we do not have, then we are actually lying by saying “I will try.”. Moreover, based on your statement, your project manager may take certain actions which can cause more trouble and pressure on you.

To sum up,

if there is a requirement, you can either do it or not. You can either do the requirement in X time or you cannot. By saying I will try, you are putting the other party in expectation. In these circumstances, software professionals have the courage to express the truth and say “No”.

That was all for this post, see you in the next post 🧐 🚗

--

--