Donnie Berkholz ([info]spyderous) wrote,
@ 2007-10-08 00:54:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:communication, culture, gentoo, leadership

HOWTO make Gentoo great
Gentoo is good. How do we make it great?

Over the past year or so, I've read a few books, and I want to use those ideas to build a better Gentoo. The books:



I plan to write a short series of posts discussing the lessons in these books and how to apply them to Gentoo. In this post, I'm going to summarize the concepts of "Good to Great." I'll discuss how we can apply them to Gentoo in a later post. The book explains what it takes to transform a good company into a great one. It's a comparison of companies that made a transition from good to great (thus the title) with companies that remained merely good. Jim Collins and his group reduced the differences to a remarkably small set:


  • Level 5 leadership: The leaders of great companies aren't charismatic, big-name CEOs. They're humble, and their ambition is for the company, not for themselves.

  • First, get the right people: Before you decide what to do and where to go, get the right people in the right spots. Otherwise, you've got the wrong people creating the wrong vision, strategy, etc., which the right people are then forced to implement. Concrete implementations:

    • "When in doubt, don't hire—keep looking. (Corollary: A company should limit its growth based on its ability to attract enough of the right people.)"

    • "When you know you need to make a people change, act. (Corollary: First be sure you don't simply have someone in the wrong seat.)"

    • "Put your best people on your biggest opportunities, not your biggest problems. (Corollary: If you sell off your problems, don't sell off your best people.)"


    The right people have the right innate abilities and character traits, not necessarily the specific knowledge and skills. For example, look for work ethic, dedication, and problem-solving ability, not ebuild-writing skills and knowledge of bash.

  • Confront the brutal facts: Don't deny reality, or you can't make the right decisions. To do this, create an environment where everyone can be heard, so the truth can come out. Don't lose faith that you will win eventually, but accept the reality of now.

  • The Hedgehog Concept: Only do things that overlap in the three circles:

    • You're passionate about it

    • You can be the best in the world at it

    • It drives your resource engine


    The resource engine is a combination of time (how well we attract contributors), money and brand (how well we create a community), drawn from an accompanying monograph for the social sectors.

  • Build a culture of discipline: Create a culture of self-disciplined people who are "fanatically consistent with the three circles." Bureaucracy arises to compensate for incompetence and poor discipline due to having the wrong people. If you've got the right people, you don't need the bureaucracy.

  • Technology accelerators: If a new technology fits into your Hedgehog Concept, become a pioneer. If not, settle for decent, or drop it altogether if you can.

  • The flywheel and the doom loop: Transforming from good to great is not quick. It's a flywheel, slowly building momentum. From outside, all people see is the breakthrough, but from inside there's a prior buildup. Merely good companies couldn't build momentum—they jumped around from focus to focus, never getting anywhere with any of them. You don't need to spend effort getting people behind your idea. Show them the results, and they'll follow you.



(Post a new comment)


[info]coreyshields.com
2007-10-08 09:22 am UTC (link)
Amen!!

(Reply to this)


(Anonymous)
2007-10-08 10:46 am UTC (link)
Hey Donnie,

Glad to see this sort of list, but it's too late to turn the good ship Gentoo around. The key limitation of Jim Collins' excellent research is that it is based on organisations that can hire and fire. Sadly, Gentoo can do neither effectively, as it is a community-based project that will always be open to all people - whether they are deemed "right" or "wrong" in terms of Collins' research.

Everything finds its own level, and Gentoo has found its. For a community-based project, Gentoo has done very well. But like all such projects, Gentoo reflects the community it has attracted.

How are you planning to change _that_? :)

Best regards,
Stu

(Reply to this)(Thread)


[info]spyderous
2007-10-11 08:23 am UTC (link)
You'll just have to wait for the next post in the series, which will expand on getting the right people. =)

(Reply to this)(Parent)

The No Asshole Rule
(Anonymous)
2007-10-08 04:23 pm UTC (link)
If you haven't already, do find yourself a copy of 'The No Asshole Rule' by Robert I. Sutton and read it.

regards,
nixnut

(Reply to this)(Thread)

Re: The No Asshole Rule
[info]spyderous
2007-10-11 08:24 am UTC (link)
I've seen it a few times at the bookstore -- is it worth buying?

