Kent Beck Audio

I have always done unit testing (even prior to knowing its existence), it just feels natural to test every single part that is going to be assembled with others to do a job. However, I am more used to coding first and then thinking about the test cases that my code should pass in order to say that it works properly.

Difficult choice.

Evaluating.

After reading about TDD, I believe that it is worth giving it a chance, since it makes sense to first think about the edge cases that your code will face to prevent avoiding a solution to them. Also, gathering the requirements before starting to code is a must, and TDD forces you to do so. And this is what makes a lot of sense, by doing this, you are supposed to make sure that the tests covers all the requirements given before writing a single line of code, this means you already will have in mind everything you need to avoid (or to keep a track on) while coding the solution.

hellyeah designer flowchart
Design’s importancy.

To be honest, I don’t remember a time when I have started by creating the test cases, but I will definitely give it a try.

Nevertheless, I kind of see some problems with this, TDD works only when you already are aware of all the requirements of your code and, as sad as it sounds like, this does not happens always. Additionally, real world scenario happens, for example, in my work, we create software for other organizations, so, maybe in a perfect day we gather all the requirements that our client really requires for the project. They are expecting to see progress within a month, the month passes, they see the project progress and then they start requesting changes, now some previous requirements are no longer requested and new requirements have come, this constant change will not let us do the TDD development process correctly.

About what should I learn next regarding this topic, I think this is a question that could have been made before and a lot of answers have come, by reading more about TDD in internet forums I am going to understand the best fit solution to this situation or, at least, I will learn about other people experiences and create different solutions according to each specific situation.

Deja un comentario