What's really funny is I started in software (have code committed to some open source projects... BIND, Valgrind), and then moved to Physics. The code is garbage because the constraints are totally different. Experiments and code can be brittle and still work. There's no time to consider user experience for fellow grad student when there's so much else to do... though I do know of SOME students who make time to write good code. Hats off to them.