(Reply to this)(Parent)(Thread)

Re: The No Asshole Rule
(Anonymous)
2007-10-11 04:00 pm UTC (link)
I certainly think so, but as always don't take just my word for it. See what other people have to say about it: http://www.amazon.com/Asshole-Rule-Civilized-Workplace-Surviving/dp/0446526568/ref=pd_bbs_sr_1/103-7916645-5887023?ie=UTF8&s=books&qid=1192117741&sr=8-1

regards,
nixnut

(Reply to this)(Parent)


(Anonymous)
2007-10-09 05:25 am UTC (link)
How about better QA?

Indulge me while I voice my frustrations which are starting to grow into serious concerns. I appreciate the power of Gentoo, but I simply don't see why I should be spending so much time chasing stupid bugs.

I was installing Gentoo on a powerful server, one of many I'm going to put this image on. One package failed to install because of a crash in the ebuild (octave-forge). One crapped out asking me to re-merge another ebuild with a different use flag (zlib in I forget what) (this is with everything set to default!), and one (weka) crapped out because it didn't depend on a generation-1 VM while the Java environment check wanted it. This all occurred in stable.

There is no excuse for these problems. A package should never stop an install asking me to re-merge another package with different settings; it should suggest that I do it when I start the merge! I know the first and last problems are simple QA bugs, and they're very regrettable, because by now Gentoo really should have tinderboxes backed by binary packages emerging every package with every use flag combination from the base stage3, all day, catching build failures. If Debian can do it, so can Gentoo.

I then went on to try and install a kernel using genkernel. That piece of stable software proceeded to use a livecd config file to compile and install a kernel which had no libata compiled in or as a module. (Again, this is on vanilla everything, gentoo-sources, no tweaks to anything at all.) May I point out that no SATA system sold today will even boot without libata? I went on to spend two hours trying to understand why it wouldn't autodetect my RAID arrays before I realized it wasn't even seeing the disks they were on. Suffice to say, I'll never be using genkernel again.

Gentoo is known for giving its users unprecedented power. So how about not focusing on managing people, but focusing on inspiring people to work hard on projects which can remove the annoying speed bumps and allow the users to use that power?

- Tinderboxes to catch ebuild crashes before they hit stable. I've lost count of the number of times I had to work around ebuilds crapping out because the devs had not tested for the package configuraiton I had.
- Real kernel autoconfiguration (with a user wizard for the important choices) and hardware sensing, so we can replace the abomination that is genkernel.
- Binary library dependency tracking. revdep-rebuild must die.
- Aggressive EAPI improvements so we can eventually put a stop to blockers and ebuilds crashing asking to remerge other ebuilds, and make them figure out the right thing on their own.
- Real Portage speed improvements or replacement. I know Paludis is a politically charged topic but Portage is unacceptably slow now.

(Reply to this)(Thread)


[info]spyderous
2007-10-11 08:24 am UTC (link)
I think that if we get the right people and the right vision, these things will naturally follow.

(Reply to this)(Parent)

Good thoughts
(Anonymous)
2007-10-09 05:41 am UTC (link)
I'll be curious to see the Gentoo specifics when you get to them (I'd rather see more discussion of Gentoo mixed with insights from the books rather than summaries of the books themselves, if that's ok).

I've been a Gentoo user since 2002 (and have been a Linux user since 1995 to give some perspective). I guess I still am since I'm typing this booted into Gentoo on my workstation, which I couldn't bring myself to remove yet.

During a major relocation this year I found myself with no spare time, so when I unpacked my machines I loaded Ubuntu before restoring my personal stuff from backup so I could get the most out of the few hours at night I had to myself.

I have to say, after more than a decade of have Linux be the end, not the means to accomplish other tasks, it was a real revelation to have almost everything "just work". However, when I had to customize something that wasn't working with my hardware by default (suspend with the fglrx driver and the Gutsy stock kernel with the SLUB allocator) it was a days long ordeal to accomplish something that I've been doing for 12 years (compiling a custom kernel and needed 3rd party modules). I found myself wishing for the ease with which I could customize my system with Gentoo. But I wanted the sane default settings and wonderful integration I experienced with Gentoo.

