Friday, February 5, 2016

Geek: there's a lot of truth...

Geek: there's a lot of truth ... in this short article about the dangers of abstracted, de-duplicated software design.  I've been involved in debates about this exact topic at two different companies, and was surprised the first time (and amused the second) when it quickly evolved into two fairly well-defined camps: what I'll call the pragmatists vs. the theorists.  Basically the pragmatists were saying
“Your lovely design, while laudable and compliant with all the right texts, doesn’t actually work well in the real world!”, 
while the theorists were all
“You heathen!  How dare you advocate violating software design law number umpty-squatch?” 
Since in both cases I was the arbiter, I ruled for the pragmatists.  The first time this happened, I actually had two engineers quit, they were so upset.  We were better off for that.  The second time, I talked with the leaders of the theorist camp before I announced my decision generally, and several of them threatened to quit if I did so.  When I told them I was ok with that, they backed down, and by the time I announced it more generally, they had somehow accommodated themselves to my decision.  One of them told me, long afterward, that he had waited for months for the evils that would inevitably result from my decision to manifest – and when they never did, he realized that he might accidentally have learned something valuable :)

In nearly all my experiences in which the theorists had their way, the results were horrible.  The example of that that comes most readily to mind was at the now-defunct Stac Electronics, where a cabal of fervent object-oriented design devotees managed to take the leadership of a major development project.  Hundreds of pages of beautiful diagrams, thousands of man-hours of meetings, and innumerable design documents later – we had a beautiful but all-but-immutable design ... that didn't even come close to (a) meeting our functional requirements, and (b) meeting our performance requirements.  Disaster.  The leadership of that team lost their jobs, and the company lost over a year of time-to-market.  I was part of the team that came in to clean up the mess, but the dot-comm bubble smacked us around long before we were able to finish that.  Very sad, for all concerned.  Big lesson to me. 

Theorists belong in academia or solitary confinement.  Pragmatic engineers ... they're the ticket!

Chang'e 3 / Yutu photos released...

Chang'e 3 / Yutu photos released...  Chang'e 3 is the Chinese robotic lunar lander that successfully touched down on the moon in December 2013.  Yutu is the lunar rover that deployed from Chang'e 3 and was able to do some science work (and take photos!) before it broke down.  The Chinese space agency just released a trove of photos, including the one at right (glorious full resolution version).

I still marvel that our understanding of the moon went from the fuzzy photos and wild speculation of my youth to the the close, high resolution photos and detailed knowledge of today.  I remember well how serious scientists in the mid-'60s warned NASA that the Apollo lunar landers were likely to be swallowed up by the miles-thick powdery dust that likely blanketed the moon's surface.  Not so much :)