Hacker News new | past | comments | ask | show | jobs | submit login

One of the problems with process, the best intentioned process, is that you always create perverse incentives.

For instance take the transfer process that was being extolled. The incentive now is for managers to evaluate their best employees poorly, and mediocre ones highly so they will keep their best and lose their worst. Many people who have worked in large companies have seen this first hand.

Secondly there is a very real problem of fit between the person and the job. If a person is not doing well, and the problem is fit, then the transfer restrictions will leave no place for that person to go but out of the company. As a concrete example I offer SRE at Google. They need an unusual mix of "able to program, but sysadmin mentality". So Google tends to hire one skill set and hope that they get the other. But when they don't they may get a perfectly good software developer in a role where they won't do well. This is a loss for everyone.

The result is that even well-intentioned and supposedly good processes result in routine bad decisions. If this bothers you, then you probably do not want to work in a large company.




I think always is overstating things a little, but you are right that you have to be very aware of perverse incentives and, the more process you bring in, the higher the likelihood that your process will interact in strange, unexpected ways to create those perverse incentives.


If you think that always is overstating things a little, can you give me an actual example of an actual process at an actual company that creates no possibility of perverse incentives?


"All commits should have a message and commit messages should be explanatory."

This is an actual process in my group at the company I work for.

Process doesn't have to be heavy and invasive.

And what's the alternative? Zero process? Everybody has to "wing it" all the time? I can't see any possibility for a perverse environment there!


Who defines what "explanatory" means? And what is the resolution if there is a disagreement? I, personally, am happy with a commit message like, Refactoring needed before #12345 can happen. I've said what I was doing, and why, and presumably in your ticket system there is a ticket 12345 that has more detailed explanation. Other programmers will disagree. "Explanatory" means different things to different people, and complex arguments can erupt. (Conversely if your commit essay lacks a concise first line to show up in blame, is that explanatory? Should you always have a ticket #?)

Furthermore there is a type of person who enjoys asserting power through language lawyering. That kind of person will see that policy as a golden opportunity to acquire influence, even though the cost may be unnecessary conflict to little point. If such a person manages to assert control of a process element like that, you can easily get a type of teamicide that drives away good developers who don't want to deal with the BS of figuring out whether their essay was good enough to avoid an email lecture.

As for the alternative, I thought I was clear on that. Large groups cannot work without process, small groups can mostly get by on common sense. The imperfections of processes do not change their necessity in many cases. But if you, personally, do not enjoy dealing with process, then you should find opportunities to work in more congenial small groups.


You can question whether the perverse incentive will be exploited.

For example lets say the rule is that "C# code must be compiled before it is run." The incentives are to declare code compiled when it is not, to declare that you are not running code when you are, and to declare code to not be written in C#.


The additional perverse incentive is to extend the rule by banning all languages that do not have an equivalent compilation step. Which means that scripting languages are not available.


You can extend anything to an absurd degree. That does not make it a strong argument.


What makes you think that extension is absurd? I based that on a real example!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: