WIRED:YOU DON'T HAVE to be a regular reader of Dilbert to know of the ongoing battle between developers and managers, or developers and anyone else in an office that gets in their way, really. Since some indeterminable point in the 1980s, when their social reputation was at its lowest, programmers have been fighting back against organisational structures that treated them with disdain, and forbade them from getting anything done, while saddling them with tedious maintenance of systems that no-one else in their workplace knew anything about.
From the outside, the coders don’t get much sympathy. Our offices are full of the carcasses of projects they built: unworkable, unfriendly, slow and awkward systems that demand everyone bend to their will. Spreadsheets that must be filled, applications that demand repeated typing of the obvious, and then crash, taking it all with them. Printers that don’t work. PCs that are hammered down with anti-virus controls, and run at a snail’s pace. If this is revenge by the office geeks on the rest of society, they’ve long ago won their war.
But it’s not. The terrible hardware and unapproachable software of the enterprise environment is the scarred battlefield, and it damages IT personnel and coders as badly as everyone else. As the employees who most have to deal with the computing infrastructure at your workplace, they’re the ones who have to bear its painful limitations. And the inability of anyone to really get it to work any better is the source of much of their emotional pain. They mostly want to do the job better, but to do that would mean tackling the systemic power structures that keep them in the basement, “IT guys” style, and the people who can make the real decisions far away from them and their problems.
To overcome the real problems, IT guys would have to lead a revolution, and overturn every part of the normal business order.
In a few companies, that’s what’s happened. This alternative has its own problems but it is, at least, an environment where IT guys got out of the basement, and other technology users get a little bit more power over their systems. Also, nobody has yet been assassinated in such coups – possibly because they’ve been lead by management.
Take GitHub, one of the most popular and profitable start-ups in the area of supporting developers. GitHub’s product – a website that keeps track, stores, and allows coders to investigate every change to the code that they are working on – has a reputation for being easy to use, and quickly fixed. It’s grown from 100,000 users to 1.76 million users in three years. But its employees don’t suffer a mass of managerial oversight, or crummy hardware. That’s because there aren’t any managers. No one is in charge of anyone at GitHub, and everyone picks projects they want to work on.
It’s the same at Valve Software, the $3 billion game firm. In his introduciton document, nominal CEO Gabe Newell says that “we don’t have any management, and nobody ‘reports to’ anybody else. This company is yours to steer – toward opportunities and away from risks. You have the power to green-light projects. You have the power to ship products”.
These are the extremes of a nonetheless common model among popular tech firms, from Google’s “20 per cent time” (where some employees are allowed to spend one day a week on their own projects) to Facebook, where the “hacker way” of self-directed work is encouraged at every level.
For some, the idea that there’s no real management just hints at a more insidious form of control. Sure, you can spend 20 per cent of your time working on your own ideas, but Google still owns those ideas, and if your idea was to “make Facebook more fun”, I’m not sure how well it would be regarded. All of these companies have their choice of smart hires, so dealing with employees whose work isn’t up to scratch isn’t part of their problems.
This isn’t a socialist paradise. Janitors and part-timers don’t get 20 per cent time. Pay still secret between staff, and decided by the rump-management, who clearly still have some feudal powers.
But you don’t need your entire company to be overrun by an anarchistic coder proletariat to get some of the benefits. Even in traditionally-run corporations, there has been a merging of two previously opposed groups of IT staff. Operations and development have, since I’ve worked in the business, been at each others throats in even the most well-run of corporations. Operations is in charge of getting software operating stably and consistently across the whole company. Development is in charge of improving and fixing bugs in that software. The two, surprisingly, usually hate each other. Operations wants regular, timely, upgrades. The dev department finds bugs all the time.
Operations doesn’t want devs working anywhere near the “live” part of service. Devs complain that some bugs don’t appear until they use the live service. Ops have to deal with bugs that devs write. Devs say they could fix the bugs, if ops didn’t stand in the way.
The change in recent years has been devops – where you give one group the power to write code, and put it online. Amazingly, this seems to work: devop teams rise to the extra responsibility, just as employees who don’t have managers learn to manage themselves.
Could it work everywhere? I’m not sure, but the real question is: could it work where you work – or at your competitors’ office?