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
23026f67b4cSJonathan 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