On 2012-03-03, at 11:01 AM, Andrew Satori wrote: Jens wrote:
I don’t want to generalize, but I don’t think many of you have worked on projects
of the complexity of Xcode or Mac OS. They’re not that common.
But these experts have projects with over a thousand lines of code! They know everything!
Strange that you guys would say that. This morning, as I was showering, a few similar thoughts occurred to me:
(a) The order of complexity of Xcode is similar to that of OS X. Perhaps fewer files and lines of code (at an educated guess). But it will far exceed the capacity of any single person to comprehend the entire product design let alone the code. (Having worked, in the '70s, on IBM mainframe OS' .)
(b) Legacy code is the bane of innovation. The necessity to support crufty features stifles it. So the "enhancements" are added willy nilly often using chewing gum, rubber bands, and duct tape. Perhaps with no documented overall design to guide them although I could be wrong on this.
(c) We almost never get it right the first time! This is specially true for products that are complex. By the time we do begin to understand how to do things "more better" the legacy burden is far too heavy to abandon. The code base usually becomes obese, and time pressures to release become ever more a priority.
(d) When the courageous decision is made to start again, now that we have a better understanding, the new product goes through the same evolutionary process that the older one did.
In time it will get better until it too suffers from (b) and (c). Not to mention paradigm shifts such as procedural coding ceding the floor to the object oriented way.
(e) Documentation is a trailing indicator and always seems to be (though it need not be so.) The tech writers should be an integral part of the dev team. Todays technology permits us to easily make 5 minute podcasts on feature by feature basis. It would be great if they were done alongside the product as it is developed. (Sort of like a modern day How To document) This would take it out of the "folklore" domain. Early previews could be available to a select group of developers under NDA. And the final product could be made available, perhaps through Apple University or some such mechanism. (d) "You can please some of the people all of the time and all of the people some of the time. But you cannot please all of the people all of the time." To coin a phrase <grin>
Relax everyone. Here's a couple of $Can to go buy yourself a Tim Hortons Coffee.
respect….
Peter
|