As a developer on the Windows/.NET stack, it's pretty normal for the company-supplied machine to come with Windows (usually an ancient, archaic version like Windows XP) and a stack of software pre-installed as part of a Standard Operating Environment.

In companies building software on the Java/Ruby/PHP/C stack using Linux/Unix/BSD as a primary OS, in your experience:

Does everyone tend to use the same OS/version?

How do you ensure everyone is using the same version of libraries/dependencies/tools (do you?)

This will probably depend on the size/type of the organization. A 10-person shop/start-up filled with 1337 HaxXorZ will probably have some variety on every workstation. At the other end, large financial companies with huge IT departments will probably have 1 (or more) standard image for different roles (Programmer, Business Analyst, Helpdesk support) that is used to image the hard drives of the staff, and standardized hardware profiles as well.
–
FrustratedWithFormsDesignerSep 19 '11 at 23:11

1

What do you mean by "SOE"? Can you provide an example?
–
S.LottSep 19 '11 at 23:12

1

An example is a pre-built Norton Ghost image that bundles Windows, Office, Visual Studio, McAfee, and other random software needed by most company users.
–
Paul StovellSep 19 '11 at 23:15

2

@S.Lott SOE == Standard Operating Environment. As Paul said, it's just a base OS install with a set of common apps preconfigured for all users. They are usually locked down and centrally managed by the sysops/IT Pros via group policy. When you have hundred/thousands of desktops to manage and "average" uses, then supporting a single image is seen to be much easier than a menagerie of different configurations.
–
Richard BanksSep 20 '11 at 5:34

@Richard Banks: "it's just a base OS install with a set of common apps preconfigured for all users" Really? Not everyone will agree with that. "They are usually locked down and centrally managed by the sysops/IT Pros via group policy"? Really? Not everyone will agree with that either. How do you know that this is what the question actually means? What is in the question that conveys all of these definitions?
–
S.LottSep 20 '11 at 9:43

2 Answers
2

We specifically write software that runs on a variety of Linuxes (Lini? Linen?). A same OS or same version isn't particularly helpful.

Unless one is writing kernel-oriented software, exact Linux versions don't matter the way exact Windows versions seem to matter. Why? Linux conforms to a standard (POSIX); for most "ordinary" application development, the version only needs to be reasonably close. Standards compliance assures that things really work.

How do you ensure everyone is using the same version of libraries/dependencies/tools (do you?)

It depends on the organisation - more enlightened organisations allow developers to work in an environment that's comfortable for them (even if it means providing a VM so the developer doesn't pollute the 'base SOE').

In the Java space we worry more about managing the dependencies of the Java software itself. That is typically standardised and various build tools and CI servers ensure that it stays that way.