I find myself wanting a distribution that offers the alluring "it just works" of Ubuntu but with the powerful ease of customization and control that Gentoo offers (or used to - now it just seems like a lot of work).

I don't know what you have in mind, but I'll be following the discussion (and chiming in where I can) to see what interesting ideas come out of this.

I'll end with a controversial thought: Maybe instead of a better Gentoo it's time to take the lessons learned from both binary-only and source-based distributions and use them to build a new hybrid distribution that combines the best of both approaches. Or maybe that's the better Gentoo you were thinking about? :-)

(Reply to this)(Thread)

Re: Good thoughts
(Anonymous)
2007-10-10 02:04 pm UTC (link)
I must be getting senile. The last word of paragraph 4 should read "Ubuntu" not "Gentoo".

(Reply to this)(Parent)(Thread)

Re: Good thoughts
[info]spyderous
2007-10-11 08:27 am UTC (link)
I proposed something along the lines of that hybrid idea at http://spyderous.livejournal.com/91151.html -- the whole post focused on some bigger-picture technical improvements we could make.

(Reply to this)(Parent)(Thread)

Re: Good thoughts
(Anonymous)
2007-10-11 03:43 pm UTC (link)
Thanks. That post happened during the peak of my downtime, so I missed it. Interestingly enough, the thing that stuck in my mind when reading that wasn't a technical point, but the whole "metadistribution" meme. Since it's hard to deeply explore any idea in these little textboxes let alone many, I'll focus on that.

Meta-distribution seems to be the wrong term for what I see people talking about, though ironically Gentoo seems to live up to the name. The prefix 'proto' (meaning roughly "ancestor", or "first in time" or "having the least amount of a specified element") seems to capture the idea people are throwing around much better than meta (meaning "self-referential" or "later in time" or "at a later stage of development" or "after" or "beyond").

Maybe this confusion in itself is telling, since Gentoo seems to go beyond what is necessary to act as a foundation for "building what you want", unless the idea is to create by taking away, like a sculptor hacking away at a block of granite. That's ok, I guess, but it smells like bad engineering to me, or at least in violation of the *nix philosophy of doing one thing well. That 'thing' in this case being to provide the tools and infrastructure from which to build specific distributions.

Gentoo, in contrast, contains the right tools and infrastructure to act as a proto-distribution, but steps far beyond that point and actually *is* a distribution as well, just a particularly unfocused one. To me, the defining characteristic of a good distribution is the degree to which its components are integrated into a coherent whole suitable for whatever the focus is (desktop, server, whatever). The decisions that go into the act of distribution building include the choice of what packages to include, what versions interact best together, default configurations etc. and 'baking' everything into a well-integrated, internally coherent system.

What I seem to be seeing is that the portage tree is the intended entry point for distribution building, but I think maybe this is the wrong place, because many of the decisions crucial to assembling a great distribution have already been made by the gentoo devs in creating and maintaining the portage tree. Perhaps the idea is that the act of assembling the raw components into a purposeless, amorphous blob ready to be shaped into what you want is a viable first step. In practice this doesn't seem to hold up, though - early decisions have a remarkable effect on the final product.

Those familiar with protein folding know that the primary sequence of a protein is instrumental in determining the final folded structure. Although during folding the protein goes through an almost-folded quasi-stable blob state, there is still only one final viable structure; every other folded state is a non-functional mess. And that structure is determined by the initial composition of the peptide chain, not what happens to the blob. The complexity of interactions between the parts of a Linux distribution may be comparable to those defining a protein (maybe). So tweaking the almost-focused portage tree to get a focused final product may not be any more feasible than expecting to coax radically different final structures out of a protein sequence. To get something different you have to go back a few steps and assemble the initial components yourself.

To bring things back to the point of the original blog post, maybe the path to a better Gentoo should incorporate the idea that there needs to be a clean organizational separation between the Gentoo "toolkit" and the not-quite-finished Linux distribution that the portage tree represents. Maybe these should be two separate, though related organizations instead of aspects of one. The 'toolkit' group should focus on the goal of making the definition, assembly and management of the component parts of a Linux distribution as efficient as possible, and the 'distribution' group should realize that it actually is one, decide what it wants to be when it grows up and finish getting there.

