Sobota VIII 20, 2005

Innovation Certainly Happens Elsewhere

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 :-)

Pátek VII 08, 2005

About Book "The Best Software Writing I"

I've just finished reading a book called The Best Software Writing. It's a collection of essays, collected and edited by Joel Spolsky. It usually takes me several weeks to read a book, but this one was fast, it is very readable so I read it in less than a week.

All the essays are about software development, some of them are serious and some of them are really not. Btw, majority of the essays is published on the web, one blogger made a nice list of all of them here. Anyway they're better to read from paper so I can recommend buying this book. Or if you are from Prague Sun, you can ask me to lend you the book ;-)

As Joel writes, software industry doesn't have a lot of readable books. My home library is full of Java, SQL, programming, and other software-related books, most of them are so heavy that I could easily use them in self-defense. So I appreciated that this book is full of stories and I don't have to think on every page whether I will survive reading till it's end.

What I've enjoyed the most: the essay about strong vs. weak typing - connected with coding productivity. The idea that "Starbucks doesn't use a two-phase commit" - very useful observation. "What to do when you're screwed" - reminds me of the time I was doing project management in the startup I worked before Sun, it nicely explains when you are just slightly screwed and when you are totally screwed. The essays of Eric Sink have very good insights on software markets. Clay Shrinky's articles are probably the least readable ones in the book but interesting, too, discussing the issues of social software whose waters are not so much investigated yet. Well and the final ruby essay is just crazy, even too crazy for me.

Neděle VII 03, 2005

NetBeans IDE Field Guide on Amazon

NetBeans IDE field guide is available from Amazon. I got my copy during NetBeans day, the book can help you learn use NetBeans efficiently and discover some of the features you may not have known before. This book doesn't cover developing NetBeans plug-ins, but I've heard some rumors about future plans... well, it would be nice to have another book for NetBeans developers, the older one is becoming obsolete.

Pondělí VI 20, 2005

New Cover of IDE Field Guide

As you can see, the assimilation process is continuing - it started by the splash screen, then the desktop icon and menu icon and now the Borg assimilated the IDE Field Guide cover. Buy our book. You will be assimilated. Resistance is futile.

IDE Field Guide assimilated

Apologies to those who do not know the Borg civilization. You can find more info here.

Neděle VI 12, 2005

The Cluetrain Manifesto and IDE Conversations

I am currently reading a book called The Cluetrain Manifesto. As you could guess I mostly don't read business books but this one cought my attention. Why? Because it's about open conversations.

The main idea of the book is that markets are conversations and for a company to be successfull it needs to be able to communicate with it's market in an open way. This is in contradiction with the culture of mass media, where companies communicate with it's customers mainly using advertisements, PR articles, boring corporate web sites and similar not very human ways. The book claims the power of human voice is regaining it's importance with the wide acceptance of the Internet.

Firstly, there are some things I really don't like on the book, mainly that it's very dogmatic, saying that this is the only way in the future. The whole book has an undertone "we know it better" which reminds me of some of the Linux fanatics (don't get me wrong, I like Linux, I just don't like it's fanatics).

The dogmatism is the only bad thing about the book, for the rest it's full of very good ideas. The 95 theses on the website are definitely worth reading, they give a summary of the ideas. To my surprise I agree with many of them. The manifesto is signed by James Gosling among several other employees of Sun Microsystems, one of the co-authors is from Sun, too.

I've been actually implementing many of the concepts from the book, even before I read it. In connection with NetBeans, I believe success of NetBeans depends largely on it's community of users. Sure, we still need to have a great product with lots of useful features. But that's not enough. There are many companies who failed even though they've created a perfect technical solution, but didn't communicate well with their market. Silence in this case is fatal.

We can't meet most of our customers in person like usual companies do. We meet majority of people using NetBeans only through the internet. Our market are the most "hard core" users of the internet, people who use it daily, they communicate, amuse themself, search for information, solutions for their problems or just lurking around looking for anything interesting for their brains.

We cannot use any of the traditional marketing tools, like brochures writing our products are the best of breed with quotes of the CIOs who claim our product saved them completely. No, people using IDEs are very critical. They don't accept any marketing bullshit. Our market is smart, whenever somebody publishes incorrect information, the market almost immediately reacts - via blogs, forums, mailling lists, whatever. Suddenly you can see responses negating this information. Our market is very fast. News spread in a matter of few days (no matter if it's good or bad, although bad news seem to be spreading a bit faster ;-)

