Monday, October 25, 2004

Great advice for starting a software project

Want an insight into how to develop a large software project? Linus Torvalds suggests you start small...

Preston: Do you have any advice for people starting to undertake large open source projects? What have you learned by managing the Linux kernel?

Linus Torvalds: Nobody should start to undertake a large project. You start with a small _trivial_ project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision.

So start small, and think about the details. Don't think about some big picture and fancy design. If it doesn't solve some fairly immediate need, it's almost certainly over-designed. And don't expect people to jump in and help you. That's not how these things work. You need to get something half-way _useful_ first, and then others will say 'hey, that _almost_ works for me', and they'll get involved in the project.

And if there is anything I've learnt from Linux, it's that projects have a life of their own, and you should _not_ try to enforce your 'vision' too strongly on them. Most often you're wrong anyway, and if you're not flexible and willing to take input from others (and willing to change direction when it turned out your vision was flawed), you'll never get anything good done.

In other words, be willing to admit your mistakes, and don't expect to get anywhere big in any kind of short timeframe. I've been doing Linux for thirteen years, and I expect to do it for quite some time still. If I had _expected_ to do something that big, I'd never have started. It started out small and insignificant, and that's how I thought about it.

No comments:

Post a Comment