I went to the Minneapolis Institute of the Arts with my friends today, and saw some amazing examples of art from the 14th and 15h centuries . We saw an exhibition of Venetian art Titian and the Golden Age of Venetian Painting: Masterpieces from the National Galleries of Scotland, and another The Mourners: Tomb Sculptures from the Court of Burgundy.
Afterwards, I was talking with one of my companions, who is a programmer. Last week was hard on him because he is on call as part of a rotation that comes to him once every three months. It was his turn to support production application issues. He was essentially up all night – Barbaric!
Yes, I know we must support our applications. And I’m quite glad he only had to do this night duty once every three months. That is not what bother’s me. It is the preventability of the sleep-depriving, all night diagnosis sessions. Of course, I had to chase after the root cause like a hound after a deer. If you don’t know what that is like, see this description of the beautiful painting Diana and Actaeon which was in the exhibit we saw today. The hunt:
<baying of the hound>
Friend: I was up all night resolving this problem with a package that was just released. Me: Was that really necessary? Could the work not have waited until the next day? Friend: No, this was an essential peace of the functionality. Me: Well, did the company test this change? Friend: Well, it was in a small part, outside the happy path. One might easily overlook it in testing. Me: Important enough to wake you up to fix at midnight, but not important enough to test. So do you have automated tests? Friend: This defect was in the User Interface (UI) layer. Me: UI has always been challenging to test. Is it a web application or other? Friend: Yes, it is a web application. And it uses a tricky, proprietary UI where the buttons move around, which makes it difficult for automated test tools to exercise. Me: But there are certainly some modern designs that make web software easier to test. There are more testable architectures like MVC. Friend: Well, we don’t get to use those approaches. We built our entire application based on a special UI framework. And we bought the company that made it so we could protect the source code. We are highly invested in it. Me: So your management invested in a UI framework that served a purpose. But it lacks testability, and they are unwilling to write off the investment to pursue approaches that would result in more reliable software. Friend: I guess so.
</baying of the hound>
At that point, I was tired of tearing the deer to shreds, and I let my poor friend go so we could go home and take our Sunday afternoon naps. I did not even bother to discuss web testing tools that will test many web UIs, regardless of their underlying architectures. It was clear by now that his company did NOT have a culture that encourages careful testing or automated testing. You can tell because he considered this simply normal operational practice. It was commonplace. He was not indignant, merely resigned.
This story hit far too close to home for my comfort.
I wonder – do you have a story like this?