Blog : July 2007

Wednesday, July 25, 2007

David Hume: World’s First Object Modeler?

History will probably record that either Grady Booch or Peter Coad invented Object Modeling with either Booch’s 1986 treatise on OOD or Coad’s (with Ed Yourdon) 1987 introductory tomb on OOA. While the OO paradigm probably belongs to O.J. Dahl for his late 1960’s work on Simula, the concept of modeling object-oriented programs before they were turned in to code, did not appear until the mid 1980’s.

However, I’d like to throw out an interesting observation that much of what was needed for object-oriented modeling was first described by the philosopher David Hume in his 1739 book, A Treatise on Human Nature. In the first book of the volume Hume extends a great deal of effort on defining the concept of an idea and in describing how a simple idea can be composed with others to form a complex idea and that complex ideas can in turn compose others to form yet more complex ideas. Can you see the Composite Pattern emerging out of this? Once he’s established what an idea is, Hume goes on to define how ideas can be related and enumerates a set a of relationship types. In many respects Hume’s catalog of possible relationships is possibly more comprehensive than what might be available within our modern modeling languages such as UML.

In attempting to classify types of complex ideas, Hume coins the idea of mode. He writes,

The simple ideas of which modes are formed, either represent qualities, which are not united by contiguity or causation, but are dispersed in different subjects; or if they be all united together, the uniting principle is not regarded as the foundation of the complex idea. The idea of a dance is an instance of the first kind of modes; that of beauty the second.

Now consider whether it is possible to model the concept of beauty with UML in a discrete and encapsulated form? Hume had correctly identified the need for aspect-orientation.

All of this might lead me to the conclusion that our education system is too specialized and that it is seldom the case that an engineering or science major reads the classics in philosophy. And that perhaps a more generalist, broad education system would be better. As was the case in 18th Century Scotland. However, the irony here is that while Hume was establishing himself as the leading philosopher of the Enlightenment, engineering was emerging as a discipline driven by James Watt at Glasgow University. However, Watt was not a man of letters but a technician in a laboratory. The engineers of Watt’s day were as equally unlikely to have read highbrow philosophy as our modern-day engineering graduates. Technorati tag: Object+Oriented+Analysis, Object+Oriented+Modeling, Object+Oriented+Programming, Object+Oriented+Design, UML, David+Hume, Philosophy

Posted by David on 07/25 at 12:20 PM (0) TrackbacksPermalink

Tuesday, July 24, 2007

Wikipedia Woeful coverage of OO

I was researching my forthcoming blog post on David Hume and wanted to research the history of Object-oriented Analysis and Design. I decided to check Wikipedia as surely there had been enough time for someone literate in the academic past of the OO paradigm to have contributed a definitive piece on the topic. Sadly, I was mistaken. The articles on OO are woeful. Check out Object Oriented Modeling, and Object Oriented Analysis. Woeful! Woeful! If you are reading this and have the knowledge and background to do something about it, please find the time to do as Wikipedia suggests, “help Wikipedia by expanding it.” I’m particularly interested in reading the history and how OO developed out of earlier Frame Systems theory. I’m sure I speak for many in saying your contribution would be greatly appreciated. Thanks. Technorati tag: Object+Oriented+Analysis, Object+Oriented+Modeling, Object+Oriented+Programming, Object+Oriented+Design, Wikipedia

Posted by David on 07/24 at 12:23 PM Permalink

Rise and Fall of the Sticky Buddy

In response to the challenges of keeping our whiteboard up-to-date (see Do You Have Your Sticky Buddy? and Return of the Sticky Buddy), we’re introducing the use of a digital whiteboard application using a large LCD display. This is an experiment to see if we can get all the advantages of the whiteboard and its positive effect on collaborative working and ease of access to information, while coupling it to the accuracy of information tracked in Team Foundation Server (our electronic tracking system.)

Darren Davis created this application using the API on to Team Foundation Server. This application should eliminate the need for Sticky Buddies as remote workers will be able to update work items electronically via VPN. Once, we have the electronic board in regular use, I’ll report back on how it is going. We’re introducing it initially on only one project. We’ll continue to run the manual/analog sticky note whiteboards on other projects with parallel electronic tracking via TFS. If the electronic version proves a success then we’ll switch over entirely and sticky buddies will be history. Technorati tag: Agile, David+Anderson, Lean, Kanban, Software+Engineering, Team+Foundation+server, Visual+Studio+Team+System, VSTS, TFS

Posted by David on 07/24 at 05:31 AM Permalink

Sunday, July 22, 2007

The Return of the Sticky Buddy

In an ironic follow up to Do You Have Your Sticky Buddy?, Darren Davis, the development manager who coordinates resourcing on our sustaining engineering efforts and runs the daily standup for sustaining, was caught out recently. He decided to take a day out of the office to spend with his family. Unfortunately for Darren he’d assigned two change requests to himself. At the standup the next day, run in his absence by another of my managers, questions came up about both of those requests. The team asked, “Where’s Darren?” “He’s out of the office.” “Who’s his sticky buddy?” But guess what? Darren had forgotten to appoint one.

In a gentle revenge for this the team took this photograph, that features our “Darren Doll” (Yes! Darren actually supplied us with his alter ego, originally found in a store by his kids who thought it looked just like dad), trying to place a pink “blocking issue” sticky note that says “Darren is out on vacation.” The picture is now pasted to the whiteboard with the caption “Who’s Your Sticky Buddy?” as a reminder to every one that the team relies on accurate information on the board and folks leaving for vacation need to remember to appoint a proxy who can answer questions and resolve issues.

I continue to be impressed with the collaboration and camaraderie that exists around our Lean working approach and how that plays out in gentle peer pressure when someone forgets to play by the rules. It’s a self-regulating system that doesn’t need heavy-handed management intervention or supervision. That’s all part of the Zen of Agile Management. Technorati tag: Agile, David+Anderson, Lean, Kanban, Software+Engineering

Posted by David on 07/22 at 08:21 AM Permalink
Page 2 of 2 pages  <  1 2