David is certainly qualified for such a book, for example, he thinks the technical lead is the person who:
- Understands how all the technology fits together
- Can deeply analyze individual defects
- Can deeply analyze the pros and cons of various proposed defect fixes
- Understands the technical strengths and weaknesses of all the software engineers who work on the project
I agree 100% with him, so his coverage on s/w management is of less value and interest to me as a pure technical preson so I basically go for the "Part 3 - Symbian's Design Philosophy".
Chapter 15: Design Goals For Symbian OS
Chapter 16: Designing For Efficiency
Chapter 17: Designing For Robustness
Chapter 18: Designing For Usability
Chapter 19: Designing For Longevity
Chapter 20: Designing For Smartphones
As a "Software Architect", David shines here, he is able to explain many of the design decisions first hand at a deep level and in a very clear manner which provides valueble insights of Symbian OS, just give you a taste, here is excerpt from 16.7 Selecting C++:
[ ... However, we remained apprehensive about the sheer size of C++, and the number of different programming styles it supported. To constrain programmers, we evolved our own rules for how C++ should be used inside EPOC32:
To avoid design complications, we restricted multiple inheritance to cases in which the second base class is a specially designed ``mixin'' (we were pleasantly surprised to learn that both Taligent and Java imposed similar rules)
As mentioned above, we disabled the compiler's native C++ exception handling
We developed a naming convention that distinguished between classes with and without real destructors
Our rules for templates and inline functions are designed to avoid there being multiple copies of binary versions of the same code in the ROM
We developed custom classes for some very common operations - such as the ``descriptor'' class hierarchy for efficient text string and buffer manipulation.]