The issue is, if open source has any chance of competing with paid software, it needs the same standards a regular company has. It’s not about “increasing productivity” as you put it. It’s actually about doing less. By writing tests, you spend less time on the code that ends up in the final application. But the result of that, is that the final application breaks less. Issues that could have been avoided, are incredibly rare.
Writing regular code is fun, it’s exciting. You deliver new toys that people see and are thankful for. Writing tests is the opposite of that, it’s boring and dreary for most people. But it is necessary to maintain a quality product. No regular user will thank you for tests being present, they’ll complain when things break. They won’t adopt a new version, since there is no automatic regression testing possible, since you haven’t written tests and things break in the next version. So now you have to test the entire thing yourself. Which is even more boring than writing tests, so you move onto exciting new features again. And you end up in a death spiral a few years from now, since you can’t see why a certain feature stopped working, all the features depending on it break one after the other, and the only way to check what’s wrong, is to go test everything there is.
The issue is, if open source has any chance of competing with paid software, it needs the same standards a regular company has. It’s not about “increasing productivity” as you put it. It’s actually about doing less. By writing tests, you spend less time on the code that ends up in the final application. But the result of that, is that the final application breaks less. Issues that could have been avoided, are incredibly rare.
Writing regular code is fun, it’s exciting. You deliver new toys that people see and are thankful for. Writing tests is the opposite of that, it’s boring and dreary for most people. But it is necessary to maintain a quality product. No regular user will thank you for tests being present, they’ll complain when things break. They won’t adopt a new version, since there is no automatic regression testing possible, since you haven’t written tests and things break in the next version. So now you have to test the entire thing yourself. Which is even more boring than writing tests, so you move onto exciting new features again. And you end up in a death spiral a few years from now, since you can’t see why a certain feature stopped working, all the features depending on it break one after the other, and the only way to check what’s wrong, is to go test everything there is.