I've designed a PCB for small scale production; currently I'm hand soldering them in batches of 20 at a time. This PCB uses an ATMEGA168 microcontroller which I program before soldering to the board – this method works well for me at the moment.
I'm looking at having a batch of 200 boards manufactured and assembled for me as the product I've designed seems to be quite popular. Would it be better practice to either include an ICSP header onto the board or keep on pre-programming the ICs myself? Re-programming of the board after manufacture or assembly isn't an intended or required feature.
I'm unsure of how this is done in a larger scale production environment? Adding an ICSP header would increase the cost of manufacture slightly so is pre-programming a standard practice?