Small intro, at this moment we are developing new system and have automation tests for web interface, unit tests for part of server side code, code reviews and sharing of knowledge in the team. Unit tests partial because of philosophy of writing valuable tests where you know what you want to validate and don't need to invent subject of validation.
We are not lunching rockets so nobody will die in case of bug. Also the aim is to get to continuous delivery and in case of bug the fix will published quickly (if it found). Applications has web client, api, many micro services and works with big databases of hundreds gigabytes of data, but we are not data creators we mostly consumers. Each service and part of application going to be continuously monitored by analytics system. Also we work with key value storages, queues and documents database. Most of logic is in database or API.
In few words nothing critical will happen in case of bug. But reputation is important too.
The questions are:
- What's yours pros and cons for working with TDD methodology
- Do TDD rises code quality? Is it true or only some legend to sell TDD?
And some personal question to everybody, don't you think that working with methodology like TDD that gives you way you have to develop your applications limits you in some frame? It looks little bit ridiculous that I can't use static variables and functions or singletons and it's only small part of the restrictions.
Thanks to all.