When I was in my early days as a software developer, I thought that the most important aspect for a software product organization, was software development. Code was everything and the single determiner of the success. I was told, by none other than the great Joel Spolksy, that all you have to do is to polish your code, add in features that your customers demand, and you would be doing fine.
For a software developer and a geek, that was an assuring and comforting theory. We the geeks have seen too much injustice in the world. I mean, geeks, even though they were smarter and more hardworking than the average Joe the bond salesman, were nevertheless earning not even half of Joe's income on average. To add insult to the injury, not only there was a wide disparity between the IQ and earning power, but the world perception didn't seem to value the geek's contribution to it extend that it should. Geeks have done tremendous contribution to the world, but the society ( and the opposite sex) still treat the geeks in a polite disdain because it rather judged a man by his outward appearance than his inner content. This kind of injustice was very disheartening. But thanks to the internet and Information Revolution, finally, the moment of the geek has arrived. Hua haha!
But as I grow in maturity ( meaning suffering enough bumps on head), I gradually come to the realization that the above just-improve-your-code-and-you-do-fine theory is a total nonsense. FogBugz, the Joel Spolsky's brain child, was
ironically a case in point. There are hundreds, if not thousands of bug trackers out there on the Internet because they are easy to write and are ideal for programmers who don't know any other domain knowledge. And how hard a bug tracker can get? Certainly not very hard. They are many flavors, licensing schemes for bug trackers, ranging from the very expensive, to the completely free and open source.
The thing that separate FogBugz from other bug tracker system, is Joel's blog.
Joel's blog is immensely popular among software developers. That blog gives him a hearing audience. One can safely say that without the blog FogBugz will be just another bug tracker that you won't even bother to look at. I am not denigrating FogBugz; I use FogBugz in my work and in my personal life; it's very pleasant use, and I will recommend it to anyone as long as they are not tight on budget. But the point is that FogBugz can get to point it is today is because it gets a head start from the blog, and the revenue that funds its continuous development up to this day.
The same can be said of StackOverflow, a clone of Expert Exchange-- minus all the annoyances.
And if you look around, it's not hard to find that the number of software that stands out purely because of its code are very, very few. Back in 80s Apple was the first company that introduced the modern GUI as we know it, but it was Windows that dominated the world. Microsoft Access was a complete failure when it was first introduced ( there were serious bugs that caused data corruption), and when it came to the market there was FoxPro and other desktop RDBMS that were many times more superior. In the end it was Access that flourished and FoxPro that perished, thanks to Microsoft's decision to bundle Access with other more successful office products and sold them as a suite.
Even in the ultra competitive trading world, the algorithms are often not the most important determining factors. Quant shops and investment banks go to extra lengths to protect their trading algorithms, in the name of protecting their trade secret. But to think that they-- or anyone else-- have a killer algorithm that no one else has is just naive. The quants are going to the same conference, reading the same journal papers and implementing the same ideas. If there was a killer algorithm, it would have been implemented by a fair share of the quant shops in a short time and thus drive down its usefulness. The reason big sharks like Goldman Sach make money and other shops don't is because their computers are more powerful, and are nearer to the stock exchange. Of course their HFT and stats arb algorithms do play a role, but without the underlying infrastructure it's pretty hard to make any money.
So, my dear developer ( I am looking at the mirror here), forget the idea that if you are a good coder you are destined to be successful. Code is not that important, marketing is.