This is my third re-write, because I'm trying really hard not to sound like you. You've got some issues I suspect, but I really don't care. You have to live with those, I don't. So let's talk about Development Environments. I take those you worked in were set up so that every programmer had a different PC, with different processors, graphics cards, motherboards, hard drives and drive types, different operating system versions, different levels of OS updates, different consumer-grade anti-virus programs, and different network connection speeds, all to simulate the end-user environment as much as possible, right?