{ by david linsin }

June 09, 2008

How Corporation Constrain Productivity

In the environment I'm working right now, everything is forbidden! You are not allowed to install, download or connect to anything at all! So in some sense I feel like Dilbert here:

I really want to be productive and dedicated, but the corporation I'm working for right, is giving me a hard time.

So far I've only been working for small companies where virtually everything is possible. At my employer for instance, I can use my own Mac Book Pro for development. That's really cool. I'm allowed to use the tools that I prefer and there is no limitation when it comes to internet access. In short: it's fun to develop this way.

I feel so much more productive when I can use the tools that I like and have all the freedom that I need as a developer. That doesn't necessarily mean I am more productive. It simply means, that I put more effort into what I do, because I'm having fun. During the last project that I did, I invested a lot of personal time to switch from Eclipse to IntelliJ. I changed the build process and tweaked the workspace settings, until everything worked seamlessly with the new IDE. I don't know how many hours I put into that transition, just to use the tool that I prefer (As a sidenote: I still think IntelliJ is way better than Eclipse in so many ways and my heart is literally bleeding, that I can't use it at the moment). If you'd make a down-to-earth cost benefit analysis, you'd probably throw your hands up in horror. However, my efforts weren't in vain: we ended up having a neat build process and I believe that led to more overall quality of our software.

At the moment I'm all hyped because of the new project I just started. There a lots of new technologies involved and I'm learning a lot every single day. I'd love to make a difference and I'm trying to put a lot of effort and dedication into my work. However, the circumstances are not very promising. Like in a lot of big corporation there is a process for almost everything - even changing a database schema can only be made by filling out a form. Those processes are not only annoying, they also have the tendency to be rather slow. Waiting for an important piece of software can take weeks, although it's literally one click away. I'm actually surprised how calm I am about those circumstances. Maybe it's because I'm not really accountable for anything, but my code. In my previous project, it was the opposite: I was responsible for virtually every technical aspect of the application.

I'm also surprise how much money, time and ultimately productivity, constrains like limited internet access and user rights cost. Being used to all the freedom in relation to my working environment, I can see now how much it fosters creativity. I can explore new possibilities in terms of tools or languages and that makes me as a tech-geek very happy. Don't get me wrong, I can fully understand the notion of such limitation and constraints from the corporation's point of view. It's important to have standards and processes of how things work. I just think more freedom equals more creativity and thus can yield higher productivity.


Anonymous said...

I work for a large, fortune 500 corporation as well. Most of the things are blocked on the Internet. I can’t download or evaluate software freely. Oh, I am wrong. I can, but I have to fill out a form, go in front of a committee and 2-3 weeks later I’ll have the verdict which is mostly denial.
They have reached their goals: anybody with the right mind is looking for a way out. Many talented developers/software engineers have left already and many on the job hunt right now.
Oh, and I am sure this posting on the Internet was logged by my employer and will be analyzed later.

Anonymous said...

It's easier to think the world is stupid than to admit that maybe you don't see the whole picture.

You realize of course how much money is saved in terms of support an maintenance by not allowing users admin on their own machines? You also realize that depending on the industry you're in, the company might have legal reasons for a high degree of IT security, backed up by external audits.

Codeslave said...

As the previous Anonymous said, there are reasons for this kind of behaviour from companies and I understand it.
However, I still rather work for companies that can provide a decent working environment.
Seeing that qualified people is an increasingly sought-for commodity, my advice is to get out and stay out.
If getting out is not an option, then use the situation to your advantage: If you have to wait a lot, use the time to learn something new that increase your qualifications. Before you know it, you'll be out of there! :-)

willCode4Beer said...

as to letting "users" admin their machines... yes the cost can be very high for the average user.

However, it should be expected that a "developer" can (and should) admin their machine with no support (thus cheaper).

Developers are paid more and they are paid to know. If I'm writing software for company computers, I had better damn well know what the effects will be.

I used to work in an environment like that (DoD). Often I would write the utilities that I needed because it took less time than waiting/fighting for approval.

Often, by the time software was approved, it'd be several versions old. Upgrading to a new version caused the whole process to repeat.

david said...

anonymous > It's easier to think the world is stupid than to admit that maybe you don't see the whole picture.

As I mentioned in the blog post, I really understand why companies are implementing those restrictions and heavy weight processes. However, I'd argue that in many cases the costs of none-productivity outrages the cost of maintenance.

I agree with coding4beer (what a weird sentence), in that I am found enough to be able to administrate my machine and if I'm not I can still call for support. Since I wanna work with my machine, I won't screw with it and thus don't install any crap.

Jan said...

it also costs money not letting the people surf the internet:

okay, maybe that research is biased but david has a point there.

Jan said...

that link seems to be too long. use this tinyurl.

eddiestumpjumper said...

When the IT dpt are measured against the wrong metrics this is the sort of productivity killing outcome that results. Hopefully, Darwinian selection will eventually sift out those companies that aren't fit to survive in a competitive market for skilled workers.

david said...

eddiestumpjumper > Hopefully, Darwinian selection will eventually sift out those companies that aren't fit to survive in a competitive market for skilled workers.

I would go all the way to say that it'll sift out companies. However, as the first commentator mentioned, a lot of talented people are leaving big companies due to problems mentioned in my blog post.

Brian Dunbar said...

However, it should be expected that a "developer" can (and should) admin their machine with no support (thus cheaper).

Maybe it depends on what you mean by 'admin'. I know developers who can do that, no sweat, and not take a hit in their productivity.

I also know developers who struggle with routine admin chores and simply can't get stuff done without a lot of hand-holding. Stuff like 'install PuTTY' or 'login to a remote machine with a domain login and a UNC address'.

