I just read the article, I agree with pretty much everything in there. Imo TDD (not really mentioned here but in the other article in the beginning) is still a good idea because it forces you to think about your design before getting bogged down into implementation details.
What often misses from such articles though is an example of how to get there. Nobody sets out to write bad code or brittle tests. So following along a codebase that used to suck and is slowly getting better would be great! Though I understand it's a much more involved exercise, I'm not holding it against the author.
Personally, I find that a couple weeks of TDD each quarter is enough of a boost to your design thinking to make a substantial improvement in how you design things. I don’t know how long a new engineer needs to do TDD to “get it” but I know for sure that you don’t need to do it for 10 years consistently.
If you’re really struggling to test a piece of code, sometimes it’s useful to stash all the changes and start with the tests. That’s a very good sign you’ve lost your way, and you can reflect later on whether it’s a pattern or just a bad day.
Pain is information. If you make use of the information then it redeems itself. If you don’t then it’s just needless suffering.
I'm firmly in the camp that you shouldn't mock the DB and have a local instance for testing but for external resources that you can't reproduce locally I think that's fine.
What often misses from such articles though is an example of how to get there. Nobody sets out to write bad code or brittle tests. So following along a codebase that used to suck and is slowly getting better would be great! Though I understand it's a much more involved exercise, I'm not holding it against the author.