Compared with previous microcontroller software design I've worked with, I find it a bit restricting that there's no 'proper' debugging available for the Arduino devices (or is there?).
Using 'serial.print' is pretty much all there is. No single-stepping, into/out of functions, inspecting of variables without recompling, etc. I'm aware that by using something like VisualMicro things improve a little (no need for 'serial.print' for example) but it's still very limited.
Before Arduino I worked with a Texas chip series (CC25xx) which are low-cost, based on an 8051. You can also by a 'CC Debugger' which (when controlled by suitable PC software) enables you to single-step, inspect variables, etc etc, without recompling and uploading new code each time. The debugger module itself seems to consist of not much more than an additional 8051-derived device and some level shifters. It has a 10-core ribbon cable to the target board, and a USB connection to a PC. It only costs about $50.
So, I'm just thinking it should be possible to design something similar for Arduino. Has anyone tried doing this, I wonder? I realise it's a lot of work and the market may be small (I appreciate there would need to be slightly different variants for the different Arduino processors), but could be a good hobby project for someone!