Early in June I had the privilege of giving a talk at the Boeing site in Huntington Beach, as part of their Distinguished Researcher and Scholar Seminar series. I always appreciate the opportunity of speaking at industry events, for it gives me an occasion to learn more about the challenges and issues facing high-tech companies and consequently hone the direction of my research. In trying to decide what my seminar would be about, I decided to leverage a surprise I’d had earlier in the year. In February I needed to be away from campus, and hence my classes, due to some conference-related travel. For my graduate class on software architecture, I decided to ask Dr. Eric Dashofy (an ISR alum now at The Aerospace Corporation) to guest lecture. I figured the class was in good hands and that the lecture wouldn’t be too much work for Eric since he is one of my co-authors (along with USC Professor and ISR faculty asssociate Nenad Medvidović), on our textbook, “Software Architecture: Foundations, Theory, and Practice.” When I returned from the conference I heard that the class had gone very well and the students were excited by Eric’s talk. But then I saw the title for his lecture: “Software Architecture is Bogus!” Uh-oh.
As it turned out, Eric had taken a brilliant pedagogical line: argue the exact opposite of what the students expected (and what I expected!), and make them figure out where the truth lies. Eric’s points were solidly grounded in the everyday practice of software engineering. He discussed, for instance, the nastinesses associated with building modern web-based applications, the degree to which choice and use of implementation frameworks dominates most application architectures, and how such frameworks even inhibit reuse – the very opposite effect from what they are supposed to do.
Given the enthusiastic discussion — both when Eric was lecturing in class and later when I returned to campus — I figured we could employ this idea in a dynamic back-and-forth style in the talk at Boeing. Hence the result: Eric and I both spoke in the seminar, with the session titled:
“Software Architecture is Bogus”
Speaking (arguing?) alternately, we covered a variety of architecture-related issues. It seemed that adopting a confrontational style in analyzing technical perspectives or opinions can serve to really highlight the key issues, identify ways in which a good idea can become subverted or rendered impotent, and clarify what the essentials really are.
The central point in our talk is that for system design conceptual integrity is paramount. Not a surprising conclusion, by any means, but conceptual integrity – how to achieve it, how to assess it, how to maintain it – becomes a fine touchstone to apply to any putative process, notation, language, or technology. Many software engineering techniques start off focused on or supporting conceptual integrity, but then seem to lose their way over time, as they take on other goals and start serving other masters. Others technologies, however, do keep the eyes on the prize, and are the valued tools in system development. I hope that my work is always “kept honest” by being challenged from many perspectives, and I hope that you will try this strategy with your personal favorite ideas and technologies.
In other news, you may recall that I focused in an earlier issue of the ISR Connector on the degree of involvement ISR staff, students, and faculty had with the 2011 International Conference on Software Engineering, which was held in Honolulu this past May. I am happy to report that the meeting with its 1070 attendees, was a technical, social, and financial success, a trifecta that was our goal. A critical element in the meeting’s success was the tireless contributions of ISR’s Technical Relations Director Debra Brodbeck. So one last time, “Mahalo, Debi!”
Best wishes for a great summer!
ISR Director Richard N. Taylor