– Use software serials ONLY for debugging. Software serials are not reliable.
– Use hardware serials primarily for interfacing with devices (GPS etc.)
– Prepare for debugging port in your design
– Program the uC through native programming method (ISP, ICSP) if you don’t have several hardware USARTs
– Make all sorts of cross-compatible adapters and cables for easy debugging
– Use two laptops for development: one for plainly debugging
When picking uC, make sure you have plenty of hardware serials. Usually one isn’t enough.