One day a manager asked a developer to create some new feature for a particular system.

The developer agrees to deliver this new feature with the best quality possible and that she will put all her effort to create bug-free code.

This developer will code on her own and with nobody’s help.

Required

The developer then started to think what could be the best way to deliver a product with absolutely no bugs.

“I surely need to create unit tests”, The developer thought.

But then, the developer asked herself how many unit tests she should create. Should it be one unit test per method? Should I use TDD? Should I achieve 100% coverage? Do I really need to create that much amount of tests?

Do I really need to create tests at all?

She found herself in a situation in which nobody was going to review her work. Nobody was going to complain if she doesn’t write the tests.

Why? Because simply managers and leaders didn’t care.

What would you do in this case?

Let’s say that you particularly learnt a few week ago about TDD and the importance of not only create unit tests - but to create them first.

And let’s say that you convinced yourself that TDD is the way to go but somehow your coworkers and managers don’t agree with you. How much should you try to talk them into about apply TDD in your current project?

It really takes so much work - and sometimes bravery - to propose your ideas to others and try to convince them.

But the reality is that if you manage to create persuasion skills so that you can convince people about your new ideas, you will surely become more that just an average developer.

It just takes a little time and effort to improve these kind of skills. Basically, the first step is to recognize that you have a lack of expertise on them (even if your an expert) in order to start studying techniques by reading books or articles online.

One technique that results particularly interesting to me is the story of the Stone Soup. Which tells us a wat to convince people through actions instead of only words.

The skills a professional developer must have don’t rely only on how to write beautiful code or know everything about algorithms and data structures.

The real professional developer stands out when it adds negotiation, persuasion and pragmatism to her set of skills.