I recently found myself needing to reuse some older prototypes for a newer project, as part of the repurposing I needed to flash an Arduino compatible bootloader on the AVR processors in them. The design didn't include an ICSP header so I wanted to find an easier way to flash them without having to desolder them. Enter the Bread Head, a design I saw on the Blondihacks site by Quinn Dunki.
The Bread Head is a simple yet effective way to reprogram AVR chips in circuit - basically it provides a breakout for the ICSP header on a device you simply push over the AVR chip in circuit to reprogram it.
The only real components on the board (apart from the headers) are a decoupling capacitor and a 10K resistor to pull the RESET line high. The main differences between my version and the one described by Ms Dunki is that I milled the PCBs rather than building it up on perfboard and my programmer has a 10 pin ICSP cable rather than the 6 pin one so the socket is correspondingly larger.
I made versions for the three types of AVR chips I use most - the ATmega, ATtiny84 and ATtiny85. Usage is pretty simple; connect the programmer, push the Bread Head on to the chip (taking care that you have lined up the pins correctly) and start avrdude to do the flashing. I've found that you have to keep pressure on the board to make sure you have a solid connection but apart from that it works fine.
The end result is a useful device to keep in the toolbox, as well as letting you repurpose existing circuits it would be a handy way to load a bootloader on to a raw chip without having to waste PCB space on an ICSP header. The technique isn't limited to the AVR only of course - you could modify it to suit the programming requirements of a range of CPUs.