• I'd say that part of the need for 'cross-training' comes from hiring overspecialized people to begin with - which the market in the past couple decades has tended towards.

    Programmers who know only one language are an obvious manifestation, DBA's that don't know anything about storage hardware are another.

    At a low level, I expect entry level employees to have these limitations. At a very high level, there are going to be people who have limited knowledge outside their specialties, but be really, incredibly good within them.

    At the medium, high, and very high levels, I fully expect people to start or continue branching out. DBA's should branch out into some or all of SQL development, development practices in general, storage architecture, SAN design, systems engineering, and network engineering (including storage networks). Programmers should learn other languages, other ways of doing things.

    Everyone should learn low level details - it all boils down to storage/memory access, a little math, and IF GOTO with branch prediction, at the processor level.