I’m now fully on the train of code first, manual testing next, then unit tests last. It’s while the code is running in a larger system where you “feel” how best it should behave, and whether that behaviour needs to change in any way. You then use the unit tests at the end to lock that behaviour in.