Wednesday, January 13, 2016

QOD - Software Development Methodologies

Waterfall replicates the social model of a dysfunctional organization with a defined hierarchy...
...Agile, then, replicates the social model of a dysfunctional organization without a well-defined hierarchy.

Michael O Church

Monday, December 14, 2015

Apple meets Google - at Hollywood and Vine

Imagine the scenario:
Google Self-Driving Car is driving along, integrating smoothly with all the other Google Cars which are in turn behaving in a predictable fashion never achieved by mere human drivers. Everything is a Geek's paradise. The Google Car pulls up to a four way stop. Thankfully, Googles engineers have solved the four-cars-at-an-intersection problem. Thousands of Google Cars have cleanly taken turns at four-way stops every day.

At this particular intersection something is different. Across from the Google Car is an iCar (manufactured by Apple) signalling to make a left turn.

The Google Car detects the other vehicle, runs through the driving rules devised to assure safe passage in this situation and starts into the intersection.

At the same time the iCar detects the Google Car, runs through the driving rules devised to assure safe passage in this situation and starts into the intersection, turning left.

The Google Car brakes to avoid the imminent collision. The iCar does likewise.

The Google Car starts forward.

The iCar starts forward.

Both cars brake.

The cars are at an impasse. Traffic backs up. Human technicians are called in.

Geek's paradise lost.

Some may quibble with the details here:  this or that technology might avoid this or the other part of the story.  My point is that the future scenarios in which self-driving cars rule the world seem to rely on the absence of human drivers. Humans are unpredictable.  It is easy to see why software developers want to remove them from the environment.

However, humans are not the only unpredictable element in your driving world.

Among the software elite, there is a movement toward what are being called microservices.  This represents the idea that if we can tightly define the data passed between two components (say, the program that takes your hamburger order and the one that debits your bank account), you avoid the vast majority of computer problems in the world.  The giant hole in this utopian vision is that the first component has to make all sorts of assumptions about what the second component is doing with this information.  Any small differences between the assumption and the actual behavior lead to nasty and difficult to find errors.

Normally, the programmer who creates the component throws all sorts of tests at it, even makes sure that every line of the program is exercised at least once.  Unfortunately those tests all incorporate the same assumptions that will cause errors out in the real world.  In our Google Car example, we can assume that Google has tested their driving computers in virtual and real world situations using other self-driving cars (Remember, humans have been banned) - mostly other Google Cars. Even the non-Google test vehicles will make assumptions about what the Tesla or iCar would do in a given situation.

The result of all this testing will be a smooth, hands-off transportation system.  Why? Because all the glaring problems will be found and corrected... and many the biases/assumptions of one Google Car fit perfectly into what the other Google Car is doing so that nothing unpredictable happens.

What happens when an iCar shows up that has been tested in exactly the same manner - with certain Apple programming biases fitting together so that nothing unpredictable ever happened?  In our example above, subtle differences in both cars programming convinced each that it had the right of way.  This never happened during testing at Apple because the iCars are programmed with the same, invisible assumptions.  Now think about rules for changing lanes.  Pulling out of a driveway.  Setting the speed for passing another vehicle.  Keeping a safe distance between vehicles.  The opportunities for mismatch are legion.

I am not criticizing the engineers and programmers involved.  They have taken on a daunting task.  I just don't like hearing excuses about the only problem being human drivers when in reality the entire enterprise is riddled with potential problems that are normal and predictable in engineering complex systems.  Not addressing this up front is a sign of the kind of hubris that has become a little too common in my industry.

Don't Download Cars!

As a follow-up to my ruminations about software executives getting into the car business, this...

But don’t call the Model S an autonomous car—it’s not quite there yet, though Musk says his vision is to eventually produce fully driverless cars without steering wheels or pedals. Instead, Tesla is billing the new capabilities as “autopilot” features that will occasionally require hands on the steering wheel.
“We explicitly describe [this software update] as a beta,” Musk said at a press briefing today (Oct. 14) in California. 

Never, NEVER, NEVER load Beta software onto a freaking CAR! Beta code is by definition not ready for wide release. You can't expect normal drivers to treat your Beta as a test. This is so mindnumbingly stupid that I am considering burning my Elon Musk fanboy card.

Thursday, October 22, 2015

You Can't Download a Car

When I was wee slip of a computer science student, I participated in a number of Software Engineering courses where the topic would come up: "Why don't we produce software like we do cars?"

The answers ranged from "Software is different" to "We don't the discipline NOT to make a tweek just as the software is leaving the factory"

Well, we are now getting the answer to the corollary: "What happens when software engineers start making cars?" It turns out that we could have predicted the result.