By all means expect them to do this on their own - except they're going to be a time sink for everyone around them while they try to get this stuff done.

Sofal said...

I work for a large government contractor and today I told my boss that I'm leaving (for grad school).

I don't fit in here. I'm tired of the buzzwords, the processes, the forms, the obtuse PowerPoints, the meaningless spreadsheets, the cult of seniority, the ignorance of merit, the technology requirements dictated from on high, the restriction of information, the spam-centric Microsoft Outlook dominated information flow, the lack of admin rights to my own machine, etc. I could go on. I feel strongly about the quality of work that I perform, and this place is literally crushing my soul.

There is a type of person who thrives in this sort of environment. If DoD projects are involved, that can be enough to motivate some (as opposed to maintaining some lame workflow application for a bank). Ex-military types tend to do well here, since they are accustomed to the restrictions, processes, and rules. They may even feel a measure of freedom. Some folks don't mind it because this is the kind of environment they always expected to work in. Perhaps they enjoy the buffer from competition and the nice job security. I'm sure they could come up with just as many reasons to stay as I can come up with to leave. There's a comfort zone, to be sure, but I think that those who stay solely because of a comfort zone are not reaching their potential. A lot of them consider themselves to be electrical engineers or some other type of engineer rather than a software craftsman, and therefore are indifferent to what tools or environment they're forced to use. As far as they're concerned, the only programming languages on Earth are C++, Java, and Matlab. Almost without exception, they are all committed to the corporate processes. They take pride in knowing and following them.

As much as I'd like to believe that this company needs people like me and that by driving us away they'll suffer, I can't. It's not true. This company does not need people like me. They wouldn't even benefit from more people like me. This company needs people who will quietly obey and work hard only within the constraints put upon them. That's the way they win government contracts. All the processes and corporate baggage? It helps them win contracts. This business is alive and well and will continue thriving after people like me leave. It is therefore in both the company's and my interest for me to go.

So, Anonymous #2, seeing the whole picture doesn't really change things.

david said...

brian dunbar > Maybe it depends on what you mean by 'admin'.

I mean that I can install/deinstall applications myself, I can handle security and install the latest patches. That's what I effectively need to to in order to be productive. Anything else can be handled by a sys-admin, which I never claim to be (and don't wanna be).


That's probably a good decision, leaving such a workplace. I've never experienced something like that and I hope I never will.

Chris Ammerman said...


> Almost without exception, they are all committed to the corporate processes. They take pride in knowing and following them.

That's the engineering mindset. In general, the profession of engineering, regardless of the sector, consists not so much of creating solutions out of whole cloth, but of a mixture of creating small bits of the solution, and then passing them through a string of established, reliable processes that, when followed in its entirety, produce the desired end product.

The creativity is almost always very low-level. There's not a lot of freedom. There's very little discovery. It's almost fully science and very little art.

When the software development profession graduates fully into an engineering discipline (i.e., when it fits the description above), that'll be the day I change professions. Because one of the things I love about software development is the freedom and creativity involved.

I'm not convinced that will ever really happen... But never say never.

david said...

chris ammerman> The creativity is almost always very low-level. There's not a lot of freedom. There's very little discovery. It's almost fully science and very little art.

Maybe I used passion and creativity interchangeably in my posting, which I don't know if that correct. I do think they are tightly related if not coupled.

You are right of course, there are building blocks, parts that we use to assemble our solutions, so creativity in terms of coming up with something new is limited.

handyman5 said...

There are lots of reasons why companies generally restrict administrative access for users on their workstations. Some of them are technical, some political; some reasonable, and some are completely arbitrary. The biggest reason though, in my experience, is that the IT department generally has no way of knowing whether you (generically) will be capable of managing admin access on your machine.

I'm sure you've come across some developers in your career who think that they know everything there is to know about their computers, when in reality they shouldn't be trusted with anything more powerful than Notepad. Unfortunately, there isn't any foolproof way for the IT department to tell those people apart from the people that do know their way around a computer's innards. If the IT people let the incompetent people have administrative access on their own machines, those people can cause a highly disproportionate amount of damage (viruses, hacking, botnets, etc.). IT people are generally a conservative lot, and with that high of a risk, their inclination is usually to disallow access for everybody to protect the company's systems.

In my IT role, I have an understanding with some of my users that I know well. They can have admin access to their machines, and in return, they don't ask me for support (the support they get is a newly-formatted machine). Generally, though, I keep the workstations locked down nice and tight, because my primary responsibility is to keep the computers running, and letting people run wild with their machines makes that job impossible.

Matt M said...

Isn't the problem here really Windows combined with lazy admins? All most people want is the ability to install or update the tools they need to do their job. If allowing people to do that in Windows XP wasn't risky and encumbered by additional privileges, this problem wouldn't have happened.

Anyway, give the users admin access. If they screw things up- drop them a fresh config. Look at how Google does it and tell me your stupid "users can't install software" policy makes sense for all users.

david said...

Thanks for the link Matt, this is exactly what I'm talking about:

We've changed the way we think about IT here. We don't have to drive for uniformity. Our systems, which basically are consumer systems, have to run on the end points. The side effect of that is I can let a particular employee work on a Mac because it makes him 10 percent more productive. That productivity advantage outweighs the minor cost advantage I get from uniformity.

Google information systems believes in choice, not control. The goal of choice is to let your talent express their talent in the most effective way they can.

Actually it makes a nice summary of what I'm trying to say!


  • mail(dlinsin@gmail.com)
  • jabber(dlinsin@gmail.com)
  • skype(dlinsin)