You absolutely need a solution for on-board (re)programming. An ISP header footprint can support a header for prototyping, and then you can hit the same holes with pogo pins for production. Or you can use something smaller like tag-connect. I've often wondered about edge fingers for this purpose.
The key point is that often the programming and testing is left as an afterthought, only being considered after the board design is done such that you end up needing to pick up a hodgepodge of signals from different places and connector styles, have few holes you can use for alignment fixturing and have odd protrusions the fixtures need to avoid. Better than you include solutions for all of that in the initial design.
If you do get to the point of firmware stability where you can rely on pre-programming before installation, the supplier or assembly house can do it. Manually taking chips out of packaging, loading them into that jig, then putting them back in pick and place compatible trays in proper orientation isn't something you really want to take on when industry is already setup to handle that.