Thursday, July 21, 2016

We don't need testers, we need good developers.

We don't need testers, we need good developers, it is a hard thing to say. However, after having worked for the last 12 to 13 years in 3 different countries in my own companies and others, from small to big corporations, with people for all around the globe, with developers in all levels. In general it has been fun, however, you always don't work with the best. Working with the best is not working with someone that talks a lot. It is working with someone that delivers well written software with almost zero bugs.

Saying that. There are good practices in the industry that everyone is using. What we can see are companies using some those practices such as continuous integration, TDD, BDD, clean code, etc. All of them or at least most those companies use Agile. All or most are using Scrum or Kanban to manage their projects. There are other companies that use other methodologies like DevOps. I think that is amazing, the industry is moving forward and organising to get better results and keep customers happy.

However, there is still huge problem. None of methodologies and practices mentioned above,  helps you with common problems (incomplete functionality, crashes, bugs, to mention some) that you find in the development process.

There is another problem also, recruitment. The recruitment process doesn't really help to identify the best people either. Coding exercises, algorithm solving, questions in interviews that only test your memory. It doesn't help at all to solve the problem. On the other hand, companies think having people that do QA will solve the problem. The process goes this way a developer write a piece of software, it is dev reviewed and after that it goes to QA where it normally fails, if it doesn't fail is not necessarily because it meets all the criteria but because the QA didn't do all the proper checks either. Every time that I helped with QA I always found lots of bugs and issues I wonder why. 

I know that the topic is subjective. Some developers will learn how to be a good developer others won't. But you are better of paying a little bit more and taking the time to find someone good that having to deal with big problems when in production. At the end, it is better to have a good developer that knows how to build software and makes sure that its code works (I pay double for that).

Here are some traits of a good developer.

- Self managed
- Readable code
- Attention to detail
- Testing all edge cases
- Ability to communicate
- Ability to see the big picture
- Good understanding of the problem

Still a good developer should:

- Write tests
- Keep on with trends

A developer with these traits is difficult to find. If you come across or one of them works in your company hold to him/her, they don't get the recognition that they should sometimes.

1 comment:

chrisob55 said...

I'm in agreement when it applies to manual testers but I like having automation engineers in the team. It's too much for developers to write all automation scripts on top of their normal workload.