I am normally a fanboy for  Spacex and Elon Musk but this bit of news is worrying.  Seems that all those super-modern, super-fast electric sports cars made by Tesla are starting to show their age and owners are reporting issues raging from failing drive trains and charging systems to repeated problems with door handles to squeeks and leaks.

While a rocket needs to produce high performance for a limited amount of time, an modern automobile is expected to last 10+ years without major problems.

It will be interesting to see what happens as Google and Apple get into the car business.  Will their hubris as the darlings of the entrepreneurial world lead to their stumble in a business that requires patience and attention to unsexy issues like door handles instead of  bigger-than-life personalities and planned obsolescence?

Sunday, November 25, 2012

Bill Nye the raving lunatic?

My Sunday school class demonstrated today why I probably need to find a new hobby.  In the course of starting a discussion of Adam Hamiltons "Why?" (a standard theodicy apologetic) our class president brought up Bill Nye's recent video "slamming" creationism.  The response from those in attendance was self assured muttering about "can't combine faith and science" etc.  I suppose some of those who remained silent were as uncomfortable as I was but I wanted to scream, "You can't faith away the evidence - the earth is a couple of billions years old!!!"  Of course I had to hold my tongue and then sit on my hands while the class defended innocent suffering with silver-lining anecdotes.  Suffice it to say, I was in a bad mood akl day after that.

This afternoon, I decided to look at the Nye video to see just how much foam was actually flung from his lips.  I mean, based on the reaction, I thought that he must gone all Rush Limbaugh on them.  Well here it is.  Jeez, he is the calmest guy I have ever seen.  He is right; teaching that the evidence of scientific investigation is of no value when it contradicts faith is to devalue the scientific enterprise as a whole.  Not a good idea if you want a technologically advanced culture.

Edit: meant to say he "slammed" creationism, not evolution

Tuesday, July 31, 2012

"Free" Markets

“There is no such thing as a free-market... A market looks free only because we so unconditionally accept its underlying restrictions that we fail to see them.”
Ha-Joon Chang

(HT Connor Kilpatrick)

Monday, April 9, 2012

What's Happening to Journalism?!

First you have NPR's statement that they will no longer practice opinions-on-the-shape-of-the-earth-vary reporting.

Next you have NBC firing the producer who "tweeked" the Zimmerman/Martin 911 tapes.

And now The National Review - THE NATIONAL REVIEW, I say! - fires a contributor for a piece on protecting yourself from "black people"

It's almost as if journalists care about the truth!

All joking aside, Strauss and Howe's Generations and The Fourth Turning predicted that society would face a crisis of failing institutions that would require a re-working of of our national institutions and norms. I do believe that the above is one manifestation of this process of renewal. Another may be the Supreme Court's flirting with dismantling the mechanism underlying the operation of Medicare and other state/federal programs.

Thursday, January 5, 2012

The Future has Arrived...

... and it's directed by Terry Gilliam!

Friday, December 23, 2011

It's Not the Size of your Footnotes, It's What You Do With Them

Am I the only person who thinks a 800 page book on miracles that is loaded with another 400 pages of appendices, footnotes, bibliographies etc is trying a little too hard to appear rigorous? In other apologetic books, footnotes and bibliographies have been stocked with references to the author's own works and books that had nothing to do with the topic at hand or were referenced out-of-context.

The hype surrounding Miracles: The Credibility of the New Testament Accounts by Craig Keener is already touting its authoritativeness based on its size. I just know that no christian is going to verify the contents of the bibliography and I can't shake the feeling that Keener's enterprise relies on that fact.

[edit: I had 400 pages of text and 800 of references when it should have been the other way around]

Monday, November 7, 2011

King or Kingdom?

This Story of Israel meme is kicking up a lot of discussion about how interpretations of Kingdom of Heaven/God affect Christian practice and outlook. Reading various blogs , especially Scot McKnight's discussion of his gospel of Jesus, a question has introduced itself in my mind.

Is the gospel about Jesus primarily or about the Kingdom itself? Jesus spends a lot of time discussing the nature of the Kingdom and what is expected of his followers behavior - supposedly in relation to their role in the Kingdom. In fact, compared to the Kingdom discussion, Jesus' kingship hardly comes up in the Gospels. In the synoptics, rumor equates Jesus' activity with that of the Baptist, implying a messenger role for Jesus. Even in John's Gospel, Jesus casts himself as a servant doing the will of the Father, not his own.

I am increasingly thinking that McKnight is off on a tangent that, while intellectually interesting, will prove a theological dead end.