What matters the most when communicating with developers who use the IDE? (strictly my opinions)
  • Conversations - developers want to discuss, evaluate the IDEs, get answers on their problems, discuss future of the IDEs, get latest information, help each other or just chat about the features. Two-way communication is necessary, not listening is fatal.
  • Sincerity - the IDE market is smart, any unsincere information turns against you very soon. Being unsincere makes you irellevant, the trust you might have gained before is lost.
  • Openess - crossing the company firewall and providing openly information about the newest development. Waiting for the next release to surprise everyone may be fatal, developers may swith in meanwhile to another IDE which communicates more openly.
  • Human voice - developers don't want to read PR bullshit, they want to talk to a human being. They want to read stories, discuss them and provide feedback through conversations.
  • Fun - developers want to have fun while using the product and discussing it, any software development should be fun or there's something fundamentally wrong.
Next to it, building the community is important. It feels great to be a part of active and supportive community. To see people helping each other just because they want to, not because they get paid for it. Community around the IDE is what makes people happy for using the product and it's providing a great support for anyone having any issues or questions.

How are we doing with all this in NetBeans? Not bad, but it could be better. I think there is a tremendous progress compared to what was few years ago, I know NetBeans from that time only as a user.

So this is my vision of success of NetBeans (yeah, I know features ARE very imporant, but as I wrote - you can have amazing features but without communicating properly with the market, you are doomed to fail). Anyway I hope this post will not create too much of controversy...

Update: If you've read the book, you'll certainly enjoy The Gleutrain Manifesto. Extremely funny if you know the book. Use the force, Luke!

Čtvrtek IV 28, 2005

New NetBeans Book

Daniel Templeton wrote in his blog that a new NetBeans book is being prepared. Good news, but I have better :-) You can read the draft of the book for free here:

Isn't opensource great?

Čtvrtek IV 21, 2005

UI Design for Programmers

I've just finished reading a book from Joel Spolsky called UI Design for Programmers. I can recommend this book to anybody working in software development, no matter what you are doing (as long as you are doing something). It is about designing software for real users - it won't teach you how to create good dialogs, but it will help you to think as a user. Why is that important? People working on software forget one important difference - you already know a lot about the program you create and care about it, while normal people know almost nothing about your program and don't care so much about it.

By reading the book you realize some hidden facts, like most people just don't read manuals - you knew that, didn't you? But it goes further, most people don't read descriptions in dialogs either - unless really necessary. So they just click on the error message you gave them, ingoring the content. Very bad users. But how many times did you click the button without actually reading what's in the dialog? Let's admit it, we all do it from time to time.

Joel is great in explaining simple principles - to understand them you don't need to have a degree in nuclear engineering. Still these principles are a bit surprising. By showing some of the annoyances of software we are using every day (web browsers, office suites, e-mail clients, etc.) you get a lot of knowledge of what \*not\* to do when designing software. Every programmer thinks that users like many options, because then the software they are making is greatly configurable. Wrong! Most users hate many options, because they don't understand them - they didn't spend all those months by designing the software as you did. They don't care if your program's database should be small, medium or extra large with double chips and hot mexican sauce. All they care about is that the program does the job they want from it.

What I also like on the book is it's size, it has 134 pages with a lot of pictures. Joel is always to the point, you read the book with one breath - it's very easy to read and amusing. Probably inspired by opensource, Joel published big part of the book online on his webpage here. I recommend checking out the other articles he wrote, there's a lot of truth about software development. I have to admit that Joel inspired me with his writing style and his posts were one of the impulses for me to start to blog. Thanks, Joel!


Roman Strobl


« červenec 2016