The Clean Coder : Saying Yes

yesThe last entry of “The Clean Coder” was about saying NO, this time it is about saying “YES”.

This 3 letters word means a lot, especially in a work environment. Why ? Because saying “YES” is a commitment, weare giving our word to someone else. The book gives the 3 parts of making a commitment :

  1. You say you will do it !
  2. You mean it !
  3. You actually do it !

This is what we imply when we say “YES”.

We all know it and this is why we often lack of commitment maybe without noticing it. You can recognize this by the use of the following word : need / should / hope / wish and many more. Here are a few examples :

“We need to get this done” – “We should make this” – “I hope to finish this by the end of the week” – “I wish I had time for that”.

None of these is a commitment and we, at least I, probably said every one of them without doing anything to fulfill the related task/work. It might sounds fierce but I think that without commitments, there is no trust.

Am I saying that we should always say “YES” and commit ourselves ? Not exactly. You should commit yourself only when you have the full control over the task you have to complete. But in the other hand that doesn’t mean that you cannot do anything to complete this task, you might not have the full power but you are not powerless.

“We need to get this done !” So what is the next step we can make to actually do it or at least to participate to its completion ? If you want to learn more on how to do things I can recommand you the book “Getting Things Done” by David Allen.

For example you are waiting for an other team to finish their work in order to finish yours ? What do you do about it ? Do you just wait or do try to help them ? Or maybe you try to abstract their part with a mock in order to continue. There is always something you can do !

A professional doesn’t have the power to say “YES” to everything but he certainly has to power to work toward it.

See you next time for Coding !

The Clean Coder : Saying No

noThe Clean Coder” second chapter is about saying : NO !

I know that giving this word as an answer to your co-workers/bosses may sound highly unprofessional but on certain occasions not saying it can have much worst consequences.

Here’s a fictional conversion between a client and a developer to explain the concept.

Client : “Hey ! We would like to have the feature B for the next release (#5), can you do that ?”

Developer : “But we agreed to deliver it for the release #7.”

Client : “I know but this feature will help the business a lot.”

Developer : “We don’t have time to do all the development and testing for the next release”

Client : “Look, this is high priority for our customers.”

Developer : “I’ll try”

Client : “Thanks !”

What happened here ? The developer just agreed to do extra work he knows he doesn’t have time to do (he said it !). Instead he chose to avoid any conflict by saying “I’ll try” that will bring a lot of confusion in a near future. By answering this the developer says “NO” without saying it and the client understood a “YES”, this will end badly. Maybe it’s possible to meet the deadline by using the “quick & dirty” approach and by removing the tests phase. Doing that is risky for the software and is a violation of the “do not harm” principle, and the way the developer does his profession is dictated by the client.

In this example the developer should have stuck to the “NO” because he “doesn’t have the time to do the development and the tests“. Or he should have tried to switch the new feature with another one to fulfill the client request without adding a new amount of work, it can be a win-win solution .

Professionals are hired to ensure that the direction chosen makes sense and follow the right path. If you don’t behave this way you might just be a laborer.

A few years ago, I was an inexperienced junior developer and I faced a situation like this one. I did the mistake shown in this example and of course when the release came, I was not ready and the situation I had to deal with was far from pleasant.

I’m not saying that you should always say “NO”, this would be also unprofessional, but you need to know when to say it.

And you need to know to say YES as well. This is our next topic !

The Clean Coder : Professionalism

professionalThe Clean Coder” is a book for professional programmers (says the subtitle) so the first chapter is about professionalism as a software developer.

There are 3 main characteristics in Uncle Bob vision of professionalism.

The first one is about taking responsability : if you want to be considered as a professional developer you have to take care of your work and especially your bugs. You can choose to test your code or not but you have to face the consequences of your choices. You cannot be perfect by producing zero bugs but you are still responsible for your imperfections.

The second part is named “Do not harm“, do not harm your functions nor your structure. In other words it means that you should test your system and its functionalities to be sure that the behavior of these is not altered. And the structure of your system should stay highly flexible, this way you don’t have to break everything in order to apply some changes.

The third and last characteristic is about work ethic. Uncle Bob expects that a professional programmer has to work from home several hours a week. But this work is not for you employer, this work is for your career. In our field the technologies evolve quickly and continuous learning is essential to avoid becoming obsolete. We have to stay sharp !
But keep in mind that this work should stay fun and you can learn whatever you want, you are not forced to learn for your employers, learn for yourself.

To sum up a professional is responsible for what he produces and should practice its craft.

See you next time for “Saying No” !