How Linux Kernel Devt Works

SM (Scott Merrill) interview with LT (Linus Torvalds):

SM: As the number of systems and architectures supported by the Linux kernel continues to grow, you can’t possibly have development hardware for each of them. How do you verify the quality and functionality of all the change requests you get?

LT: Oh, that’s easy: I don’t.

The whole model is built on a network of trust among developers that have come to know each other over the years. There’s no way I can test all the platforms we support – the same way there is no way I can check every single commit that gets merged through me. And I wouldn’t even really even *want* to check each hardware or each change – the point of open source and distributed development is that you do things together. We have a few tens of “highlevel” maintainers for various subsystems (eg networking, USB drivers, graphics, particular hardware architectures etc etc), and even those maintainers can’t test everything in their area, because they won’t have that particular hardware etc. I trust them, and they in turn trust the people they work with.

I think any big project is about finding people you can trust, and really then depending on that trust. I don’t *want* to micro-manage people, and I couldn’t afford to even if I did want to.

And the thing is, smart people (and people who have what I call “good taste”, which is often even more important) may be rare, but you do recognize them. I think one of my biggest successes is actually outside Linux: recognizing how good a developer Junio Hamano was on git, and trusting him enough to just ask if he would be willing to maintain the project. Being able to let go and trusting somebody else is *important*, because without that kind of trust you can’t get big projects done.