Common Tools, Multiple Platforms
Walk into any computing center these days and what you discover right away is the only thing similar amongst them is the breadth of platforms, tools, devices and configurations used. We’ve clearly evolved from very regimented system and deployment architectures to a much more diverse, feature-rich and complex set of environments, which we all hope work together. Given the incredible speed of innovation across the software-development industry, this is to be expected. The Internet has fueled a growth in software applications and use of software to provide new business ventures like nothing else we have seen.
When you walk outside the computing center and back to your desk, cube or corner office as an application developer, it finally sinks in. The days of being a programmer who masters one particular programming language, one particular database platform, one particular runtime model or any other single environment are over. Businesses are increasingly in need of staff that can quickly adapt to whatever environment and platform is best suited to solve the business opportunity in front of them. Whether you're a seasoned COBOL expert or a hotshot Java developer, your days as being only that are numbered. Your organization needs you to apply your expertise to whatever platform and language the application demands.
Dedicated Java Developer No More
Business applications are moving from large, contained, monolithic combinations of many source code modules all compiled and linked together, running on a single system to being widely distributed, loosely coupled, multifaceted and much more user-intuitive combinations of software components running across a multitude of computing systems. These systems range from hand-held devices and sensors connected over varying bandwidth communications links to high-performance computing systems running in protected data centers to virtual systems running in some cloud-provided environment in which you have no idea where the physical systems reside.
Languages and Platforms Galore
The consequence of this situation is businesses will require their application-development staff to be able to move between projects with agility and precision even when those projects vary in deployment platform, runtime environment and source-code language. Code written this week will be legacy next week, but it will still require care, feeding and attention. To be valued employees or consultants, application programmers will need to move between projects with the same agility and precision, across those platforms, runtime environments and source code languages that the applications run on and are written in.