1186128f7SMauro Carvalho Chehab.. _managementstyle: 2186128f7SMauro Carvalho Chehab 3186128f7SMauro Carvalho ChehabLinux kernel management style 4186128f7SMauro Carvalho Chehab============================= 5186128f7SMauro Carvalho Chehab 6186128f7SMauro Carvalho ChehabThis is a short document describing the preferred (or made up, depending 7186128f7SMauro Carvalho Chehabon who you ask) management style for the linux kernel. It's meant to 8f77af637SFederico Vagamirror the :ref:`process/coding-style.rst <codingstyle>` document to some 9f77af637SFederico Vagadegree, and mainly written to avoid answering [#f1]_ the same (or similar) 10f77af637SFederico Vagaquestions over and over again. 11186128f7SMauro Carvalho Chehab 12186128f7SMauro Carvalho ChehabManagement style is very personal and much harder to quantify than 13186128f7SMauro Carvalho Chehabsimple coding style rules, so this document may or may not have anything 14186128f7SMauro Carvalho Chehabto do with reality. It started as a lark, but that doesn't mean that it 15186128f7SMauro Carvalho Chehabmight not actually be true. You'll have to decide for yourself. 16186128f7SMauro Carvalho Chehab 17186128f7SMauro Carvalho ChehabBtw, when talking about "kernel manager", it's all about the technical 18186128f7SMauro Carvalho Chehablead persons, not the people who do traditional management inside 19186128f7SMauro Carvalho Chehabcompanies. If you sign purchase orders or you have any clue about the 20186128f7SMauro Carvalho Chehabbudget of your group, you're almost certainly not a kernel manager. 21186128f7SMauro Carvalho ChehabThese suggestions may or may not apply to you. 22186128f7SMauro Carvalho Chehab 23186128f7SMauro Carvalho ChehabFirst off, I'd suggest buying "Seven Habits of Highly Effective 24186128f7SMauro Carvalho ChehabPeople", and NOT read it. Burn it, it's a great symbolic gesture. 25186128f7SMauro Carvalho Chehab 26186128f7SMauro Carvalho Chehab.. [#f1] This document does so not so much by answering the question, but by 27186128f7SMauro Carvalho Chehab making it painfully obvious to the questioner that we don't have a clue 28186128f7SMauro Carvalho Chehab to what the answer is. 29186128f7SMauro Carvalho Chehab 30186128f7SMauro Carvalho ChehabAnyway, here goes: 31186128f7SMauro Carvalho Chehab 32186128f7SMauro Carvalho Chehab.. _decisions: 33186128f7SMauro Carvalho Chehab 34186128f7SMauro Carvalho Chehab1) Decisions 35186128f7SMauro Carvalho Chehab------------ 36186128f7SMauro Carvalho Chehab 37186128f7SMauro Carvalho ChehabEverybody thinks managers make decisions, and that decision-making is 38186128f7SMauro Carvalho Chehabimportant. The bigger and more painful the decision, the bigger the 39186128f7SMauro Carvalho Chehabmanager must be to make it. That's very deep and obvious, but it's not 40186128f7SMauro Carvalho Chehabactually true. 41186128f7SMauro Carvalho Chehab 42186128f7SMauro Carvalho ChehabThe name of the game is to **avoid** having to make a decision. In 43186128f7SMauro Carvalho Chehabparticular, if somebody tells you "choose (a) or (b), we really need you 44186128f7SMauro Carvalho Chehabto decide on this", you're in trouble as a manager. The people you 45186128f7SMauro Carvalho Chehabmanage had better know the details better than you, so if they come to 46186128f7SMauro Carvalho Chehabyou for a technical decision, you're screwed. You're clearly not 47186128f7SMauro Carvalho Chehabcompetent to make that decision for them. 48186128f7SMauro Carvalho Chehab 49186128f7SMauro Carvalho Chehab(Corollary:if the people you manage don't know the details better than 50186128f7SMauro Carvalho Chehabyou, you're also screwed, although for a totally different reason. 51186128f7SMauro Carvalho ChehabNamely that you are in the wrong job, and that **they** should be managing 52186128f7SMauro Carvalho Chehabyour brilliance instead). 53186128f7SMauro Carvalho Chehab 54186128f7SMauro Carvalho ChehabSo the name of the game is to **avoid** decisions, at least the big and 55186128f7SMauro Carvalho Chehabpainful ones. Making small and non-consequential decisions is fine, and 56186128f7SMauro Carvalho Chehabmakes you look like you know what you're doing, so what a kernel manager 57186128f7SMauro Carvalho Chehabneeds to do is to turn the big and painful ones into small things where 58186128f7SMauro Carvalho Chehabnobody really cares. 59186128f7SMauro Carvalho Chehab 60186128f7SMauro Carvalho ChehabIt helps to realize that the key difference between a big decision and a 61186128f7SMauro Carvalho Chehabsmall one is whether you can fix your decision afterwards. Any decision 62186128f7SMauro Carvalho Chehabcan be made small by just always making sure that if you were wrong (and 63186128f7SMauro Carvalho Chehabyou **will** be wrong), you can always undo the damage later by 64186128f7SMauro Carvalho Chehabbacktracking. Suddenly, you get to be doubly managerial for making 65186128f7SMauro Carvalho Chehab**two** inconsequential decisions - the wrong one **and** the right one. 66186128f7SMauro Carvalho Chehab 67186128f7SMauro Carvalho ChehabAnd people will even see that as true leadership (*cough* bullshit 68186128f7SMauro Carvalho Chehab*cough*). 69186128f7SMauro Carvalho Chehab 70186128f7SMauro Carvalho ChehabThus the key to avoiding big decisions becomes to just avoiding to do 71186128f7SMauro Carvalho Chehabthings that can't be undone. Don't get ushered into a corner from which 72186128f7SMauro Carvalho Chehabyou cannot escape. A cornered rat may be dangerous - a cornered manager 73186128f7SMauro Carvalho Chehabis just pitiful. 74186128f7SMauro Carvalho Chehab 75186128f7SMauro Carvalho ChehabIt turns out that since nobody would be stupid enough to ever really let 76186128f7SMauro Carvalho Chehaba kernel manager have huge fiscal responsibility **anyway**, it's usually 77186128f7SMauro Carvalho Chehabfairly easy to backtrack. Since you're not going to be able to waste 78186128f7SMauro Carvalho Chehabhuge amounts of money that you might not be able to repay, the only 79186128f7SMauro Carvalho Chehabthing you can backtrack on is a technical decision, and there 80186128f7SMauro Carvalho Chehabback-tracking is very easy: just tell everybody that you were an 81186128f7SMauro Carvalho Chehabincompetent nincompoop, say you're sorry, and undo all the worthless 82186128f7SMauro Carvalho Chehabwork you had people work on for the last year. Suddenly the decision 83186128f7SMauro Carvalho Chehabyou made a year ago wasn't a big decision after all, since it could be 84186128f7SMauro Carvalho Chehabeasily undone. 85186128f7SMauro Carvalho Chehab 86186128f7SMauro Carvalho ChehabIt turns out that some people have trouble with this approach, for two 87186128f7SMauro Carvalho Chehabreasons: 88186128f7SMauro Carvalho Chehab 89186128f7SMauro Carvalho Chehab - admitting you were an idiot is harder than it looks. We all like to 90186128f7SMauro Carvalho Chehab maintain appearances, and coming out in public to say that you were 91186128f7SMauro Carvalho Chehab wrong is sometimes very hard indeed. 92186128f7SMauro Carvalho Chehab - having somebody tell you that what you worked on for the last year 93186128f7SMauro Carvalho Chehab wasn't worthwhile after all can be hard on the poor lowly engineers 94186128f7SMauro Carvalho Chehab too, and while the actual **work** was easy enough to undo by just 95186128f7SMauro Carvalho Chehab deleting it, you may have irrevocably lost the trust of that 96186128f7SMauro Carvalho Chehab engineer. And remember: "irrevocable" was what we tried to avoid in 97186128f7SMauro Carvalho Chehab the first place, and your decision ended up being a big one after 98186128f7SMauro Carvalho Chehab all. 99186128f7SMauro Carvalho Chehab 100186128f7SMauro Carvalho ChehabHappily, both of these reasons can be mitigated effectively by just 101186128f7SMauro Carvalho Chehabadmitting up-front that you don't have a friggin' clue, and telling 102186128f7SMauro Carvalho Chehabpeople ahead of the fact that your decision is purely preliminary, and 103186128f7SMauro Carvalho Chehabmight be the wrong thing. You should always reserve the right to change 104186128f7SMauro Carvalho Chehabyour mind, and make people very **aware** of that. And it's much easier 105186128f7SMauro Carvalho Chehabto admit that you are stupid when you haven't **yet** done the really 106186128f7SMauro Carvalho Chehabstupid thing. 107186128f7SMauro Carvalho Chehab 108186128f7SMauro Carvalho ChehabThen, when it really does turn out to be stupid, people just roll their 109ee97d8abSFox Fostereyes and say "Oops, not again". 110186128f7SMauro Carvalho Chehab 111186128f7SMauro Carvalho ChehabThis preemptive admission of incompetence might also make the people who 112186128f7SMauro Carvalho Chehabactually do the work also think twice about whether it's worth doing or 113186128f7SMauro Carvalho Chehabnot. After all, if **they** aren't certain whether it's a good idea, you 114186128f7SMauro Carvalho Chehabsure as hell shouldn't encourage them by promising them that what they 115186128f7SMauro Carvalho Chehabwork on will be included. Make them at least think twice before they 116186128f7SMauro Carvalho Chehabembark on a big endeavor. 117186128f7SMauro Carvalho Chehab 118186128f7SMauro Carvalho ChehabRemember: they'd better know more about the details than you do, and 119186128f7SMauro Carvalho Chehabthey usually already think they have the answer to everything. The best 120186128f7SMauro Carvalho Chehabthing you can do as a manager is not to instill confidence, but rather a 121186128f7SMauro Carvalho Chehabhealthy dose of critical thinking on what they do. 122186128f7SMauro Carvalho Chehab 123186128f7SMauro Carvalho ChehabBtw, another way to avoid a decision is to plaintively just whine "can't 124186128f7SMauro Carvalho Chehabwe just do both?" and look pitiful. Trust me, it works. If it's not 125186128f7SMauro Carvalho Chehabclear which approach is better, they'll eventually figure it out. The 126186128f7SMauro Carvalho Chehabanswer may end up being that both teams get so frustrated by the 127186128f7SMauro Carvalho Chehabsituation that they just give up. 128186128f7SMauro Carvalho Chehab 129186128f7SMauro Carvalho ChehabThat may sound like a failure, but it's usually a sign that there was 130186128f7SMauro Carvalho Chehabsomething wrong with both projects, and the reason the people involved 131186128f7SMauro Carvalho Chehabcouldn't decide was that they were both wrong. You end up coming up 132186128f7SMauro Carvalho Chehabsmelling like roses, and you avoided yet another decision that you could 133186128f7SMauro Carvalho Chehabhave screwed up on. 134186128f7SMauro Carvalho Chehab 135186128f7SMauro Carvalho Chehab 136186128f7SMauro Carvalho Chehab2) People 137186128f7SMauro Carvalho Chehab--------- 138186128f7SMauro Carvalho Chehab 139186128f7SMauro Carvalho ChehabMost people are idiots, and being a manager means you'll have to deal 140186128f7SMauro Carvalho Chehabwith it, and perhaps more importantly, that **they** have to deal with 141186128f7SMauro Carvalho Chehab**you**. 142186128f7SMauro Carvalho Chehab 143186128f7SMauro Carvalho ChehabIt turns out that while it's easy to undo technical mistakes, it's not 144186128f7SMauro Carvalho Chehabas easy to undo personality disorders. You just have to live with 145186128f7SMauro Carvalho Chehabtheirs - and yours. 146186128f7SMauro Carvalho Chehab 147186128f7SMauro Carvalho ChehabHowever, in order to prepare yourself as a kernel manager, it's best to 148186128f7SMauro Carvalho Chehabremember not to burn any bridges, bomb any innocent villagers, or 149186128f7SMauro Carvalho Chehabalienate too many kernel developers. It turns out that alienating people 150186128f7SMauro Carvalho Chehabis fairly easy, and un-alienating them is hard. Thus "alienating" 151186128f7SMauro Carvalho Chehabimmediately falls under the heading of "not reversible", and becomes a 152186128f7SMauro Carvalho Chehabno-no according to :ref:`decisions`. 153186128f7SMauro Carvalho Chehab 154186128f7SMauro Carvalho ChehabThere's just a few simple rules here: 155186128f7SMauro Carvalho Chehab 156186128f7SMauro Carvalho Chehab (1) don't call people d*ckheads (at least not in public) 157186128f7SMauro Carvalho Chehab (2) learn how to apologize when you forgot rule (1) 158186128f7SMauro Carvalho Chehab 159186128f7SMauro Carvalho ChehabThe problem with #1 is that it's very easy to do, since you can say 160186128f7SMauro Carvalho Chehab"you're a d*ckhead" in millions of different ways [#f2]_, sometimes without 161186128f7SMauro Carvalho Chehabeven realizing it, and almost always with a white-hot conviction that 162186128f7SMauro Carvalho Chehabyou are right. 163186128f7SMauro Carvalho Chehab 164186128f7SMauro Carvalho ChehabAnd the more convinced you are that you are right (and let's face it, 165186128f7SMauro Carvalho Chehabyou can call just about **anybody** a d*ckhead, and you often **will** be 166186128f7SMauro Carvalho Chehabright), the harder it ends up being to apologize afterwards. 167186128f7SMauro Carvalho Chehab 168186128f7SMauro Carvalho ChehabTo solve this problem, you really only have two options: 169186128f7SMauro Carvalho Chehab 170186128f7SMauro Carvalho Chehab - get really good at apologies 171186128f7SMauro Carvalho Chehab - spread the "love" out so evenly that nobody really ends up feeling 172186128f7SMauro Carvalho Chehab like they get unfairly targeted. Make it inventive enough, and they 173186128f7SMauro Carvalho Chehab might even be amused. 174186128f7SMauro Carvalho Chehab 175186128f7SMauro Carvalho ChehabThe option of being unfailingly polite really doesn't exist. Nobody will 176ee97d8abSFox Fostertrust somebody who is so clearly hiding their true character. 177186128f7SMauro Carvalho Chehab 178186128f7SMauro Carvalho Chehab.. [#f2] Paul Simon sang "Fifty Ways to Leave Your Lover", because quite 179ee97d8abSFox Foster frankly, "A Million Ways to Tell a Developer They're a D*ckhead" doesn't 180186128f7SMauro Carvalho Chehab scan nearly as well. But I'm sure he thought about it. 181186128f7SMauro Carvalho Chehab 182186128f7SMauro Carvalho Chehab 183186128f7SMauro Carvalho Chehab3) People II - the Good Kind 184186128f7SMauro Carvalho Chehab---------------------------- 185186128f7SMauro Carvalho Chehab 186186128f7SMauro Carvalho ChehabWhile it turns out that most people are idiots, the corollary to that is 187186128f7SMauro Carvalho Chehabsadly that you are one too, and that while we can all bask in the secure 188186128f7SMauro Carvalho Chehabknowledge that we're better than the average person (let's face it, 189186128f7SMauro Carvalho Chehabnobody ever believes that they're average or below-average), we should 190186128f7SMauro Carvalho Chehabalso admit that we're not the sharpest knife around, and there will be 191186128f7SMauro Carvalho Chehabother people that are less of an idiot than you are. 192186128f7SMauro Carvalho Chehab 193186128f7SMauro Carvalho ChehabSome people react badly to smart people. Others take advantage of them. 194186128f7SMauro Carvalho Chehab 195186128f7SMauro Carvalho ChehabMake sure that you, as a kernel maintainer, are in the second group. 196186128f7SMauro Carvalho ChehabSuck up to them, because they are the people who will make your job 197186128f7SMauro Carvalho Chehabeasier. In particular, they'll be able to make your decisions for you, 198186128f7SMauro Carvalho Chehabwhich is what the game is all about. 199186128f7SMauro Carvalho Chehab 200186128f7SMauro Carvalho ChehabSo when you find somebody smarter than you are, just coast along. Your 201186128f7SMauro Carvalho Chehabmanagement responsibilities largely become ones of saying "Sounds like a 202186128f7SMauro Carvalho Chehabgood idea - go wild", or "That sounds good, but what about xxx?". The 203186128f7SMauro Carvalho Chehabsecond version in particular is a great way to either learn something 204186128f7SMauro Carvalho Chehabnew about "xxx" or seem **extra** managerial by pointing out something the 205186128f7SMauro Carvalho Chehabsmarter person hadn't thought about. In either case, you win. 206186128f7SMauro Carvalho Chehab 207186128f7SMauro Carvalho ChehabOne thing to look out for is to realize that greatness in one area does 208186128f7SMauro Carvalho Chehabnot necessarily translate to other areas. So you might prod people in 209186128f7SMauro Carvalho Chehabspecific directions, but let's face it, they might be good at what they 210186128f7SMauro Carvalho Chehabdo, and suck at everything else. The good news is that people tend to 211186128f7SMauro Carvalho Chehabnaturally gravitate back to what they are good at, so it's not like you 212186128f7SMauro Carvalho Chehabare doing something irreversible when you **do** prod them in some 213186128f7SMauro Carvalho Chehabdirection, just don't push too hard. 214186128f7SMauro Carvalho Chehab 215186128f7SMauro Carvalho Chehab 216186128f7SMauro Carvalho Chehab4) Placing blame 217186128f7SMauro Carvalho Chehab---------------- 218186128f7SMauro Carvalho Chehab 219186128f7SMauro Carvalho ChehabThings will go wrong, and people want somebody to blame. Tag, you're it. 220186128f7SMauro Carvalho Chehab 221186128f7SMauro Carvalho ChehabIt's not actually that hard to accept the blame, especially if people 222186128f7SMauro Carvalho Chehabkind of realize that it wasn't **all** your fault. Which brings us to the 223ee97d8abSFox Fosterbest way of taking the blame: do it for someone else. You'll feel good 224ee97d8abSFox Fosterfor taking the fall, they'll feel good about not getting blamed, and the 225ee97d8abSFox Fosterperson who lost their whole 36GB porn-collection because of your 226ee97d8abSFox Fosterincompetence will grudgingly admit that you at least didn't try to weasel 227ee97d8abSFox Fosterout of it. 228186128f7SMauro Carvalho Chehab 229ee97d8abSFox FosterThen make the developer who really screwed up (if you can find them) know 230*26f67b4cSJonathan Neuschäfer**in private** that they screwed up. Not just so they can avoid it in the 231ee97d8abSFox Fosterfuture, but so that they know they owe you one. And, perhaps even more 232ee97d8abSFox Fosterimportantly, they're also likely the person who can fix it. Because, let's 233186128f7SMauro Carvalho Chehabface it, it sure ain't you. 234186128f7SMauro Carvalho Chehab 235186128f7SMauro Carvalho ChehabTaking the blame is also why you get to be manager in the first place. 236186128f7SMauro Carvalho ChehabIt's part of what makes people trust you, and allow you the potential 237186128f7SMauro Carvalho Chehabglory, because you're the one who gets to say "I screwed up". And if 238186128f7SMauro Carvalho Chehabyou've followed the previous rules, you'll be pretty good at saying that 239186128f7SMauro Carvalho Chehabby now. 240186128f7SMauro Carvalho Chehab 241186128f7SMauro Carvalho Chehab 242186128f7SMauro Carvalho Chehab5) Things to avoid 243186128f7SMauro Carvalho Chehab------------------ 244186128f7SMauro Carvalho Chehab 245186128f7SMauro Carvalho ChehabThere's one thing people hate even more than being called "d*ckhead", 246186128f7SMauro Carvalho Chehaband that is being called a "d*ckhead" in a sanctimonious voice. The 247186128f7SMauro Carvalho Chehabfirst you can apologize for, the second one you won't really get the 248186128f7SMauro Carvalho Chehabchance. They likely will no longer be listening even if you otherwise 249186128f7SMauro Carvalho Chehabdo a good job. 250186128f7SMauro Carvalho Chehab 251186128f7SMauro Carvalho ChehabWe all think we're better than anybody else, which means that when 252186128f7SMauro Carvalho Chehabsomebody else puts on airs, it **really** rubs us the wrong way. You may 253186128f7SMauro Carvalho Chehabbe morally and intellectually superior to everybody around you, but 254186128f7SMauro Carvalho Chehabdon't try to make it too obvious unless you really **intend** to irritate 255186128f7SMauro Carvalho Chehabsomebody [#f3]_. 256186128f7SMauro Carvalho Chehab 257186128f7SMauro Carvalho ChehabSimilarly, don't be too polite or subtle about things. Politeness easily 258186128f7SMauro Carvalho Chehabends up going overboard and hiding the problem, and as they say, "On the 259186128f7SMauro Carvalho Chehabinternet, nobody can hear you being subtle". Use a big blunt object to 260186128f7SMauro Carvalho Chehabhammer the point in, because you can't really depend on people getting 261186128f7SMauro Carvalho Chehabyour point otherwise. 262186128f7SMauro Carvalho Chehab 263186128f7SMauro Carvalho ChehabSome humor can help pad both the bluntness and the moralizing. Going 264186128f7SMauro Carvalho Chehaboverboard to the point of being ridiculous can drive a point home 265186128f7SMauro Carvalho Chehabwithout making it painful to the recipient, who just thinks you're being 266186128f7SMauro Carvalho Chehabsilly. It can thus help get through the personal mental block we all 267186128f7SMauro Carvalho Chehabhave about criticism. 268186128f7SMauro Carvalho Chehab 269186128f7SMauro Carvalho Chehab.. [#f3] Hint: internet newsgroups that are not directly related to your work 270186128f7SMauro Carvalho Chehab are great ways to take out your frustrations at other people. Write 271186128f7SMauro Carvalho Chehab insulting posts with a sneer just to get into a good flame every once in 272186128f7SMauro Carvalho Chehab a while, and you'll feel cleansed. Just don't crap too close to home. 273186128f7SMauro Carvalho Chehab 274186128f7SMauro Carvalho Chehab 275186128f7SMauro Carvalho Chehab6) Why me? 276186128f7SMauro Carvalho Chehab---------- 277186128f7SMauro Carvalho Chehab 278186128f7SMauro Carvalho ChehabSince your main responsibility seems to be to take the blame for other 279186128f7SMauro Carvalho Chehabpeoples mistakes, and make it painfully obvious to everybody else that 280186128f7SMauro Carvalho Chehabyou're incompetent, the obvious question becomes one of why do it in the 281186128f7SMauro Carvalho Chehabfirst place? 282186128f7SMauro Carvalho Chehab 283186128f7SMauro Carvalho ChehabFirst off, while you may or may not get screaming teenage girls (or 284186128f7SMauro Carvalho Chehabboys, let's not be judgmental or sexist here) knocking on your dressing 285186128f7SMauro Carvalho Chehabroom door, you **will** get an immense feeling of personal accomplishment 286186128f7SMauro Carvalho Chehabfor being "in charge". Never mind the fact that you're really leading 287186128f7SMauro Carvalho Chehabby trying to keep up with everybody else and running after them as fast 288186128f7SMauro Carvalho Chehabas you can. Everybody will still think you're the person in charge. 289186128f7SMauro Carvalho Chehab 290186128f7SMauro Carvalho ChehabIt's a great job if you can hack it. 291