Doing Web development you are most of the time doing "Server applications". The result is HTML, which is interpreted by the browser. The new wave of web development, a.k.a. Web 2.0, uses a lot of DHTML and AJAX. That brings another complexity level to the web development equation because now you need to "program the browser".
The good thing is that we have the W3C, IETF, IEEE and ISO to help guarantee a level of compatibility between different OSes and Browsers. The bad thing is that browsers don't do the same thing all the time. Yes, you can blame Internet Explorer as much as you want, but the reality is that even Firefox has different behaviors in different platforms and different versions. Bugs get fixed, features get added or removed, and in certain cases the browser developer must workaround a shortcoming of the OS with its own implementation of certain APIs.
That said, Sampa has a sophisticated error tracking system. Every time there is a problem on the server we get notified. Every time a page is not found, we get notified, every time there is a Javascript error on the client we get notified.
Each error report comes with a gazillian data points, including the full request data, the response data, the callstack, the error message, the state of the session, and other items.
With all that information, we usually identify and fix most obvious bugs in a couple of hours.
The Javascript Issue
Turns out that we keep receiving Javascript errors that are not bugs on the system and it's becoming a consistent noise on our error reports. The problem is that we don't really control the client. Users run a myriad of different browsers, on different platforms, with different dot-versions and different patches applied, but that is probably not the cause of those errors. The two main causes are browser extensions and poor network connectivity.
At the end of the day, I keep thinking how happy client and server applications developers are because they can -- more or less -- control all the DLLs and executables that their users will use and deliver a deterministic experience. I wish we could automatically upgrade users to a newer browser version, but we can't.
We just have to learn to deal with the fact that some users will never have a great experience -- and usually those are the ones that struggle the most with technology, and that is sad, very sad.
Are you opening a startup? Are you thinking about joining a startup as an executive (CTO, VP of Engineering?)? Then, you must read this book before you even quit your job!!!
Josh Petersen from Robot Co-op (43 Things) recommended it to me before I left Microsoft. I read it cover-to-cover and I was in awe at how much I didn't know about business law.
The cool thing about this book is that I could understand everything. It starts with what you can and what you can't do before you leave your current employer, to how to choose a law firm, how to establish a stock option plan, how to create a fair cap-table, how to protect your IP, how to raise funds, sell the company, etc.
It has two other good things: Real case studies, mostly of company that screwed up; and a fictional-case that they start in chapter 1 and go all the way to the end.
I love this book and I strongly recommend to any Entrepreneur or anyone working on a small startup.
If you click on one of the videos of Blip.tv and nobody has left a comment yet you get this message:
"...
It looks like no one has posted a comment yet. You can be the first!
..."
It looks like? You are not sure? Wow. That is what happens when you hire over the top developers that build neural-nets with fuzzy-logic to determine if there is a comment or not on a video.