My question would be, are there any good resources you can point to that would help someone trying to understand what the truly important engineering practices a software developer needs to follow are?
My question would be, are there any good resources you can point to that would help someone trying to understand what the truly important engineering practices a software developer needs to follow are?
With respect to resources on practices, I think most of the agile literature is reasonable. In all the domains I've worked in, the biggest challenge with doing things agile-ly has been testing: the domain complexity makes it very hard to comprehensively test the software. In the case of Crash, we just dealt with it with huge amounts of human testing (and we fixed the hundreds of reported buts). At ITA and Inky, we had/have more custom automated testing infrastructure.
One lesson is that a system like ITA's or Inky's basically can't be correct unless it's exhaustively tested.
My previous employer is in the field of network and application performance management. Even with unit-test, integration-test, and some functional-test, we can't be 100% sure we've covered everything (e.g.: different network setup) due to the domain complexity.
Having said that, "testing" has always been the biggest issue for any shop that call themselves "Agile" and it's also my screening test when interviewing with any company that claim themselves "agile": "let's talk about automation test..." :)