(Reply to this)(Parent)(Thread)

Re: Good thoughts
[info]spyderous
2007-10-13 07:42 am UTC (link)
My interpretation of your protein metaphor varies a bit from yours. Tweaking the almost-focused portage tree is like making mutations to a protein -- tricky to find one that improves things, but easy to screw up.

BTW, they have gotten radically different final structures out of sequences that are quite similar. Quite cool research -- I think they turned a mainly helical protein into one that was mainly beta sheets, or vice versa.

(Reply to this)(Parent)

Why not start with the package manager?
(Anonymous)
2007-10-10 10:22 am UTC (link)
Why not start by replacing the current mediocre-at-best package manager with a great one?

(Reply to this)(Thread)

Re: Why not start with the package manager?
(Anonymous)
2007-10-10 02:16 pm UTC (link)
Most people you ask would likely cite portage as the main strength of Gentoo, so the main barriers to a "better Gentoo" lie elsewhere. If those aren't addressed, a perfect portage won't matter a bit. What does a perfect portage even look like? What goals or design criteria is it measured against? Define the objectives and the question of what to build, replace or fix will be clear.

(Reply to this)(Parent)(Thread)

Re: Why not start with the package manager?
(Anonymous)
2007-10-10 04:32 pm UTC (link)
Odd -- most people I know list Portage (the application) as the single greatest thing holding Gentoo back. Its greatest strength is the straightforward flexibility, power and simplicity of the ebuild format, but people are prevented from adding anything new to it by the mess of code that still needs to support anything before it can be used.

(Reply to this)(Parent)

Re: Why not start with the package manager?
(Anonymous)
2007-10-10 04:37 pm UTC (link)
Most people claiming that would only do so because they don't make the distinction between Portage and the tree. The tree is Gentoo's main strength; Portage is the main thing preventing the tree from being anywhere near as good as it should be.

(Reply to this)(Parent)(Thread)

Re: Why not start with the package manager?
(Anonymous)
2007-10-11 01:02 am UTC (link)
I guess you've got a point there. It certainly explains why Gentoo is the least popular of all the source-based Linux distributions. Or is it? :-) Maybe portage isn't the root cause of the current Gentoo malaise, just a contributor. Let's say the Gentoo community were miraculously handed the perfect replacement to portage. Would all the issues people have with Gentoo vanish? I bet they wouldn't. Portage is just part of the problem, and probably easier to solve than the lack of a coherent roadmap. The finest ship will still drift aimlessly (or ram an iceberg) if no one takes the rudder and steers it to port.

(Reply to this)(Parent)

Re: Why not start with the package manager?
(Anonymous)
2007-10-23 06:55 pm UTC (link)
The following looks pretty compelling:

http://en.wikipedia.org/wiki/Conary_(package_manager)

(Reply to this)(Parent)

So what ever happened to the short series of posts?
(Anonymous)
2007-12-16 05:12 pm UTC (link)
Just wondering ...

(Reply to this)(Thread)

Re: So what ever happened to the short series of posts?
[info]spyderous
2007-12-16 08:01 pm UTC (link)
My boss is borrowing "Good to Great" right now, and I need to refer to it to start writing. Hopefully I can get it back this week.

(Reply to this)(Parent)(Thread)

Re: So what ever happened to the short series of posts?
(Anonymous)
2008-01-23 09:54 pm UTC (link)
Hopefully. :-)

(Reply to this)(Parent)(Thread)

Re: So what ever happened to the short series of posts?
[info]spyderous
2008-01-23 10:23 pm UTC (link)
It was very short. =P j/k, I've actually been thinking about this post (the first one will be "great people") for the last week or so. It will probably turn up over the next week.

(Reply to this)(Parent)(Thread)

Re: So what ever happened to the short series of posts?
(Anonymous)
2008-01-23 10:34 pm UTC (link)
Cool. Been thinking about the subject a lot lately myself, what with the current kerfluffle. Given that current Gentoo issues are (IMHO) people/community related rather than technical in nature, I'm interested in anything that examines the problem from a people/organizational perspective rather than a technical one.

(Reply to this)(Parent)


Create an Account
Forgot your login?
Login w/ OpenID
English • Español • Deutsch • Русский…