I recently read a book – More Joel on Software.
Joel Spolsky, known for his blog was one of my favorite authors and thinkers since the 90s. Joel has very strong opinions on many aspects related to software development. From his stint with Microsoft – working on VBA, to the stints in New York in consulting and at a large media organiza
tion and then moving on to set up his own company, he has been very vocal on his thoughts on various aspects.
Whether it is how an organization should recruit – do referrals work? – or the focus on user experience, in the days when it was still called HID – Human Interface Design, or UI [just user interface] or the reason why the industry has shot itself in the foot by not having clear standards and allowing for uncoordinated interpretations when the standards are implemented, Joel has his point of view.
I used to read Joel’s contributions very regularly, as many of my interest areas were also his focus topics. This book is a collection of many of his prior art – including blog posts, articles and a lecture at his alma mater.
In particular, I liked his explanation of why Microsoft had to take pragmatic decisions – as against the design favored by the idealists – in the design of IE 8. Using an analogy of launching an MP3 player in Mars, as an industry segment creator, he explains how over time, the concept of ‘sequence to many’ mapping had to evolve and why it is not possible to avoid backward compatibility which many times limits the breakthrough improvements in a product or service.
When a company does not have a monopoly, or the monopoly due to an early mover advantage is broken, the customers start setting the expectations for compatibility. This is also a factor of economics, as older investments need to be protected! In the case of browsers, every publisher has implemented their own interpretations of some of the standards that it becomes very difficult to built a vendor or browser neutral interface. Even within a product line, every new version has varying implementations making the challenge even more difficult. The browser compatibility checking tools [based on W3C specs] can at best look at some of the syntactical elements. The actual rendering on a particular combination of hardware/OS/Browser versions can only be visually checked.
If you have even a slight interest in understanding some of the aspects related so software development, with a bias for the ‘computer science’ concepts applied in these situations, look up Joel’s writings.
This book has mostly contributions from the 2007-2009 period makes a good reading, His writing style makes it an easy read. You can possibly finish the book over a weekend.
While I am a fan of Joel, I do not always agree with his opinions. What do you think of his theories?