Software failures
can have all sorts of bad consequences, ranging from minor annoyances up to and
including death. On that scale,
the very public problems that people currently run into when they try to use
the Affordable Care Act's website to buy federally-mandated insurance are
somewhere in the middle. (Since
President Obama is on record as having no objection to the term "Obamacare"
for the Act, I will use it too from this point on.) To my knowledge, no one has yet died as a direct consequence
of not being able to use the site.
But on the other hand, it's hard to think of another software-related
issue that has garnered so much negative publicity in as short a time. While there is plenty of blame to go
around, the question I'm interested in today has to do with the ethics of
software engineering, and what lessons this debacle can teach us along those
lines.
Software
engineering is a relative latecomer to the engineering fold. There were only a few dozen
programmable computers in the world as late as 1950, and the first U. S.
undergraduate programs in software engineering were not accredited until
2003. But few types of engineering
involve the average non-technical customer more directly than the
design of high-volume websites, which requires strategic and organizational
planning as an essential aspect of the overall process.
According to
published reports, the rollout of the www.healthcare.gov website was something
of a rush job. For political
reasons, the Oct. 1 deadline could not be postponed, and many changes were
being made right up to the last minute.
Finally, there was little time for beta testing with a small group of
friendly and informative users who could find problems in time for them to be
fixed before the main rollout.
I am glad I was
not one of the people who worked on this website, but I can sympathize with
them. My last major engineering
job before deciding to go back to school for my Ph. D. was with a firm that
wanted to make cable boxes, the little thing that sits on (or now, under) your
TV and selects channels. The
company had never made a large-volume consumer product before. Up to that time, most of their
customers were military and scientific users who paid plenty for a few
hand-crafted instruments. Despite
the best efforts of our engineering team, the new box never worked right. At one point I had a conversation with
an older engineer who said, "I'm looking at your group and what I see is a
bunch of trapped engineers."
I later learned that the company ended up recalling all the boxes from
the field at a cost of six million dollars. By that time, I was in grad school and dealing with problems
of a different sort.
Sometimes,
engineers are placed in an impossible situation where even Superman couldn't
deliver the goods as requested, and minimizing damage is about all you can do,
at least to start with. The
Obamacare website was a large and complex project that everyone knew would both
receive tons of traffic from all sorts of people, most of them technically
unsophisticated, and would also draw intense media attention, much of it
potentially hostile. If it had
been up to the software engineers, the project might have been
"frozen" (no more major changes allowed) up to a year in advance of
Oct. 1, and early versions would have gone through beta testing with larger and
more varied groups of test subjects with plenty of time to work out the
glitches before launch.
Obviously, that
didn't happen. At the risk of
sounding biased, I will state here that the way this project was carried out
seems to reflect a mindset which is evident in other actions of the Obama
administration. The President and
a circle of powerful like-minded people in the administration have a set of
ideas which they all agree on as The Way Things Should Be. Philosophically, they are idealists in
the sense that they start with ideas, and then try to make reality conform to
their ideas. Evidently, the
political people in charge of implementing Obamacare were coming up with more
ideas for the website right up to the time that it was turned on, and disregarded
the hard engineering realities of designing a website that must handle many
millions of users who are faced with a fine if they don't sign up for insurance
through the site by the end of the year.
The problem with
philosophical idealism is that it sometimes collides with reality, and in such
collisions, reality always wins.
In such encounters, idealists may or may not learn the error of their
ways. Of necessity, they end up
doing what reality requires them to do, but often in a way that is inefficient,
expensive, and more trouble than otherwise. A new deadline of November 30 has just been announced as the
day by which www.healthcare.gov will be working. Jeffrey Zients, the Chief Performance Officer of the United
States, is now in charge of fixing it, and has declared publicly that
"Healthcare.gov is fixable." Any system that is not physically impossible is fixable given
enough time and resources, but only time will tell whether Zients and his
underlings can get the repairs done on time.
But the rocky
startup has added more fuel to the fire of ill feeling that the U. S. public in
general harbors toward the federal government. In a poll by the Pew Research Center for the People and the
Press released last week, only 19% of those polled said that they
trust the government in Washington to do what is right just about always or
most of the time. Before about
1970, most people did have such trust, but the trend since the early 1960s has
been downward, falling below 50% around 1973 (the peak of the Vietnam War) and
has risen above 50% since then only once:
right after 9/11/2001 and the first war in Afghanistan. The fact that most people in the U. S.
no longer think that their government can be trusted in this way goes beyond
partisan politics to signal deep structural problems in the way power is
allocated and used. This is much
more than a problem in engineering ethics, but engineers have to deal with it
like everyone else. And those
working on www.healthcare.gov bear a particular responsibility to exhibit
leadership in the days to come.
Sources: An article published
online on Oct. 25, 2013 by Robert Pear and Sharon LeFraniere at http://www.nytimes.com/2013/10/26/us/politics/general-contractor-named-to-fix-health-web-site.html
describes Jeffrey Zients's statements about the proposed repair of
www.healthcare.gov by Nov. 30. I also
referred to the Wikipedia article on Jeffrey Zients. Information on the history of accredited software
engineering programs was taken from Chapter XIII, "Software Engineering
Accreditation in the United States," by J. McDonald, M. J. Sebern, and J.
R. Vallino, in Software Engineering: Effective Teaching and Learning
Approaches and Practices, H. Ellis, S. Demurjian
and J. F. Naveda, (eds.), Information Science Reference, 2008. The statistic on public confidence in
the U. S. government was published online by the Pew organization at http://www.people-press.org/2013/10/18/trust-in-government-nears-record-low-but-most-federal-agencies-are-viewed-favorably/.
My experience with projects in general is that they are always overbudget, always late and the result is sometimes disappointing.
ReplyDeleteBut no one wants to hear that. That's negative thinking and you need to think positively. Anyone who says otherwise has an attitude problem and is not a team player.
Yes, people are always adding features they want to see implemented. It is very hard for a project manager to lock a project design because he can be overruled by his boss, or his boss' boss and so on.
Companies like Apple have the same problem; because a particular deadline needs to be met, product is shipped that isn't up to spec and then needs to be recalled.
It's the way of the world. People make commitments that can't be made good on.