I am about to finish reading the book Innovation Happens Elsewhere
. It's one of the less readable books which you want to finish reading anyway because the content is very interesting. I apologize if any of the two authors reads this (they're from Sun so it's possible) but I can't help myself, I have to push myself to read the next page, because the content is hard to digest. On the other hand it's full of very interesting ideas so I never gave up so far.
The book is about using opensource as a business strategy. There are many concrete examples how Sun is using opensource as a business strategy. I recommend the book to anyone who wants to find out what are the motives behind Sun doing lots of opensource (especially to those who are suspicious about them :-)
I find the book very good in demystifying opensource - that was probably the most interesting part for me, to see what all kinds of myths exist out there. There exist too many misconceptions like for example "opensource can be used to get outside developers do the job for you for no cost" and the book explains why these ideas are wrong and what works. There is also a very good explanation of all kinds of opensource licences and the reasons why they were created, including useful information like which licences are compatible and which kinds of project they fit the most.
The other interesting thing is that NetBeans is used very often through the whole book as an example of successfull opensource project. It's especially interesting to read about what the authors think works well and what doesn't in a project like NetBeans. Many of the used NetBeans examples are correct, but there's one which is wrong.
We've used at NetBeans before I joined the project for a some time quite intensively the UI mailing list to discuss all issues around UI of NetBeans. This is referred in the book as an example of succesfull design done in public. Unfortunately user interface is an area where it is almost impossible to reach a concensus if too many people are involved. Everybody has his own, a bit different and strong opinion how the UI should look like. While discussing code, application design or it's individual features is very useful if it's done on public mailing lists (look at openide, nbdev or nbusers), discussing UI is not very practical, because lots of the threads just lead nowhere.
The reason why NetBeans 4.0 and 4.1 have great UI is that there was a small dedicated team which was doing the redesign (kudos to them). I do not think that we would get a good result if the UI was designed by hundreds of people - it's better to have few dedicated proffesionals. One of the most important properties of UI is it's consistence and this is something what cannot be really reached if everybody has a slightly different opinion.
So I recommend the book to anyone who wants to find out more about functioning of opensource projects, especially of those which are sponsored by Sun (NetBeans, OpenOffice, Jini, JXTA and some of the Apache projects are the most widely discussed). Java is discussed in the book as well, including reasoning why compatibility is important and how that influences the choice of licences and development model.
I think we at NetBeans have what to learn from the book - there's always what to improve. I'll be glad to lend this book, so if you're from NetBeans or Sun feel free to visit me in my office to get it.
P.S. Ja jsem asi fakt grafoman :-)