Program 328 32TQFP inside project?

So this might be a simple question but I can't quite figure out the magic google search terms to find the answer. I am planning on making some climate/weather nodes and some security nodes (window sensors, motion sensors, etc) and am going to use the NRF24L01 modules on the boards. My question is can I still program the arduino/AVR while other devices are connected to the pins needed for programming via the "arduino as isp" sketch.

Basically I am hoping to be able to program the completed board rather then buying an expensive TQFP-to-DIP socket to program them. So far all my experimenting has been with breadboards or simple generic protoboards or the occasional kit or PCB from OSHpark so.

Thanks!

Depends on what else is connected to the ICSP pins. If the "something else" are output pins, then no, you shouldn't also use them as programming pins. If they are input pins, then you should be able to reuse those lines, unless the programming is liable to upset the NRF24L01 modules.

You can isolate the ICSP pins for use during programming by a switch or jumper. If the module you are using has a reset pin and it tristates its output pins during reset, you can use a different 328 pin to disable reset, and pullup or pulldown the reset pin on the module to isolate it during programming.