When I started at Google I was immediately impressed by the way IT is managed.
Need a new mouse or keyboard? Go and grab one from a nearby tech stop. No need to ask, just swipe your badge and take it. Need something more esoteric? File a ticket and they'll make it happen. I've never had an equipment request denied at Google. The worst that's happened is I've had to wait a few weeks for a particular item to come in stock.
As an employee at another one of your generic bigCOs who at one time was a googler, it is very difficult to get e.g. another monitor in a reasonable size, or new hardware on short notice or without manager buy-in. You typically have to "steal one" from another employee who is moving/leaving. The process at G was a breath of fresh air.
Yep as soon as someone announces they are leaving the vultures come in. We are actually not even "approved" to have an external monitor based on my title.
I work at a tech company, and we get absolutely nothing but hand-me-down desktops, EOL operating system, encrypted & MAC blocked network so nothing else can connect, and filtered Internet. If you really need something for your work to be done, better buy it yourself from your own pocket. And it's the usual thing around here in other companies too.
I tried to order a mouse once. The only choice was a $10 el cheapo. I put in a request for it. Denied because I didn't spend enough. So I added a keyboard and a couple other things to meet the minimum spend. Denied again. I've had to resort to buying office supplies for myself because the company is so cheap. I have to support my 5+ year old company owned macbook (replaced failed hard drive and upgraded ram out of my pocket) or else forfeit it for a crappy windows box.
To chime in with contrasting experiences at other companies:
Where I used to work RHEL was used on all of the servers. I was part of a team developing some new software using Mongrel2, MongoDB, ZeroMQ, Perl, and Imagemagick ( among a whole collection of other esoteric small pieces ).
The plan for the project was approved and development underway. We encountered problems getting everything to work properly with modern versions of the various parts in the distribution of RHEL provided.
The company was mirroring RHEL, but only the core. They were not mirroring the updates, nor were they mirroring the latest released version of RHEL. Outside access was forbidden on the servers, so we could not fix the problem ourselves without going around network policy.
We requested virtual machines; specifically to use Virtualbox on our desktops to do development until the policy people could figure out how to give us a server with the software needed. We were denied and told we had to requisition a server to run VMs, that VMs on desktop were forbidden.
A $13k server was purchased for this purpose, and root access was denied to it. We couldn't configure it as needed, and IT refused to help. It was basically useless. The main department head approved going ahead with VMs regardless of the network admin and head of software development saying we couldn't.
In the end the project flopped; ultimately due to inability for any of IT to get along or provide what was needed.
We are currently facing a situation where our data center guys only allow us to use RHEL in production but since we standardized on PostgreSQL (moving off MSSQL) we've been devving on 9.2/9.3. RHEL's officially supported version of PostgreSQL is still 8.3/8.4. The devs are up in arms about being "forced" to use a major version behind just because the DC team won't let them install and self-support the latest stable version. Ridiculous.
RHEL, CentOS, and Fedora are all basically the same thing.
The difference is which package versions are approved for use.
For the most part, you can add the yum configuration for CentOS or Fedora to RHEL machines, and install newer packages without breaking it.
Note that some packages will end up pulling in a ton of other dependent packages. By adding a Fedora repo to a RHEL machine, the following things will happen:
1. You will likely lose official support from RHEL. Anything that goes wrong is your fault.
2. Your OS install will start becoming Fedora; as you install more and more stuff.
3. Your setup could break entirely because RHEL packages are not tested to be compatible with Fedora ones. The core configuration is different in places, and generally you should not start updating the core components as this will break things.
My recommendation is to setup the CentOS/Fedora yum repos on your RHEL box. Run yum install for new PostgreSQL and see what yum wants to install. Eyeball the results intelligently and take some guesses as to whether it will break things. Cross your fingers and approve it, then disable the CentOS/Fedora repos you added. Carry on with your life and don't tell IT what you did.
If you can't connect your RHEL machine to outside network, repeat the process somewhere else to figure out what RPMs are needed. Download them elsewhere, and stick them on the RHEL machine and install manually.
As an additional note; I have setup a Fedora repo on a RHEL machine and changed the flag in the system to change the distribution ( there is a core package everything depends on... ). We then updated all, and the resulting system still functioned. Very evil, but it didn't explode. Also; it took quite a while to install all the packages. It essentially is converting the whole system from RHEL to Fedora in place...
This isn't a good idea. Why? Because it takes IT from the position of being a roadblock, which is something you can push to get fixed and puts you in the wrong instead.
IT has valid reasons using RHEL and older packages, you presumably have valid reasons for using newer packages. If newer packages are needed work with IT to get those newer packages. This also means that they are back in the position of being a roadblock if critical projects really can't go forward due to their policies.
Sometimes the way to fix what is broken is to make your department stop being a crutch for failed IT policies.
Also, randomly changing system packages in production is a dick move. That sort of shit is (rightfully) going to result in getting your access revoked at the minimum.
Multiple hour long meetings with all of the internal authorities were involved. They all refused to allow new packages to be installed. Additionally, they were not even providing the proper update packages from RHEL due to system misconfiguration. EPEL was additionally forbidden. Regardless, the powers that be essentially said "You are not allowed to use the software that your project specification states that it needs."
It was either use other components or circumvent IT. The head of the department got fed up with the red tape and told us to circumvent. All proper discussion was done before that, and as a result nothing I did was a "dick move". The system was additionally not in production yet, so no changes in production were being done.
Surly the issue here is a complete lack of communication? Why did the development team start of 9.x without first consulting Ops about what versions are supported?
Allowing developers to install and "self-support" a non-supported database version is an _awful_ idea. When shit hits the fan it will be Ops/DBAs who are left to pick up the pieces.
The authorization process for RHEL package approval is questionable. Additionally in house verification process of compatibility of software is questionable.
It is hard to argue that using PostgreSQL 9.x is dangerous compared to using PostgreSQL 8.x.
Yes; months of development time were wasted fighting with IT instead of being able to do our jobs. We weren't even allowed to use Git for several months, because it wasn't yet "approved." Even supposing we continued to use SVN, they were using an older version of SVN that was much slower and more inefficient.
The software requisition process was also terrible. It took 4 months from when I started the job just to get basic software that that is typical for software development. Before that I was directed by my coworkers and superiors to use portable versions of the software I needed secretly.
Asshole IT staff at my employer have banned Linux workstations from the network, even though we need it for running Cadence and other intensive simulation tools. The solution is for them to run a Linux server into which one will VNC to do graphic intensive IC layout.
We all get a sanitized windows 7 shitbox, because a IC deign engineers needs are the same as a secretary (not that we have secretaries anymore).
I have a good friend who is a simulation engineer for integrated circuits (don't know his official job title, we work in different fields at different companies).
He has the exact same setup as you and I've never once heard him complain about it. It's really interesting because even though we both work at desks on computers and both do system design and programming, he is so much less in tune with trends in his field. He VNC's to his graphic intensive simulation program on his crappy Win 7 laptop and gets stuff done.
I complain if I can't run several VM's on my developer PC without noticing that they are there.
> The solution is for them to run a Linux server into which one will VNC to do graphic intensive IC layout.
Why VNC? NX or just plain x11 window forwarding.
Maybe they want all their IC data on a server that gets backed up, etc as opposed to littered on a bunch of random desktops that might or might not be backed up.
I forgot to add, it's actually worse, in that it's Cadence running on Linux under a VM on some Windows server, which itself is probably a VM. Remote Desktop is allowed to the host running the VM, but not into the VM itself.
We had a centralized Linux server and tape system backing up all the Linux workstations, but they fired the guy who ran that server due to stack ranking; i.e. firing 10-15% of you staff yearly, even though he was a really sharp guy.
IT rules the roost around here, even though we are an engineering company that produces physical items; not software. It's supposed to be the other way around; IT is supposed to provide a service.
I know 4 years is ages in Internet time, but didn't it make international news when they changed the policy from "Use whatever platform you want" to "Use whatever platform you want as long as it isn't the one that corporate IT is basically built to manage."
> the one that corporate IT is basically built to manage
Hah! The Venn diagram depicting people who WANT to do corporate IT at Google, and the people who WANT to use Windows in corporate IT has a pretty small overlap, I think.
I mean, step one, "corporate IT" wants everyone to use Office, and Sharepoint, and then SAP... Yeah, that's just NOT going to happen at Google.
I was hoping that Google will be able to push Linux into the mainstream. One of the big problems with Linux is getting commercial software. For example, getting Photoshop and Illustrator working natively on Linux would be a big win.
I don't understand how you can say that and turn around to use another american company you still can view the source code for. I assume that's the reason anyway.
I've read the latest book from Eric Schmidt and Jonathan Rosenberg, where the main argument is "we are the best because we have the smartest people on the planet working for us". That's the main point to explain many of the things that they do.
I'm an IT lead at a much smaller company, and I run the same kind of setup. We're not the smartest people on the planet either.
But I do hold every hire to the standard of "will this person increase our average capability?" And I think smartness or motivation does have something to do with that. (We also have system administrator level people as our first level support)
However, most companies don't put that level of effort into their IT org. This article is worth reading because it says that your company can benefit by holding the front-line support to a high standard, and paying to attract talented people to that position. That is a radical proposition to most companies. The only thing that could shake up the industry more is if they said they required IT leadership to have technical ability and insight.
Most businesses don't hire googlers and they will have a bad time if they implement Google's policies. It's not "cultural." There's quite a difference between someone who had been programming since they were 15 spending nights reinstalling linux and someone who "can use technology" where that means MSO and facebook.
How many people here serve as tech support for their families? And how many of your relatives are otherwise successful professionals?
The tiny bit of tech support I did: people who had no clue were easy to support. The kids who had installed Linux and thus thought they were proficient enough to manage their machines were a problem.
This was 2001 and everythig was relaxed and pretty open. It wasn't hard to get the software you needed. But that one guy installed Kazaa - bamn, that machine got wiped and re-installed. Another guy brought in a game on 3.5" floppies to play on the pick and place machine - bamn, that machine got wiped by them trying to cover it up, leaving a gently tricky recovery procdure for me to recover all the unbacked up P&P program data.
People who don't know anything about computers might take a few extra clicks to get to what they need but they tend not to break things too badly.
The non-engineers don't get the linux desktops. They get mac laptops (or at least 98% of them do, some finance/business folks need excel/windows) and some hardware to dock it at their desks.
If you're "can use technology" (secretary) you get a completely locked down machine, preferably Linux or FreeBSD with a Web Browser and Google Office or OpenOffice (or whatever it's called now) and that's it.
Exactly. It works at Google because their engineers know their shit. Meanwhile, at your average corporation... That might not be the case, and you might spend loads of time trying to figure something out because your colleague uses some semi-random tool 'because hey it's cool!'.
I do not work at Google myself but I have friends and family who do work there. I don't think Google employees are immune from irrationally using random tools, but that's just my anecdotal observation.
"because your colleague uses some semi-random tool"
For extra fun combine that with not invented here syndrome and retired in place. "Git? whats git? never heard of it. Besides don't you know RCS is the industry standard for version control?" (which was actually pretty much true in 1985) And no this wasn't in '06 this was last year. I'm glad I don't work in that particular team!
And add some inter group politics for extra extra fun.
Not to hijack the thread but here's a fun story, the place I'm working at now actually considered 'version control', to be making a copy of the file before you started making changes. There was no version control. This is a software company that has been in business for ~20 years. I guess that's just part of what happens when you land these big contracts, and hire the least common denominator.
Windows is built to a large degree for median IT departments. They want to lock it down and give it to employees to use, but not manage.
Obviously this is anecdotal but, Mac users are usually more likely to go into system preferences and try to find out how to arrange their screens or add a printer. Windows users treat control panel as forbidden territory, which IT departments agree with. Installing and installing programs on Windows is more daunting than on OSX, Android, or iOS.
Basically, it's a UX problem. There is no real reason why a PC should not be manageable by a computer literate professional.
It isn't a UX problem, it's a political problem. It departments are responsible for, among other things securing their company's computing resources and ensuring their availability to support the business. The most expedient way, in their view, to accomplish this mission is to keep as much direct control over those resources as they can, even if it means the users are "inconvenienced". Add to this the human tendency to inflate the importance of your own problems and deflate the importance of other people's problems and you end up with a situation where everyone outside of IT runs crippled machines or thin clients and has to call on IT for every change or update of substance.
There is a happy medium, but IT (largely) is not interested in it. The current system meets their needs very well, but they have lost sight of the needs of their users.
I've done "corporate IT" for a 150 person company in the past. All "knowledge workers", all with a desktop, most over the age of 40-50 with varying degrees of tech savviness.
Support was a big deal for this group, and it becomes a lot a easier when every workstation is configured exactly the same way and has the exact same software.
I agree, it is much easier. The problem comes when "every workstation is configured exactly the same way and has the exact same software" hurts the productivity of certain parts of the organization because certain groups need a different configuration to do their jobs properly.
In advance of the inevitable and one sided 'IT is crap' comments. Consider that your company may have different goals and expectations of IT. If a google engineer screws up or can't get his BYOD kit to work, it's not on google IT to explain themselves. In <bigco IT> the expectation is different. Where anything that is permitted to run must work provably and IT must explain any deficiences.
It is ironic this chap waxes lyrical about how great it is to let the staff choose their IT equipment when he came from a bank previously, where they make even the Unix SAs use the hideous corporate Windows desktops to try and do their job.
Yeah, unless you are Google, IT equipment sucks donkey balls in the big corps. Especially the banks. Still stuck on IE7 at our one. Sigh.
How is that ironic? He even acknowledges himself that he learned this way from moving to Google, and acknowledges that they are the exception not the rule:
> "I remember years ago, when I joined Google, I looked at the personal technology that Google gave to its people. Google allowed people to use whatever they thought was relevant to them, when everyone else gave people a black laptop and a BlackBerry and said, “You are going to do it our way."
Yup. IT in big corps really needs to change. I have - beside the Windows Update - the "Your IT department (...)" update, coming daily. Most of the time, it's a new wallpaper, which I have to disable via register tweaks.
The example you gave - the pain of sysadmins using the Windows desktop - is perfect. But let me add a different one: the big corp where I work decided that iOS apps were needed. I can't even begin the describe how long and cumbersome the process of acquiring a Mac was! It was so ridiculous that we used personal devices for a time, and then a Hackintosh.
I suffer this fate every day. It is made worse by being locked down so hard I can't even use PowerShell. All I have is Notepad++ for development, searching, mass text manipulation...
It's one thing having to use Windows for development. I've done it, you can work around lots of issues with Cygwin and other separate tools that enhances the development unfriendliness of Windows. If you are developping in Java, it's even less of an issue as Java itself and most of its IDEs are cross-platform.
But being so locked down that the only thing to do development with is Notepad++ (you can't even run vim or emacs?), that's actually so far beyond that even a complete non-tech person should be able to see that this is harmful to your productivity.
I started less than a month ago, and it pays really well. I will stick it out and hope to convince management to let me have admin rights to my machine.
The bigger the company the more difficult this is. Where I worked our workstations were locked down and required a package request to install software. In addition, they would not bother packaging a new tool if it served the same purpose of other tools; i.e. text editors. Doesn't matter if you prefer Vim/emacs/Sublime Text 2/Notepad++, we already have a license for a text editor you've never heard of before.
Depending on the company's hardware VM performance could be a real issue. You'd be surprised how many developer jobs are done on old Windows XP boxes. Big companies typically do upgrades in multiyear cycles.
Assuming the portables are downloadable from a whitelisted website. Or that your USB ports aren't configured to encrypt anything you insert. McAfee, I'm looking right at your ugly endpoint encryption...
I'm assuming you haven't had the joy of working with McAfee Ednpoint Protection. When you insert a USB device, it automatically encrypts it. Our BIOS are locked down to prevent anyone from monkeying with the desktops. Same with notebooks. Hell, we even encrypt CDR/DVD disks that are writeable...
You can't have outstanding performance with those tools, so I'm not sure whether you have your chances. It's a dilbertesque situation where employees can't perform well and the management self-reproduces with the least innovative people.
The IT at the company I work for is odd. I work for a smaller subsidiary that manages most things for itself but we're still required to have a parent company approved workstation alongside our main development computers.
So I have this dinky little HP with a 15" monitor just to do the HR computer "training" stuff related to our industry and then I have a full size workstation with dual 24" monitors that I develop on. They're connected to different networks, my workstation is on a Comcast business line and then the other is on an internal network that has the strictest security policies on the planet.
It's like having a weird cross between IT as it should be (as described in this article) and IT hell you expect in large corporations.
They're able to be flexible with IT because no Google code lives on the laptops - they are basically SSH clients with a Yubikey in the USB port and an encrypted SSH key. All of the data that needs securing never makes it down to the laptop.
But this would mean that the majority of folks in the company are like minded. Imagine, if I choose to use a Mac (because I am hipster), and my colleague on my right choose to use a ChromeBook (because he is a cutting edge geek) , and my colleague on my left choose to use a WinXP (because he doesn't want to change.)
Interoperability would surely take a hit, and imagine the IT support required.
People are responsible for the actions they take :) If they want to use OpenBSD and play 3D Games it got to be difficult but if they manage to do it and be productive with it, it's ok.
Also you are going to get Linux if you are doing i.e iOS development. See the point ?
So your department needs a document management system that will make sure you are in compliance with all of the regulatory requirements that affect your industry as well as interface accordingly with vendors and other departments in your organization. The software has plugins with Word 2013 on Windows, Acrobat 11 on Windows and Outlook 2013 on Windows, but now people are allowed to pick whatever platform they want.
What do you tell the Mac user? What do you tell the Linux user? Boot a VM whenever you want to work on a document? What do you tell the iPad user?
In many large organizations, simple file systems won't work because they don't scale and you can't tell a legal department "oh, you need to share/version/distribute documents? just use this program called git, it's easy, let me show you and once you've got the hang of it, you call the appellate judge and tell him that he just needs to do a git pull to get your brief".
When every software package that's deployed in millions of installations around the world that's only available in the Windows/Office/IE environment is completely cross-platform, then yes, you'll have completely interoperability between Windows, Mac and Linux machines, as well as iOS and Android devices. Until, the "I've had Mac, Linux and Windows machines on a home network" line has no bearing whatsoever on intolerability of software packages an enterprise environment that needs to interface to hundreds of external organizations daily.
>What do you tell the Mac user? What do you tell the Linux user? Boot a VM whenever you want to work on a document?
Yes.
With the horsepower the machines are putting out nowadays and the ease of which a VM can be initialized, that is neither a hindrance or a burden when compared to the luxury of using your native OS.
Only that tools shared across the team have to use the lowest common denominator.
Otherwise the Windows guy can't check in because he can't get git+ssh+pgp working right to do signed commits; the Linux guy can't run the CUDA part of the code because the drivers for his distro are broken; and the Mac guy keeps on having homebrew and ruby break and no-one else on the team knows anything that can help.
I've seen a company without MS Office. There goes shared network drives too. Everyone had the OS of their choice, the best tool for their work, and we never exchanged files.
Need a new mouse or keyboard? Go and grab one from a nearby tech stop. No need to ask, just swipe your badge and take it. Need something more esoteric? File a ticket and they'll make it happen. I've never had an equipment request denied at Google. The worst that's happened is I've had to wait a few weeks for a particular item to come in stock.