I can't resist: Show them a hole in the ground. Show them the robot (or optionally some part of their own anatomy). Describe the differences.
Blake
PS: Also, describe/teach your team's criteria for starting and for finishing any part of programming the robot (aka Entrance and Exit Criteria for each step in the process).
The actual writing of the code is typically one of the easier parts of the process, once someone has a basic familiarity with any language.
Designing the code carefully enough before writing it takes some time.
Planning/writing Test Procedures containing appropriate amounts of detail takes some time.
Integrating chunks of code and Testing_The_Result takes time at each level of abstraction you use (units/modules/packages/components/system/whatever).
Writing repeatable, automated continuous-integration tests takes time.
Are your team's software developers done when something they hacked together doesn't cause the robot to catch on fire or put out an eye? or ar they done when each of the steps above has been completed and the resulting "artifacts" are ready to be understood or used anyone on the team?
PPS: I loved reading
eXtreme Programming Explained by Beck. Whether or not you become a fan of everything he espouses, I think that it is packed full of wisdom (and it's thin enough to be easily read cover-to-cover in a single weekend).