TOOLS AND CULTURE
In much the same way that human language and culture are intertwined, the set of development tools (including programming languages) used within an organization and its culture are intertwined. Two areas where these differences manifest themselves most distinctively are in open source vs. closed source and in on-premise vs. cloud (or SaaS).
Closed source developers are comfortable paying large software companies for software that (nominally) works, is documented, is going to be supported for many years, interoperates well with other tools and applications from the same supplier or related suppliers, is kept up-to-date with changes to operational hardware, and for which expert consultants are readily available. The managers of these developers also like having a big company to blame for their problems. Closed-source developers tend to be more secretive about their work; they are less likely to contribute to open-source projects or reuse them. They can also be less likely to share information with others outside their own companies. Lack of visibility into the tools they are using begets lack of transparency into what they are themselves creating.
Open source developers, on the other hand, viscerally hate paying for software. Commercial, closed-source software is often seen as bloated, inefficient, dated, and ridiculously overpriced. Taking hard-won startup capital and forking it over to Microsoft, Oracle, or IBM is seen by such developers as profligate spending. Better to put that money into a ping- pong table or bigger monitors! Open source developers are by their very nature integrators: they pull together various open source components to build a complete system. They are also tinkerers. If a package doesn’t work and there’s no ready alternative, then they will go try to fix the problem themselves and even contribute the fix back to the community so that everyone else (even their competitors!) benefits. Starting or contributing to open source projects can help build a developer’s reputation in what end up being global communities. Top open source developers are referred to by single names just like pop stars! Open source developers take quite a bit of pleasure in helping others, which may be a big factor in your own organization developing strong teamwork.
On the on-premise vs. cloud axis, developers who run their applications in their own data centers (on-premise) tend to be much more well versed in hardware and optimization. They strive to get maximum performance from their systems (hardware + software) and need total control in order to do so. They also love to tinker and try new hardware combinations (more memory, faster disks, using GPUs instead of CPUs). Cloud developers on the other hand, have gradually become almost disinterested in any hardware beyond their own laptop. If the cloud is too slow, just spin- up more instances! This saves time in terms of tinkering but can lead to a rude shock when you open your Amazon Cloud Services bill! It can also lead to poorly performing applications because the developers have lost their optimization and performance tuning skills.
Is your innovation highly performance-sensitive? For example, are you building a high-frequency trading application? If so, you’re going to want some of those optimization-focused on-premise developers to get you there. Are you looking to grow your company globally and quickly? The cloud people are going to get you there faster and cheaper, with a lot less capital equipment!
http://languagemagazine.com/?page_id=2103, Blurring the Lines Between Language and Culture.