July 16, 2002
6:15 PM Pizza and discussion
Murray Herrick Bldg, Rm 155
A Discussion of Two Different Approaches to Delivering Value Through Software
In July, we will be discussing two articles with very different approaches to solving the difficult problem of delivering value through software. The first, by C.A.R.Hoare (http://research.microsoft.com/users/thoare/Software;_barrier_or_frontier.pdf), advances mathematics as the ideal language for specifying requirements at all levels of abstraction. Because mathematical theory models all levels from the customer's stated service need through the software component, network and hardware collaboration, it is viewed as a vehicle to a formal proof of design validity in advance of its delivery. Because of this prescience, it is viewed as a way for management to control the delivery of software with minimal surprises.
The second article (downloadable from http://www.adaptivesd.com/articles/PMEdge.pdf) is representative of the agile movement in software development and steers away from a formal specification of the software to be delivered in favor of a more experiential approach to design. In this view, the actual requirement is indeterminate because of both tacit requirements (referenced by Hoare) and because the requirement changes as the software approaches the customer's real need. Highsmith's Adaptive Software Design lifecycle is being incorporated into the Alistair Cockburn's Crystal because of its alignment with Crystal's values, understandings and methods.
If attendees could review these articles, we might be able to discuss our own experiences with different versions of these process models and suggest a number of heuristics that could help project managers new to the O-O world of development. For ideas on how this information might be captured, see Arthur Riel's Object-Oriented Design Heuristics.