Jim does have a point. When Windows based Java developers check in paths with “C:” in them, there’s nothing like having a Unix based Continuous Integration server to flush them out. One memorable project that I worked on had developers writing code on Windows machines, a CI server running on Linux, and the production operating system was Solaris. Sometimes that was really annoying, but platform specific code didn’t really last long. If it didn’t break the CI build, it would be caught when we put it into QA.
So if platform independence is important, you can mix your platforms up a little. It doesn’t come for free though. If you want to meet an “aggressive” deadline, it won’t hurt to make sure that you can build the code on the production stack from the outset.