AGILE. The new corporate buzz phrase for hacking on the fly. Keller MBAs in a room sounding like a yard full of chickens chanting “cut costs, cut costs, cut costs” have been falling all over themselves because when you remove engineering from “software engineering,” it’s cheaper. You can even use lower skilled, lower cost developers because they don’t have to know much to do AGILE.
Software engineering is the application of principles used in the field of engineering, which usually deals with physical systems, to the design, development, testing, deployment and management of software systems.
AGILE is not software engineering
AGILE isn’t even remotely close to software engineering. There are no engineering principals involved. This was created by a group of guys drinking in a bar at a ski lodge/resort and writing on napkins. That is the total amount of science behind it.
You throw a bunch of user stories into a backlog. Sometimes user stories get grouped into an epic. There is no requirement, none, that software engineering occur. Automated tests are generally written to just check a box. Generally only testing the happy path through the code.
Engineering would require a set of test cases written in a document based completely on the written specification. These test cases are exhaustive, time consuming and in many cases painful. When code makes it through such a process (engineering) it is solid. When code makes it through AGILE automated test cases there is a high probability it doesn’t even work.
Bottom feeding quality
I must state up front that I have never worked for Boeing and have no direct knowledge of the software development processes used for this plane. I do know that corporate America can’t roll out AGILE fast enough to slash development costs, no longer caring about producing bottom feeding quality like Microsoft. (Microsoft Bob, Zune, Microsoft Money, Windows Vista, the list goes on and on.)
What drove me to create this post was this article. In particular, the portion of the article nobody is talking about.
What is different here is: the MCAS commands the trim in this condition without notifying the pilots AND to override the input, the pilots must deactivate the system via a switch on a console, NOT by retrimming the aircraft via the yoke, which is a more common way to manage the airplane’s trim.
Actual engineering would not have allowed a system like this to see the light of day. This is exactly the kind of “solution” you get for a user story. Everybody wants to talk about the single sensor, but right here, the AGILE solution created in a vacuum just to solve a story is where the focus should be.
An AGILE developer working on a user story does not have to take into account industry practice or prior art. Odds of any software developer working on this code holding or having held a commercial jet pilot license are infintesimaly small. Odds that visa workers were used to create this system are rather small if this chart is correct.
Adding insult to injury, pilots don’t get a simulator. So, now we have what appears to be an AGILE solution to a user story which flew in the face of industry norms AND no simulator for the pilots. With the bulk of the other planes they fly they simply use the yoke. If they have to do something new during an emergency, they need the muscle memory.
Again, I wasn’t part of the software development team and have never worked for Boeing but this story screams AGILE. It is exactly the kind of low quality solution such development practices churn out.
AGILE really needs to be banned in every industry where human lives are involved.