in one direction, so the error was not
reported until the middleware authentication server was configured. Ted found
a solution to this complex situation,
and tried unsuccessfully to explain it to
George over IM:
Ted: We were supposed to use 7236. Un-configure that instance and...
George: Can’t specify a return port... you
only specify one port.
Ted: You did it wrong.
George: No, I didn’t.
Ted: Yes, you did. You need to put in
George: We just didn’t tell it to go both
ways. The other port has nothing to do
Ted: Well, all I know is what I see in the
George: We thought that was the return
port. That is not a return port.
Ted: There currently is no listener on
[middleware server] on 7137. So use
7236. DO IT!
Ted wasn’t getting his point across,
and George was getting ever-more frus-
trated. George told his office mate to
call Ted (Adam was still on the other
phone), and the conversation immedi-
ately switched modes. With the nuance
of spoken words, Ted started to realize
that George fundamentally misunder-
stood what was going on. Rather than
continually telling George what to do
(“DO IT!”), Ted explained why. The task
had shifted from debugging the system
to debugging George, and they tried to
establish a common understanding on
which network ports were going which
George: What are you talking about?
7236? We thought that it came in on
7137 and went back on 7236, but we
were wrong, that 7236 is like an HTTPS
listener port or something?
Ted: It will still come in on 7135 to talk to
[middleware] server apparently...
Ted: What’s happening is it’s actually trying to make a request back, um, through
the 72... well, actually trying to make it
back through the 7137 to the instance...
and it’s not happening.
George: I know. I know that. But I can’t
tell it to...
Ted: Just create it with the 7236. Trust
George: Why? That port’s not…, that’s
going the wrong…, that’s only one way,
Ted: Trust me.
George: It’s only one way. Do you under-
stand what I am saying?
Ted: ’Cause it’s the [middleware] server
talking back to the [Web-server] in-
George: Yeah, but how does [the Web
server] talk to the [middleware] server to
make some kind of request?
Ted: 7135 is the standard port it uses
in all cases. So we had it wrong. Our as-
sumption on how it works was incorrect.
George: All right, all right.
Ted: If it doesn’t work, you can beat me
George: I want to right now. [Laughter
on both sides]
How did George get into trouble?
Like many failures, there were a num-
ber of contributing factors. George mis-
understood the meaning of one of the
front-end configuration parameters,
not realizing that it conflicted with the
figure 2. George engaged with at least seven different individuals or groups using various means of communication, including instant
message (solid lines), email (dashed lines), phone (dotted-and-dashed lines), and face-to-face (dotted lines). only George and his colleague
ted had direct access to the problematic server (double-solid lines).
january 2011 | vol. 54 | no. 1 | communications of the acm 49