Login
Register
2006

Wednesday, December 27, 2006, posted by @ 8:26 AM
More On Collaboration
Check out this wiki for the workshop on supporting the social side of large scale software development.


Tuesday, December 26, 2006, posted by @ 9:52 AM
Five Things You Don't Know About Me
Bill Higgins tagged me and so I'm compelled to reply:
  • The first instrument I learned how to play was the accordion (I now play the Celtic harp, bowed psaltery, hammered dulcimer, guitar, and a bit of piano and recorder).
  • I collect stuffed giraffes, wizards, and dragons.
  • Sushi is my favorite food (although chocolate is my favorite comfort food).
  • Were I not into software, I'd probably be an itinerary musician. Or a priest.
  • I'm allergic to mean people.
I switched from the accordion, because it quickly became clear to me that that instrument was not exactly a babe magnet.


Monday, December 18, 2006, posted by @ 11:47 AM
Hm....
Sorry, but it appears that there are some glitches with the developerWorks mirror of my blog; a few of my posts have not been mirrored. I'll have my people talk to their people who will get some other people to fix the problem.


Monday, December 18, 2006, posted by @ 11:42 AM
Computer Architecture
The latest issue of ACM Queue is running an interview of John Hennessy and David Patterson, the authors of the wonderful book, Computer Architecture: A Quantitative Approach. John suggests that there have been four architecture-driven inflection points (remember, we are taking about hardware architecture, not software...): the first generation of electronic computers, the IBM 360, pipelining, and now explicit parallelism (e.g. multicore processors).


Monday, December 18, 2006, posted by @ 9:23 AM
Collecting Patterns
Several people have asked me why I've spent the energy collecting a catalog of patterns, since this is material that will likely never show up in the dead tree version of the Handbook. Actually, this catalog is entirely relevant: one of the more important elements of any architectural description is the naming of the patterns that shape that system. In most cases, the architects themselves have applied a variety of patterns - as a manifestation of the system's essential design decisions - but, unless they work in an environment that values patterns, they would have rarely named these things as patterns or documented them as such. The naming of patterns - just like the naming of cats - is a difficult matter. I don't want to reinvent any patterns, but rather, as I conduct my archeological digs, want to identified the patterns used by drawing from patterns that have already been described.


Monday, December 18, 2006, posted by @ 9:16 AM
Yet More SOA Patterns
Arnon Rotem-Gal-Oz has also pointed me to his emerging collection of SOA patterns>


Monday, December 18, 2006, posted by @ 9:04 AM
SOA Patterns
Eoin Lane pointed me to several SOA patterns he and his team have harvested: data federation, cache mediation, Web services response template, and requester-side caching.


Friday, December 15, 2006, posted by @ 11:42 AM
And You Think That Writing Web Apps Is Hard...
Heat, weight, power - and even solar flares - are among the many things with which developers for software-intensive space systems must grapple.


Thursday, December 14, 2006, posted by @ 2:56 PM
SOA Patterns
Following up to my earlier blog re the Handbook pattern catalog, check out Eoin Lane's blog on building SOA applications with patterns.


Thursday, December 14, 2006, posted by @ 1:40 PM
Blog Spam
The developerWorks mirror of my blog has been subject to blog spam, so I'm taking down comments for a while. Apologies for the inconvenience, but you all know reach me.


Thursday, December 14, 2006, posted by @ 11:13 AM
Paper Generator
Jim Conallen sent me this link to an automatic computer science paper generator. Sadly, some of these papers were apparently accepted at different conference.


Thursday, December 14, 2006, posted by @ 8:49 AM
ObjectView
You'll find an interview with Kent Beck along with some of my ramblings on SOA here, in the latest issue of ObjectView.


Thursday, December 14, 2006, posted by @ 12:46 AM
Frontier Visionary Interview
I was recently interviewed on the topic of "Software Engineering: Past, Present, and Future."


Wednesday, December 13, 2006, posted by @ 11:15 AM
More On Collaboration
My recent posting regarding collaboration generated a number of responses. Joe Marasco wrote to remind me that the Silicon Valley Business Journal's Emerging Technology Awards named RAVEN (the Requirements Authoring and Validation Environment) the winner in the collaboration category.

Another collaboration product, this one in the agile space, is from Rally Sofware Development in Boulder.

Ravenflow and some of Rally's principals are former Rationalites, BTW :-).


Tuesday, December 12, 2006, posted by @ 11:30 PM
Joint Architecture For Unmanned Systems
Check out the DoD's Joint Architecture for Unmanned Systems, an open standard based on the Society of Automotive Engineers Generic Open Architecture which in turn is based on a NASA initiative for space flight systems software.

One the one hand, it's a sign of the maturation of the software biz to see the emergence of domain-specific architectural frameworks such as these; on the other hand, the diversity whereby these frameworks is specified shows that we still don't have a shared reality as to what architecture is and what it is not.

But then, as Jane Wagner wrote and Lily Tomlin performed in The Search For Signs Of Intelligent Life In The Universe, reality is nothing but a collective hunch.


Monday, December 11, 2006, posted by @ 11:19 PM
A Pattern Catalog
Finally.

In my lectures I often remark that, IMHO, one of the most important advances in software engineering in the last decade has been the practice of patterns, because they give us a means of naming and reasoning about societies of classes, designs that are at a higher level of abstraction than individual entities. The past several months, I've been slogging through the patterns literature in order to create a contemporary catalog of patterns (you'll need to be logged in to the Handbook to visit this link). This is not a new idea: in 2000, Linda Rising published The Pattern Almanac and there are many lists of patterns to be found online. I undertook this present work to get a snapshot of the current state of the practice in patterns, so that as I continued with my archeological digs for the Handbook I'd be able to apply the patterns that had already been identified. In this journey, I learned a number of things, but three stand out.

First, there has been a considerable maturation of the patterns literature over the years since the publication of the Gang of Four's Design Patterns book and the first PLOP conference (not to be confused with Scott Adam's short-lived cartoon of the same name). If you study some of the earliest documented patterns and compare them to recent ones, you'll see that the form and rigor of patterns documentation has advanced greatly.

Second, I was touched by the vitality of the patterns community. I've cataloged almost 2,000 patterns, realizing that there are many more out there that I've not cataloged. My capricious and arbitrary pruning of the patterns literature followed a simple rule: I included a pattern if its source was accessible (this favored patterns published in books and proceedings and rejected those only found online, as they were likely to be inaccessible over time). Patterns that had gone through a shepherding process were generally selected over those that had not.

Third, I was surprised by the breadth of patterns that have been documented. In the literature, you'll find a number of domain-specific pattern languages, patterns for non-software systems, and even many metapatterns and antipatterns.

As my work on the Handbook proceeds, I'll continue to augment my patterns catalog, but for the moment, I've reached a stable point: I've researched all the interesting (to me) sources of accessible patterns, and will now turn my attention to doing more archeological digs. My research assistant, Celso Gonzalez, will be helping me in the coming weeks clean up the catalog: we need to tighten up the references, add mention of the pattern languages from which some of these patterns are drawn, and spend some time rethinking the classification of the various patterns. I'll also task my sysadmin (oh wait...that's me!) to fiddle with my Google Mini - which I use to provide searching on the site - to make searching the patterns catalog a bit easier.


Monday, December 11, 2006, posted by @ 10:17 PM
Practicing Programming
Another IBMer (and clearly also another night owl like myself) Josh Staiger wrote me shortly after my last blog entry, pointing me to a brilliant piece by Steve Yegge (who at the time was working at Amazon but now blogs here). Thanks, Josh, for the reference.

Check out Ka-Ping Lee's (older) course on Beautiful Code.


Monday, December 11, 2006, posted by @ 9:22 PM
How To Begin
There's a fascinating thread on Slashdot by a recent CS grad. The writer notes that "...for some of the software being written nowadays, I would have absolutely NO IDEA how to even begin writing it." It will take a bit for you to slog through all the responses, but there are many good ones, the essence of which is typically the same advice as given by many writers: to become a good programmer, you need to read lots of code written by others and you need to practice by writing lots of code of your own.

Professional singers work hard to polish their voices; good writers write and write some more; world-class photographers take lots of pictures; athletes train their bodies through hard yet thoughtful workouts. There is no royal road to becoming a great programmer: it takes dedication, passion, and lots of hard work.


Friday, December 8, 2006, posted by @ 7:23 PM
Collaborative Development Environment
Back in 2002, Alan Brown and I coined the term Collaborative Development Environment, or CDE for short. We observed the evolution of the developer experience - from CLIs to IDEs to XDEs - and projected that the Next Big Thing for the developer would be tooling to support collaboration. We published a paper in Zelkowitz's Advances in Computers and around the same time, my keynote at the first EclipseCon elaborated on the history of development environments.

IBM's alphaWorks has launched a portal about CDEs which you'll find here. I've got an editorial coming out soon in Dr. Dobb's on the same subject.

Architecture and collaboration are my two (professional) passions at the moment, and the two are not that distant from one another.


Thursday, December 7, 2006, posted by @ 7:53 AM
Testing Excellence
My dear colleague Bill Higgins pointed me to a blog by Ward Cunningham and Bjorn Freeman-Benson. There are a number of interesting posts, but I particularly enjoyed this one about James Bach and the profession of testing.


Thursday, December 7, 2006, posted by @ 6:42 AM
Page Rank
As mentioned in Slashdot, the American Mathematical Society has an article by David Austin regarding Google's page rank algorithm.


Tuesday, December 5, 2006, posted by @ 2:36 PM
Empowering The A In SOA
This Thursday, December 7th, I'll be hosting a developerWorks chat regarding empowering the A in SOA and the connection of that work to this week's v7 release of the new Rational toolset.


Tuesday, December 5, 2006, posted by @ 11:35 AM
User Friendly
I get a kick out of J. D. Frazer's User Friendly (I even have a stuffed Dust Bunny in my office), but today's strip had me laughing out loud.


Tuesday, December 5, 2006, posted by @ 11:15 AM
Bjarne
From an interview at the MIT Technology Review, Bjarne Stroustrup writes:

I think the real problem is that "we" (that is, we software developers) are in a permanent state of emergency, grasping at straws to get our work done. We perform many minor miracles through trial and error, excessive use of brute force, and lots and lots of testing, but--so often--it's not enough. Software developers have become adept at the difficult art of building reasonably reliable systems out of unreliable parts. The snag is that often we do not know exactly how we did it: a system just "sort of evolved" into something minimally acceptable.


Monday, December 4, 2006, posted by @ 8:47 AM
Must See Blog
Check out this blog, Adding Simplicity by Dan Pritchett, an architect at eBay. Although there are only a few posts currently on his site, it is well-written, full of interesting insights, and very pragmatic. In the "items of interest" section of Dan's blog, you'll find the slides he used at a recent SDForum meeting.


Wednesday, November 22, 2006, posted by @ 10:31 AM
Research Assistant
In late October, I'd posted an appeal for a research assistant to lend me a hand with the Handbook. I received around 50 replies and in between customer visits have been sorting through them all. I was flattered by the breadth of responses. I had many from the US, but many more from India, Asia, and South American; offers came from everyone from undergrad and grad students to senior architects of some large companies. Thank you all for getting in touch with me.

It was not easy to choose, but in the end I selected another IBM colleague, Celso Gonzalez to lend me a hand. Thanks to Amazon, I'm filling out Celso's library a bit so that he can first work on reorganizing the almost 2,000 patterns I've already cataloged. You'll see some subtle changes in that part of the Handbook site over time (and I'll blog about those changes as they unfold).


Friday, November 10, 2006, posted by @ 6:37 AM
Happy Birthday, Intel!
This is time for birthdays; this month marks the 35th anniversary of the Intel 4004 microprocessor.

I had the opportunity to speak at an event with Gordon Moore a few years ago. I'm sure this very dialog was not the first time Gordon had encountered it, but I had to say it anyway. Speaking just before him, I quipped that, while I absolutely admire all the contributions he'd made, without software, Intel's chips would be nothing more than a pile of sand. Gordon then started his presentation with the remark that, without his chips, our software would be just marks on paper.

Such is the yin and yang, the eternal cosmic dance of hardware and software.


Tuesday, November 7, 2006, posted by @ 9:02 AM
Happy Birthday, Eclipse!
In celebration of Eclipse's 5th birthday, parties are being held around the world. If you can't make it to one of these events, then sign the birthday card.

For those of you in the US, today is election day, so remember to vote early and vote often.


Friday, October 27, 2006, posted by @ 7:28 AM
Seeking A Research Assistant
This is a shameless, self-serving request for help.

The growth of the Handbook is such that I find myself in need of hiring a research assistant for some random part-time work. In the short term, I need someone to sweep through the patterns I've cataloged thus far to verify their classification, augment their references, and group them by pattern language. In the medium term, I need someone to help me with the flood of correspondence I have for each system I'm investigating, including tracking down references and getting permissions for appropriate artwork. Also in the medium term, I could use another set of eyes on the models for each such system. As for the long term, we'll see how this goes for the earlier tasks.

You can be anywhere in the world; that's the joy of collaborating over the Web. An understanding of patterns and the pattern literature is a must, the ability to write well is also a must, and you also need to be a detail-oriented person, for there will be a million little loose ends that will need tying together. You'll also need patience with me: my work on the Handbook tends to go in bursts, because of all the other IBM-ish things I must do. If you are interested, please email me.


Thursday, October 26, 2006, posted by @ 11:17 AM
The US At 300 Million
Somewhat old news, but the United States recently surpassed a population of 300 million (the world's population currently tops 6 billion). When I was born in 1955, the US's population was only 166 million and the world's was 2.78 billion. Many other economists, sociologists, environmentalists, and politicians far more informed than I (well, perhaps except for the politicians....) have pontificated about the implications of this growing population relative to the organization of human life and the depletion of the earth's resources. I don't want to add any noise to the cacophony already there, but from my perspective as a computer scientist, I expect that one thing this means is that, over time, people will increasing live, play, and work in virtual environments.

Ray Kurzweil's intriguing book, The Singularity Is Near, offers his prediction of the growing indistinction between biological and non-biological life (I'm reminded of Orsen Scott Card's entry to Wired's short stories: "The baby's blood type? Human, mostly"). I'm skeptical except for perhaps in the long term (think hundreds of years). In the shorter term, virtual worlds such as Second Life are, I believe, the sign of things to come. Second Life currently has a population of over one million virtual citizens, and is home to a flourishing economy (linden dollars are the hard currency of the realm, currently running at 250 linden dollars to one US dollar) and a vibrant cyber society. The Second Life Herald even offers daily news about interesting events in that virtual world. The denizens of Second Life represent a microcosm of society: there are entrepreneurs, families, and companies, tourists and players, the virtuous and the villains (both of whom seem to play at various times in a vibrant underworld where all the things you might think that are there are, well, there). I am told that the biological counterparts of a few of the virtual citizens are even able to earn a living in the real world because of their work in the virtual one.

Consider then: in a world of shrinking resources, limited space in which to live, and with chaotic political and economic circumstances that are far outside the control of most individuals, reinventing yourself in a virtual world is not necessarily a bad place to be. Second Life is relatively new on the scene, but expansive metaverses such as the World of Warcraft are evidence that people can be drawn deeply into these virtual worlds. Setting up a home, a job, a persona, even a personal look is far easier, far lest costly, and far more malleable in a virtual world then in this one, and thus the emotional appeal to a life in such a world is compelling for some.

The human spirit seems to lust for freedom and open space. When one physical frontier closes, we seek another; when all such physical frontiers close, then living in a virtual world is enticing, for it is a manifestation of a seemingly limitless frontier.

I'm a fan of the British series Red Dwarf (actually, I read the books before I ever saw the TV show). I was particularly delighted by the plot of the second volume, Better Than Life in which the characters in the first book slowly come to the realization that they are actually living in a game called Better Than Life, a game that is fiercely addicting simply because it is, um, better than life.


Thursday, October 12, 2006, posted by @ 7:44 AM
Snake Oil-oriented Architecture
Snake oil, in its uncomplimentary form, denotes a miracle drug guaranteed to cure all that ails you, yet whose mechanisms are shrouded in inscrutable details that wither in the uncompromising light of science. As nations expanded their empires - most notably the United States in a rush to fulfill its Manifest Destiny in the 1800's - grifters would rumble into frontier towns in order to extract precious dollars from unsuspecting and ill-informed citizens, selling them secret elixirs of amazing potency. These medicine men would put on a great show for a town typically lacking in entertainment, short of the local saloon which was already so mundane to the locals. These people were looking for a release, a cure that required no effort, a turn to "modern science" that would relieve them of their sufferings and perhaps more importantly, their fear of the unknown which was vast in this unscientific age.

Alas, there continue to be snake oil salesmen (and now saleswoman), but their elixirs often take a form that's far more illusive than liquid medicine. Most modern day grifters no longer ride into town on a wagon, but rather use late night TV, well-placed "scientific" advertisements, or the Internet to ply their wares. The better-capitalized ones will fly in to town with their entourage, set up a meeting at a high-class hotel, dazzle an unsuspecting and ill-informed audience with their PowerPoint wizardry, then fly away, leaving their local representatives to rake up the cash that's been thrown on the floor. Almost immediately, these local citizens will feel wiser and stronger, simply having been exposed to these confident, polished, and well-fed men and women and their shiny brochures - why, even the articles in trade magazines proclaim that It Is Good! - but once back at work and faced with the real world, they quickly find that instituting some of these new-fangled ideas is not as easy as they were led to believe and that these elixirs are not so far-reaching as promised them. A little later, some of them will get an uneasy feeling that maybe - just maybe - there are some simple fundamentals on which their organization is not executing well, and that the whole elixir exercise was worse than useless, because it actually diverted them from their real problems while creating new ones. Far too many of those people will get over their discomfort just as soon as the next medicine show rolls into town: a little distraction now and then is always a nice way to avoid reality and give your bosses the illusion of progress.

Now, let me make something excruciatingly clear, lest you misunderstand me and thus send incendiary emails and/or impel my IBM management to take me behind the woodshed for a good thrashing: I am a strong proponent of Service-Oriented Architectures (SOA).

However, I tremble at the realization that the fundamental technical benefits as well as the costs and trade-offs of SOA are sometimes lost in the guise of Snake Oil-oriented Architecture.

IMHO, SOA's value proposition begins with the A in its acronym: architecture. There is sound, proven value in governing and growing a system's architecture; there are also hard decisions that must be made, many decisions of which cannot be known a priori (which is why a process shaped around the rhythmic incremental and iterative release of executables is so important). There are many things we already know about what constitutes a good architecture and what does not. Stripped away of all the hype, a Service-Oriented Architecture is essentially a variant of well-proven message-passing architectural patterns. The variance comes in the form that services are cleverly designed to take advantage of the Web-centric infrastructure that pervades many organizations: services allow you to send and receive semantically rich messages through firewalls.

Having said that, there follow a multitude of hard technical and process decisions that must be made, which the Snake Oil-oriented Architecture showmen often neglect to tell you about: what distinguishes a good service from a bad one? what should the granularity of a service be? when should I offer up a stateless service versus a stateful one? as for the stateful ones, how to I express their semantics, and how do I ensure their their misuse doesn't corrupt my system? how do I express the semantics of a society of services (only the most trivial services work in isolation)? how do I decide upon the semantics of the information transmitted by these services so that locally they are efficient and useful but that also globally they are consistent? how do I expose some services to some clients and hide them from others? how do I offer up variants on a service, so that different clients see a different face to that service? how do I ensure the security of critical services, such that I am confident I'm not opening up holes in my enterprise that will let the bad guys in? what services should I expose to the world, and what services should I keep hidden? where are services appropriate, and where are they not? how do I best expose services in a legacy system? who should own/maintain these services? are there alternative architectural patterns I should employ instead of services, and where, and why?

These are all architectural and process decisions, which is why I tend to emphasize the A in SOA. If you ignore the S in SOA for a moment and shine an uncompromising light on your organization's software development practices, you may come to realize that there perhaps are some simple fundamentals you need to work on first, so that you can then approach the S in SOA in an appropriate, confident manner, and derive the true value from this technology.

If you do otherwise and accept the unprovable proclamations of the Snake Oil-oriented Architecture salesmen by pouring their elixir on the aching muscles and oozing wounds of your organization's people and software assets and doing nothing else, than all I can say is that you will probably get the results that you deserve.


Wednesday, October 11, 2006, posted by @ 10:18 AM
More On Yahoo's Pattern Library
Bill Scott at Yahoo and I have been in correspondence, and he pointed me to this page regarding design patterns as well as this blog where the discussion will be continued in a posting sometime next week.


Tuesday, October 10, 2006, posted by @ 10:51 PM
Yahoo Pattern Library Curator
Yahoo is looking for a curator for their public pattern library. Check out this description of the role.


Tuesday, October 10, 2006, posted by @ 9:50 AM
The Most Innovative College In America
Ok, I'll admit up front that I have a conflict of interest in posting this: I'm on the university's advisory board.

The Spellings commission report recently cited Neumont University in Salt Lake City for "innovation in curriculum development and program delivery."


Friday, October 6, 2006, posted by @ 9:02 AM
Orbiting The Giant Hairball
Hm, that sounds a little too juicy, so I'll stick to the "big ball of mud" title.

Dennis Hamilton emailed me, pointing me to Brian Foote's web site, containing the latest version of the big ball of mud pattern as well as several others.

"Orbiting the Giant Hairball," BTW, is the title of a book by Gordon MacKenzie detailing his thoughts about creativity and the corporate world.


Thursday, October 5, 2006, posted by @ 3:34 PM
Big Ball Of Mud
Today I was rereading PLOP 4, and in particular the chapter by Brian Foote and Joseph Yoder on an architectural pattern they call a Big Ball of Mud. There is such wisdom and insight in their work that I just had to share some passages. Please, go amazon yourself a copy of PLOP 4 (and while you are at it, order PLOP 1, 2, 3, and 5 as well) so that you can read about their entire pattern language:

Why does a system become a Big Ball of Mud? Sometimes, big ugly systems emerge from throwaway code. Throwaway code is quick-and-dirty code that was intended to be used only once and then discarded. However, such code often takes on a life of its own, despite casual structure and poor or nonexistent documentation. It works, so why fix it? When a related problem arises, the quickest way to address it might be to expediently modify this working code, rather than design a proper, general program from the ground up. Over time, a simple throwaway program begets a Big Ball of Mud. Even systems with well-defined architectures are prone to structural erosion. The relentless onslaught of changing requirements that any successful system attracts can gradually undermine its structure. Systems that were once tidy become overgrown as piecemeal growth gradually allows elements o the system to sprawl in an uncontrolled fashion. If such sprawl continues unabated, the structure of the system can become so badly compromised that it must be abandoned. ? As with anything else in the universe, counteracting entropic forces requires an investment of energy. Software gentrification is no exception. The way to arrest entropy in software is to refactor it. A sustained commitment to refactoring can keep a system from subsiding into a Big Ball of Mud. ... Some of these patterns might appear at first to be antipattterns or strawmen, but they are not, at least in the customary sense. Instead, they seek to examine the gap between what we preach and what we practice. ... Still, some of [these patterns] may strike some readers as having a schizoid quality about them. So, for the record, let us put our cards on the table. We are in favor of good architecture. Our ultimate agenda is to help drain these swamps. Where possible, architectural decline should be prevented, arrested, or reversed. ? In part, our attitude is to ?hate the sin, but love the siner.? ? Not every backyard storage shack needs marble columns. There are significant forces that can conspire to compel architecture to take a back seat to functionality, particularly early in the evolution of a software artifact. Opportunities and insights that permit architectural progress often are present later than earlier in the life cycle. A certain amount of controlled chaos is natural during construction and can be tolerated, as long as you eventually clean up after yourself. More fundamentally, a complex system may accurately reflect our immature understanding of a complex problem. The class of systems that we can build at all may be larger than the class of systems we can build elegantly, at least at first. A somewhat ramshackle rat's nest might be a state-of-the-art architecture for a poorly understood domain. This should not be the end of the story, though. As we gain more experience in such domains, we should increasingly direct our energies to glean more enduring architectural abstractions from them.

Well said, Brian and Joseph.


Wednesday, October 4, 2006, posted by @ 4:33 PM
Yet More Patterns
Published in 2000, Linda Rising's Pattern Almanac provided a comprehensive index to the many patterns that had been documented in the software community. Unfortunately, Linda's book is now out of print. Additionally, since that time, the patterns literature has matured considerably, especially thanks to the efforts of the Hillside Group, with their writer's workshops and PLOP conferences.

While by no means as comprehensive as Linda's original work, I've now cataloged a little over 1200 patterns, and I figure I have several hundred more to add. You'll find an index to these patterns here (you'll need to be logged in to the Handbook site) where you can sort them by name, kind, and source and for each read the problem they address and the solution they offer. Several people have written to me saying that they have used this catalog often, and so over the next week or so I'll improve search within my site so that you can scan the entire site, the the patterns, and other sections.


Friday, September 29, 2006, posted by @ 10:42 AM
Good Bye, Amigo
Jim Rumbaugh has announced his retirement from IBM. I've enjoyed working with Jim over the years, and am particularly proud of what we accomplished in merging OMT and the Booch method into what became the original version of the UML.

Jim will be staying in the Bay Area and will continue to write and lecture. Farewell, Jim, I wish you well.


Tuesday, September 19, 2006, posted by @ 4:10 PM
More Patterns
I've posted several dozen more patterns in the Handbook's catalog of patterns (remember that you'll need to be logged in to the Handbook site).


Friday, September 15, 2006, posted by @ 2:34 PM
John Backus
Last week, on behalf of the Computer History Museum, I had the opportunity to interview John Backus, who led a team at IBM in the 1950's to produce FORTRAN. Later in his career, John pioneered work in functional programming.

John is now in his 80's, and is still a very energetic and bright man. We met at his home in Ashland, Oregon, where he lives near one of his daughters following his wife's death a little over two years ago. The purpose of our interview was two fold: the Computer History Museum continues to conduct a variety of oral interviews, and the ACM is in the process of interviewing all its Turing Award winners (John received the Turing award in 1977).

Our interview covered a wealth of topics: his recollection of the FORTRAN project, his contributions to ALGOL, his experiences at IBM, his work on functional programming (and why it failed to achieve mainstream success), and his work with many other luminaries of the time. John reported that his FORTRAN work was not well received by IBM senior management at the time (Tom Watson senior in particular) but that Tom Watson junior really got the vision for the future of computing. Much of the FORTRAN work was so groundbreaking that his team had to discover and then solve a multitude of problems along the way. Interestingly, John noted that the assumptions for which FORTRAN was created - to see if one could write efficient programs in a high-order language - are really no longer valid, although the industry is still faced with a "cesspool of complexity," as he put it.

John is still a wired guy: he's got a Palm, a Tivo, and a Dell. Currently, he's working on publishing and distributing a book his wife was working on up until her death.


Friday, September 1, 2006, posted by @ 8:47 AM
Reboot Or How I Spent My Summer Vacation
That is, if you define "vacation" to include intense, non-monotonically decreasing pain, episodes of debilitating depression, and some cognitive and physical hiccups.

The good news, of course, is that which was surely going to kill me (namely, an aneurysm of the ascending aorta) has been expunged from my life. Thanks to the incredible care I received at the Mayo Clinic in Rochester, Minnesota, my demise is now more likely to come from being hit by a bus or via a tragic paper cut. As the only surviving male of the Booch lineage, since those immediately before me and after me have all died of the same condition, I owe my survival to early detection and the skill of the surgeons, physicians, nurses, and staff of the Mayo. The death of my nephew at age 20 was a gift of life to me, for it led to my being tested and that CT scan revealed I had the same condition. We were able to monitor the state of my aneurysm through 2005 and early 2006, and made the decision for elective open heart surgery at the end of May this year. This summer, as readers of this blog will know, I've been largely offline, recovering from surgery. Earlier this week, I returned to the Mayo Clinic for some follow up tests, which mark the beginning of the end of my recovery.

I had hoped for a bit more closure from those tests, but alas, that was not to be (and in that context I recall a speech by the mayor of Colorado Springs some years ago, in which he noted that, in this life, there is no closure). Physically, my surgical scars have pretty much healed although they'll never go away completely. The replacement of my aortic root took well, with no leakage or other such complications. There are unknowns with regard to my aortic valve. Technically, I underwent a modified Davis procedure, a valve-sparing replacement of the aortic root. This technique is still sufficiently new that the long term implications for my valve are unknown: will the tips of the valve wear out faster because they might rub against the Dacron graft? My left ventricle had begun to enlarge to compensate for the abnormal fluid dynamics inside my heart resulting from the aneurysm, but an echocardiogram earlier this week revealed that my left ventricle has shrunk (that's a good thing) and that my heart is actually operating more efficiently than before the surgery. I do still have some fluid around my heart that should have been absorbed by now, and that's a little concerning as it is indicative of some continuing inflammation of the heart, so I'm under yet another drug regimen to attack that issue. My endurance and upper body strength are not back to pre-surgery levels, which is not surprising given that for most of the summer as my sternum healed, I couldn't lift more than 10 pounds. Also, during this recovery, I lost over 20 pounds, mainly because I've lost much desire to eat.

Mentally, I'm pretty much back to normal, whatever that means for me. Being a person who lives in his head, the risk of cognitive decline was a very real concern, and the various studies from Duke University that I read before surgery gave me pause. During my recovery, I did have problems with concentration, the so-called pump head syndrome from being on a heart/lung machine for an extended period, but now I find that those problems are largely gone, and I'm pretty much back to where I was.

The emotional issues were the hardest. Although I knew in my head that depression after such major surgery is not uncommon, knowing it and experiencing it are very different things. If you are interested, the book Coping With Heart Surgery And Bypassing Depression by Carol Cohan, June Pimm, and James Jude provides the most honest discussion I've read about that element of the recovery process. Although I am an intellectual person, I'm also a whole emotional person as well. I have a propensity to melancholy as it is, and surgery then recovery greatly amplified those emotions. Happily, I am in a happier place again. Spiritually, this was period of growth and grace for me, having been surrounded by the love and care of family and friends, and - as Philippe Kruchten noted to me and as I blogged about before - having had many people in many parts of the worlds in many languages and in various systems of belief pulling for me.

It's been three months since my surgery, and I'm now starting to return to a rhythm of work. I'm back on my IBM email, and I'm starting to take on some work tasks. Most importantly, I'm using this reboot to be intentional about what I will take on and what I will shed: as I look at the long list of things I was doing before surgery, I'm stunned by how many of them just accumulated over time and really were not essential to helping me advance the practice. To that end, that I'll be returning my primary attention to the goals of the Handbook and following the evidence of existing architectures where it leads me.

I'm also starting to resume my travel. My first business trip will be to Oregon, where I'll be interviewing John Backus on behalf of the Computer History Museum, and from there I'll travel on to Ottawa to continue work with IBM Rational's Jazz project.

It's really good to be back.


Thursday, August 31, 2006, posted by @ 12:00 AM
Empty
No entries were posted this month, as I continue my recovery from open heart surgery.


Wednesday, July 26, 2006, posted by @ 11:25 AM
Status
It's been over a month since I last blogged. Yesterday was the eight week anniversary of my open heart surgery and although my incisions have healed, my body and spirit are not yet operating at 100%. I was able to start driving a couple of weeks ago (a most welcome increase in my level of independence) and can now start lifting items heavier than a gallon of milk. While it no longer hurts to cough or sneeze (indicating that my sternum has healed), it's clear that my body chemistry is still wacky. Most days my blood pressure runs around 100/60, but some days it drops to 80/50 and on those days I feel like a lump of protoplasm. Most days I'm emotionally up, but as all the physicians and literature warned me, some days I just have to crawl into my cave where I sit inconsolable.

I'm not yet back on my work email and thus I expect I've got a backlog of messages numbering in the tens of thousands. Please pardon me if i've been ignoring you, but slogging through my email is not my highest priority right now. This week, I've begun to return to research for the Handbook. As August rolls around, I'll start planning - but not yet doing - any other work activities. I hope to resume some level of travel in September.

So much has gone on in the software biz these past eight weeks: BillG has announced his retirement; Myspace.com has gained critical mass; Google continues to innovate with elements such as their windowing toolkit; IBM posted a solid quarter; Apple posted an incredible quarter; software mashups al la Web 2.0 technologies have gained traction. Still, so much is the same: developing, deploying, and operating complex software-intensive systems is still fundamentally hard; the world's current economic conditions still means doing even more with even less.

Thanks again to the people who have emailed me and snail-mailed me their greetings. I do look forward to jumping back into the fray and fighting the good fight as soon as I can.


Sunday, June 18, 2006, posted by @ 9:08 PM
Home Again
I'm finally back home. The mile high air smells sweeter, the sunsets appear brighter, and it feels sooooo good to be back in my own bed, unencumbered by the assorted wires and tubes that had been attached to various parts of my body.

As Bill had mentioned in an earlier blog, there were some complications that kept me at the Mayo Clinic longer than I'd first expected. Specifically, my body had stopped producing red blood cells and I had a couple of episodes of irregular heartbeats.

I have such a deep respect for the medical staff at the Mayo Clinic. Dr. Thoralf Sundt was my surgeon, and his team was augmented by Dr. Enrique Gongora (his resident), Dr. Naser Ammash (a cardiologist specializing in congenital heart disease), Dr. Rajiv Purithi (a hematologist), and an incredibly competent, professional, and caring nursing staff, into whose hands I placed my life. The Mayo Clinic is so well organized that as issues arose, world-class experts were brought in immediately for consultation. It is wonderful that such an institution exists, and its reputation is well-deserved.

I continue to be amazed by the ability of the human body to heal. I still have minor aches and pains and my endurance is far from where it was before the surgery, but every day I get just a little bit stronger. My doctors advise that my recovery will take around eight weeks. I can't drive, I can't lift more than five pounds, I don't yet have the focus to sit in front of a computer, and the simple act of sneezing is a painful event. Therefore I'm doing something I've not done for about thirty years, namely, taking a summer vacation. So that my body and spirit have time to heal properly, don't expect to see me re-engage in work until late summer.

I want to offer my thanks to the many people - some of whom I know, many of whom I don't - who held me and continue to hold me in their thoughts and prayers.


Thursday, June 8, 2006, posted by @ 1:28 PM
Out Of Hospital, Continuing Tests
(Bill Higgins posting on behalf of Grady)

Grady has moved out of the hospital and is in good spirits. He must remain in the area near the hospital due to continuing medical concerns and testing.

Grady would like to thank the people who wrote the software for the machines that kept him alive.

Everyone's prayers and well wishes are appreciated.


Monday, June 5, 2006, posted by @ 2:28 PM
Dealing With A Few Post-Surgery Issues
(Bill Higgins posting on behalf of Grady)

Grady is continuing the post-surgery recovery and has experienced some issues which have been dealt with.

He continues to be in good spirits and will be in the hospital longer than expected.

Our thoughts and prayers continue with Grady and his family.


Friday, June 2, 2006, posted by @ 2:20 PM
Post-Surgery Continues Normally
(Bill Higgins posting on behalf of Grady)

Grady continues to do well and is progressing through the normal post-surgery challenges.

The thoughts, prayers, and well wishes flowing in are gratefully received, welcomed and requested as he moves forward.


Thursday, June 1, 2006, posted by @ 5:52 PM
The Recovery Continues
(Bill Higgins posting on behalf of Grady)

The recovery continues on track and according to plan.

Grady is up and walking around more and enjoying lunch with the family. By now the pain killers from the surgery have worn off; in spite of this he is in great spirits and doing very well.

The personal comments on the blog are much appreciated; however Grady wishes the network at the hospital was much faster!


Wednesday, May 31, 2006, posted by @ 4:10 PM
Day After
(Bill Higgins posting on behalf of Grady)

The great news continues!

As you have seen Grady has been blogging from his hospital room and he is already out of ICU. His mobility is very good as he is sitting up, has walked the hallway, and is eating well.

You can use this blog site to provide comments as Grady is monitoring them.


Wednesday, May 31, 2006, posted by @ 2:36 AM
Inside The I.C.U.
This has to be a first. I am inside the ICU at Mayo clinic, just a few hours after my open heart surgery. Steve, my ICU registered nurse, is my eyes and fingers typing this blog. As you can tell by the very fact that I am blogging I am not dead yet.

Thanks to all of the prayers and good thoughts people have sent me around the world


Tuesday, May 30, 2006, posted by @ 7:55 PM
Post Op Update (Great News!)
(Bill Higgins again posting on behalf of Grady)

Great news!!!

Grady successfully went through a 6+ hour procedure today and is doing very well. The medical staff indicated that there were no surprises and that he was stable through the entire procedure. The aneurysm is gone and he is recovering well in ICU. Amazingly he is awake and communicating with his family already within hours of completing the surgery.

The family and friends express gratitude to all for the many prayers and thoughts on behalf of Grady.


Tuesday, May 30, 2006, posted by @ 10:38 AM
Pre Op Update
This is Bill Higgins, a colleague of Grady's at IBM Rational. Grady asked me to update his blog on the day of his heart procedure (today) and in the days following until he's ready to take it back over.

So far all is going well and he and Jan are in good spirits. They expect the procedure to start at 10am EST. They expect this to be a 5 or 6 hour procedure, and expect him to be back to ICU around 4PM EST.

More updates throughout the day.


Saturday, May 27, 2006, posted by @ 9:19 PM
A Clean Heart
I've returned home for the weekend from my pre op tests at the Mayo Clinic. The echocardiogram and angiogram revealed that my heart itself is in excellent shape for a person my age, which means that my upcoming surgery will be relatively straightforward in that it will only involve repairing my ascending aorta. This is good news in that it means that my surgery will only take 4-5 hours, with around one hour on the heart/lung machine, rather than more like 6 hours.

This will likely be my last blog post until after surgery. Bill Higgins will be blogging for me on the day of my surgery and immediately following, so as to update my status.

Thanks again to the many people who have written offering their thoughts and prayers.


Wednesday, May 24, 2006, posted by @ 9:15 PM
Pre Op
Although my surgery is not until Tuesday, I'm here at the Mayo Clinic for pre op tests so that my surgeon can form a map of my innards. Between CT scans, an echocardiogram, an angiogram, and a chest X-ray, there is little more that one can learn short of cutting me open.

Philippe Kruchten sent me a nice email from ICSE 2006 in China. He reported that the very international gang there is praying for me in various languages and systems of beliefs.

I'm in good spirits, and I'm thoroughly annoying all the medical techs here with my questions about the equipment they are using, their thoughts on the UI of each, and the software anomalies they've noticed. The Mayo is one very wired place.


Monday, May 22, 2006, posted by @ 11:23 AM
Pause
I've spent the past several days pausing all the work in my life, in preparation for my surgery on May 30th. Thank you again to all who have written me with their prayers and good thoughts. I feel confident that I'll get through this well, and be back later this summer to continue my work on the Handbook.

Mike Devlin, co-founder of Rational, is among those who wrote. Mike reports that he's still in Alaska, and has started Redhawk Productions, a video company shooting independent documentaries.


Tuesday, May 16, 2006, posted by @ 8:10 AM
Connections
First, a great big thank you to the many people who have sent me email and/or posted comments to my blog, wishing me well. Having the love of family and so many friends and colleagues is very comforting.

My surgery has been scheduled for Tuesday, May 30th at the Mayo Clinic in Rochester. I'll travel to the Clinic late next week for my pre op tests, home again over the weekend, then back out the day before surgery. Surgery will take approximately 4-5 hours after which I'll go to ICU and - amazingly - be sitting up and talking that evening. The next day I'll be taken to the step down unit, then after that 3-4 more days in the hospital, then 4 or so days in the area after my release from the hospital to ensure that there are no complications. Once I return home, it will take about 4-6 more weeks until I'll be back to normal.

Well, whatever normal means for me.

This week, I'm in in the process of shutting down work and otherwise preparing for surgery and a month and a half of recovery. I'm in the process of working out a mechanism to have someone blog my condition, so that we aren't flooded with calls.

Yesterday, two things happened that demonstrated a lovely synchronicity. First, I had lunch with Phillip Wogman, interim president of the Iliff School of Theology. Dr. Wogman is a noted author and Christian ethicist, and was also the spiritual advisor to President Bill Clinton. The main purpose of our meeting was to discuss opportunities for leveraging Iliff on the the Web, but then our conversation turned to my surgery. President Clinton had open heart surgery not too long ago, and so Phillip was able to tell me about how Bill coped. Hey, if Bill can do it, so can I!

Second, later in the day, I was burning and pillaging through my masses of email, and noted one from IBM's Mayo Clinic team, asking if I'd meet with Mayo's IT committee. IBM has already carried out some important collaborations with Mayo, including medical imaging and clinical genomics, both of which I have personally benefited by. I offhandedly suggested we could conduct a meeting in the ICU. Actually, I've told them I'll be happy to work with this team after I've recovered. It will be sort of a payback for me.


Friday, May 12, 2006, posted by @ 7:38 AM
Change Of Plans
It appears that my days as a body double for Tom Cruise are slowly coming to an end.

I blogged about this matter in late 2005/early 2005 but to recap, in December of 2004 I was diagnosed with an aneurysm of the ascending aorta. This is the very thing that killed my father and his brother (both while in their late 70s) and my nephew (just before he turned 21). My sister (6 years older than I am) was diagnosed with it as well. Needless to say, there's a strong familial relationship at play here (and for that reason I'm now engaged in some genetic studies). There are no overt symptoms of an aneurysm except when it dissects, at which time the primary symptom is death which is not very predictive. Happily, there are non-intrusive means of monitoring my condition using computed tomography (CT). Evidence indicates that when the absolute size of the aortic deformation reaches a certain point or when the rate of change of the deformation is sufficiently high, the risk of surgery becomes less than the risk of the aneurysm rupturing. From an engineering perspective, it's all wrapped up in Laplace's Law.

When I was first diagnosed with this aneurysm, we set out to located the best surgeon for my case, and selected Dr. Sundt at the Mayo Clinic. 2005 was a bit of an emotional roller coaster, but in the four visits I took there last year, my aneurysm was stable. As such, this necessitated no fundamental lifestyle changes. I'm a healthy guy otherwise, although given that I've likely been living with this condition my entire life, it's amazing that USAFA didn't' kill me. I did cut off my international travel for the year, and I only had to stop weight-lifting and other vigorous exercise and take on a beta blocker to radically lower my blood pressure. I decided to stay away from all mean people, too. Life is too short for that crap.

Earlier this week, I went back to the Mayo Clinic for an 8 month check up. While the absolute size of my aneurysm has not hit the critical point, the rate of change of the deformation has. Indeed, in examining the CT scans with the doctor, even to my untrained eye you can see that the aneurysm is now irregularly deformed which raises red flags in my engineering mind: you can just see the stress points in the aorta. Now, the other very good news is that this condition is treatable. Sometime in the next month or two, I'll undergo open heart surgery at which time the deformed bits of my aorta will be replaced. Open heart surgery is a common thing these days, but what makes this surgery a bit more risky is that I'll likely have to undergo circulatory arrest, which means that my body will be shut down for a while (the bit of the aorta in question is just above the heart and just below where the blood supply splits off to the brain). There is also a slight risk of cognitive loss, and being a guy who lives in his head, this is something my doctor and I don't take lightly. Nonetheless, the alternative is certain death, and that's no option for I have a long list of things I'd like to do before I shuffle off this mortal coil.

I'm not fearful of death or of the operation. My faith tells me that, in the grand scheme of things, this is but an instant in eternity. I approach the situation with confidence in the medical staff who will treat me and in the love of my family and friends who surround me.

In the coming days, I'll be shutting down all the activities in my life, with the expectation that after my body has been rebooted, I'll be able to return to normalcy sometime the second half of this summer.


Sunday, May 7, 2006, posted by @ 9:49 PM
John Backus
Len Shustek, chairman of the board of trustees of the Computer History Museum contacted me a few days ago, asking if I'd be willing to conduct an interview of John Backus for the Museum and the ACM. Of course, I jumped at the chance, and have since made contact with John to arrange an interview with him at his home later this summer. John invented FORTRAN and, later in his career, function-level programming. John received the Turing Award in 1977.

There's a lovely sense of closure in this for me. The first programming language I learned was FORTRAN, work that John carried out at IBM, and now here I am a part of this same amazing IBM organization. During my career, I've had the privilege of meeting and in some cases directly working with a number of the great programming language designers, including Grace Murray Hopper (COBOL), Jean Ichbiah (Ada), Bjarne Stroustrup (C++), Anders Hejlsberg (C#), James Gosling (Java), and Gregor Kiczeles (AspectJ).

To prepare for my interview with John, I've started to pour over some of his original papers and other interviews of him over the years. If you have a question that you think I should ask John, email me.


Friday, May 5, 2006, posted by @ 8:11 PM
More On Aperture
Shortly after I posted my last blog entry, I received an email from a kind soul (who shall remain anonymous) noting that, while my analysis of the architectural issues of Aperture were apparently right on, there exists some controversy in the blogosphere regarding the ThinkSecret link I'd posted earlier. I've no desire to add to the rumors about the back story of Aperture including issues of functionality and the development team - I'm an architect, not a gossip columnist - and so to offer a fair and balanced treatment of the subject, offer up this link and that one sent to me by the aforementioned reader (plus another story I came across).

In short, Aperture still lives, but there seems to be consensus that something dark permeates its architecture.


Friday, May 5, 2006, posted by @ 1:21 PM
A Failure Of Architecture
Don't get me wrong: I'm a rabid Mac fan. I've pretty much purged everything Windows from my life, and run my world only on Macs and Linux appliances. Therefore, I'm reticent in posting this message about Apple's Aperture photo editing software, because I prefer to celebrate successful software rather than cast stones at bad software. However, there was a statement in this report that caught my eye: "Aperture's problems stem not from any particular area that can be easily remedied but rather from the application's entire underlying architecture." I've not studied this particular piece of software personally, but the report goes on to allude to fundamental problems with the system's image processing pipeline.

One of the fundamental values of an development process that grows a system's architecture through the incremental and iterative release of executables is that it forces you to attack technical risk. It is very hard to make a system do what it is suppose to do if the underlying architecture is broken, and trying to patch that architecture to do so will only make things worse.


Friday, May 5, 2006, posted by @ 8:48 AM
Architecture Products
I met Michael Russell at the Systems and Software Technology Conference earlier this week, and he pointed me to this article of his. I particularly like how Michael describes architecture as serving to answer questions.


Thursday, May 4, 2006, posted by @ 9:12 PM
Interview
John Simmonds has an interview of me here.


Thursday, May 4, 2006, posted by @ 3:38 PM
Blogger Gathering
The IBM Rational Software Development Conference will be held at the Swan and Dolphin Resort at Walt Disney World in Orlando, Florida, on June 4-8, 2006. That Tuesday night (June 6th) from 6PM to 8PM, I'll be hosting a blogger gathering at the lobby bar. We'll talk about blogging at IBM, Rational activities, industry gossip, and anything else that you'd like to cover.
Best of all, the first round of drinks is on me.


Wednesday, May 3, 2006, posted by @ 4:40 PM
Computer Science Education
A recent article in Computerworld speaks about ways to revitalize computer science education. In this article, Gary Anthes does a nice job (i.e. he asks some very good questions) interviewing Kenneth Birman (professor of computer science at Cornell), Randal Bryant (dean of the school of computer science at CMU), John Canny (chairman of the computer science department of UC Berkeley), Jaime Carbonell (director of the Language Technology Institute at CMU), Bernard Chazelle (professor of computer science at Princeton), and William Dally (chairman of the computer science department at Stanford).

Now that I'm 614 months old, I really do hope that I'm not turning into a curmudgeon, but there was something about the responses from this distinguished group that bothered me. I slept on the article and my response, but consistent with my apparent current curmudgeonly trajectory, I felt compelled to reply. Just to be clear about my world view, my perspective comes from industry although I am very invested in academia, for this is the pipeline through which the next generations of software professionals will come. I'm involved in IBM's university relations program, I've met with the department chairs of most of the computer science programs in the University of California system, I've lectured at Oxford, Imperial College and elsewhere in Europe, I'm on the board at Neumont University, I've volunteered at the computer classes at a local high school, I've been asked to keynote next year's ACM SIGCSE conference. I really do want academia to be wildly successful in breeding the next generation of innovators. However, Gary's article reinforced to me the wide gulf that still exists between academia and industry.

In many of my public lectures, I talk about the elements that separate vision from execution (this is wrapped up in my discussion about the limits of software; you'll need to be logged in to my Handbook site to follow that link). Some of these elements are purely the domain of computer science: the laws of physics, the laws of software, the challenge of algorithms, the difficulty of distribution and concurrency. Some of these elements are purely the domain of software engineering: problems of functionality, impact of economics, the influence of politics. A few of these elements lie at the intersection of computer science and software engineering: the problems of design and the problems of organization. So, in all fairness, the academics polled by Gary are focused on computer science, while I care more about software engineering and the development, deployment, and operation of real systems. These are two subtly different worlds, but at their point of overlap, they serve to address a common landscape.

I violently agree with Birman, Chazelle, and Carbonell about the importance of computer science. As I often quote Bjarne Stroustrup, our civilization runs on software; software has changed the way individuals, organizations, companies, countries, entire economies, and modern civilizations move through the world. For this reason, I find Canny's declaration that computers aren't very valuable and that IT does very little to be out of touch with reality. That being said, I do not disagree with him that much more is possible - this is why our industry needs dreamers and why the computer sciences can and should be a vibrant field. Gary next asks this group where they think the next most interesting advancements will come from, and it is this set of replies that display the wide gulf I see. Chazelle mentions algorithms; Bryant names statistical methods; Birman talks about trustworthy computing; Carbonell mentions artificial intelligence. While these are all noble areas of study, they do not strike at the fundamental points of pain that I see in industry that separates vision from execution. Chazelle and Bryant both refer to Google as instances of value from their point of view. While I don't deny the importance of contributions such as the Page Rank algorithm or various statistical methods to the Google way, Google delivers an effective solution to the market only partly because of these technologies, but primarily because they have addressed the systems engineering issues of providing good enough answers over a massive data set, and that involves some very interesting innovations in distribution, load balancing, and massive parallelism. As for trustworthy computing and SOA, I think that Birman is right on, although from my world view the former involves far more human issues than computer science issues to solve and as for the latter issue, he is already several years behind: most interesting enterprises (and if you expand this to the military world) are already incredibly interoperable and heterogeneous, so it's not an issue that it's going to be a big thing, it already is a big thing for industry.

As for the end of Moore's Law, I think that Canny offers some really profound remarks. Our industry is at an economic cusp, and more computational cycles is no longer what it's all about. What disappointed me about all of the answers to this question, however, is what was not said: the chip manufacturers, from Intel to AMD and even IBM have spoken, saying that it's no longer about frequency, but now it's becoming all about intimate concurrency and thus symmetrical and asymmetrical multiple processors on a chip. As I've also said before publicly, the average developer does not - does not - have as a core competency the ability to build secure, concurrent, and distributed systems. From a computer science perspective, we've made only incremental advances in the past 20 or 30 years regarding mechanisms for reasoning about concurrency (and don't get me started on security), yet none of these topics were mentioned. Again, these are things that, from industry, cry out for help.

Gary then asks how computer science can be made more attractive. I like Canny's answer that we've neglected the social aspects of computer science. Chazelle also has a good response regarding outsourcing, but I think that's always a convenient excuse: one can never outsource design or innovation, and it is those creative regions that are at the heart of the fun of this industry. Surprisingly, no one mentions that the upstream pipeline is seriously broken: many students reach colleges already turned off on the computer sciences because they are discouraged in high school (and women in particular are discouraged), or they've received such a shallow education on the power and potential of computing that they think they already know everything they need to know. I cannot count the times parents have come to me saying "oh, my son/daughter knows computers too" and when I probe them on what they know, it's usually limited to downloading music, successfully installing the latest Microsoft security patch, or helping their computer-impaired parents carry out some task on their PC. We aren't teaching the inner beauty and fun of software.

Gary picks up on this point when he relays Chazelle's comment about the need for a computer science popularizer such as Feynman and Carl Sagan as examples from other fields. I chuckled at Dally's suggestion of creating a prime time TV show, not out of derision but because he's probably right for this current generation. Can we get a programmer on Beauty and the Geek? Don't forget the UK sitcom The IT Crowd or the syndicated cartoon User Friendly. I was amused that of the names suggested as potential candidates for a popularizer, they all from from inside academia. While I don't deny the charisma and expertise of folks such as Raj Reddy or Nicholas Negroponte, these are a bit incestuous choices, and neglect the work of Dick Gabriel (Patterns of Software), David Harel (Computers, Ltd.), and - although dated - Tracy Kidder (The Soul of a New Machine). One might even argue that the ACM and IEEE should set up marketing programs to the general public, promoting the computer sciences as cool. Well, one might argue that, although I wouldn't: the great advances in physics, chemistry, biology and the other hard sciences didn't come about because they were wildly promoted, they came about because, as Feynman said, of the joy of finding things out. There is incredible underlying beauty in software, and teaching that is something that I think universities could do to encourage this field (thus my early blog posts about the need for code reading courses, and the work I've done at the Computer History Museum on the preservation of classic software).

So Gary, thank you for your article, for it got me thinking. To each of the folks interviewed therein, know that I greatly respect your various programs and acknowledge the good things that have come out of them - but I think that much more can be done.


Wednesday, May 3, 2006, posted by @ 7:27 AM
Observations From The Road
It's spring, which means that my travel has kicked in to high gear. Managing my travel schedule is perhaps the most challenging time management problem I have. I am grateful that there are so many people who want a piece of me, but currently I'm staring at a five page document that enumerates all the requests for my time and it's frightening in its scope. I could easily schedule myself to travel every week for the next two years and still not exhaust the list. That list contains all the usual places in the United States both inside and mostly outside IBM, but it also contains requests from every populated continent on earth. Don't get me wrong for I love to travel and seeing the world and the many different ways of living has been a humbling and life-expanding journey, but I have to say no more than I wish I had to.

Last week, IBM Rational hosted an executive seminar in Phoenix wherein we flew in about one hundred CTOish types from around the world and from various industries. I gave a talk on best practices in software development, which covered my usual shtick about architecture and process. A good time was had by all over the three days in the sun. This week, I just returned from Salt Lake City where I attended the DoD's Systems and Software Technology Conference and was presented with the Stevens Award. Among other things, I had a very engaging discussion with Kelly Miller, principal director of engineering for the NSA.

Given where I am in my life and career, I have nothing left to prove and thus not only try to lead from the perspective of my world view, I'm also not timid when it comes to telling the emperor he has no clothes. To that end, I think I managed to at annoy/make uncomfortable many of the generals and program managers in the crowd. Specifically, I discussed three topics that were likely very controversial and certainly not the common group think. First, I noted that while I find architecture to be an essential element in building quality software, standards such as the DoDAF were dangerous, because when used (all to easily) improperly, they gave you the illusion you were doing architecture, without really doing any real architecture at all. I made those same comments at a lecture in Washington, DC recently, and unbeknownst to me, two of the primary authors of the DoDAF were in the crowd. Needless to say, we had a lively discussion after my talk, and suffice it to say that the ongoing work of a UML profile for DoDAF is a good thing plus I'm trying to do what I can to assist with the next instantiation of DoDAF. Second, there was some chatter at the SSTC over systems engineer and the degree to which software issues should be considered germane. I made it clear that it would be insane to deprecate any discussion of software issues, for from the perspective of all interesting contemporary systems, the software therein was essential to the functionality of that system and moreover was the source of most of that system's technical risks. Third, I made my usual observation between project success and a high CMM rating: there is only an accidental correlation. Project success in a commercial sense can be measured in capitalistic terms, namely, the return on investment; project success in a government/military sense can be measured in terms of carrying out the assigned mission in a timely, efficient, and predictable fashion. CMMI measures process maturity. These are very different things, for I've seen CMMI 5 shops that are economically unsuccessful and so risk aversive as to be totally lacking in innovation. From my experience, CMMI 3 is an honorable place to be, and anything more gets you into serious organizational psychological issues of number envy. It's this last topic that led to the frosty reception I received from a general who prided himself on running a CMM 5 shop. Still, I stand behind what reality tells me.


Thursday, April 20, 2006, posted by @ 9:34 AM
TagCloud
To aid navigation, I've added a tagcloud to the bottom of my primary blog page.


Thursday, April 13, 2006, posted by @ 3:50 PM
IBM Architecture Sites
If you are new to this blog, don't forget to check out the developerWorks architecture portal and the related IT architecture forum.


Thursday, April 13, 2006, posted by @ 3:46 PM
Subcollections
Because the content of the Handbook is growing, I've added an advanced search mechanism to restrict searches to particular parts of the site.

As I'd previously blogged, I'm using a Google search appliance to index the site, which made it trivial to add subcollections over which to search.


Wednesday, April 12, 2006, posted by @ 2:03 PM
Software Engineering Jobs
This Slashdot post points to a CNN article suggesting that software engineering is one of the best jobs in America.

Speaking of jobs, among other things I'm on the advisory board for Neumont University, a relatively new institution focused on software engineering. I'm delighted to report that their first graduating class - and this is even before graduation in a few weeks - has a 100% placement at the $60,000+ salary range. To me, that's a sign of a healthy market and that Neumont is doing some very good things with their project-based approached to education.


Wednesday, April 12, 2006, posted by @ 8:04 AM
Gossip
This Slashdot post points to a CNN article suggesting that software engineering is one of the best jobs in America.

Speaking of jobs, among other things I'm on the advisory board for Neumont University, a relatively new institution focused on software engineering. I'm delighted to report that their first graduating class - and this is even before graduation in a few weeks - has a 100% placement at the $60,000+ salary range. To me, that's a sign of a healthy market and that Neumont is doing some very good things with their project-based approached to education.
For those of you who like to follow the human side of our industry, check out Valleywag.

This Slashdot post points to a CNN article suggesting that software engineering is one of the best jobs in America.

Speaking of jobs, among other things I'm on the advisory board for Neumont University, a relatively new institution focused on software engineering. I'm delighted to report that their first graduating class - and this is even before graduation in a few weeks - has a 100% placement at the $60,000+ salary range. To me, that's a sign of a healthy market and that Neumont is doing some very good things with their project-based approached to education.


Monday, April 10, 2006, posted by @ 3:52 PM
More Retro Computing
As mentioned in Electronic Engineering Times (and then circulated to the software collection committee at the Computer History Museum), check out Harry Porter's relay computer.


Monday, April 3, 2006, posted by @ 9:22 PM
Celebrating The Moments
Dick Gabriel passed this on to the Hillside Group:

I got this from a colleague: "As you may have noted, on Wednesday, at two minutes and three secondsafter 1:00 in the morning, the time and date will be 01:02:03 04/05/06. Unless you are very young, or live a very long time, this is probablyyour one chance to observe this date. Whoop it up."


Monday, April 3, 2006, posted by @ 4:38 PM
Quote Of The Day
Jim Barton, cofounder and CTO of Tivo notes that "one of the greatest challenges of designing a computer system is in making sure the system itself is 'invisible' to the user" (as quoted in ACM Queue, vol. 4, no. 3).


Monday, April 3, 2006, posted by @ 4:10 PM
RetroNET
Here's an interesting project: RetroNET is an attempt to reproduce the early ARPANET.

I received my first email address in 1980.


Monday, April 3, 2006, posted by @ 2:20 PM
Graffiti Robot
Here's a video clip that caught my eye. Hektor is based on the scriptograher plugin for Adobe Illustrator.


Monday, April 3, 2006, posted by @ 9:12 AM
Travel
Amazingly, I don't travel again for two whole weeks! Having been on an airplane every week the past four weeks was a bit tedious. Don't get me wrong: I love traveling, seeing the world, working with projects, but I have to force myself to say no to more requests than to which I say yes, else I'd be traveling every day of every week of every month of every year. It's easy to agree to urgent things, but my battle has been with fending off all those urgent things so that I have time to do important things.


Tuesday, March 28, 2006, posted by @ 10:43 AM
Cap
Caspar Weinberger died today at the grand age of 88. A few years ago, I appeared on a television program hosted by Weinberger. We met before the program and engaged in some small talk, but when we went on air, Caspar introduced me as "Grant Pooch."


Tuesday, March 28, 2006, posted by @ 9:04 AM
Postmortem Of Microsoft Vista
I struggled with this post. On the one hand, I'm not trying to cast stones at Microsoft; on the other hand, there are some deep lessons to be learned from Microsoft's slip of Vista. Every organization attempting to deliver a continuous product stream in the face of considerable legacy code and a large installed base will confront these same issues. Those who break through these issues will persist; those who do not will collapse.

Mini-Microsoft, a Microsoft developer, recently posted his reaction to the Vista slip. A number of other (anonymous) Microsoft developers posted additional comments. While many of these postings are full of noise and exhibit angst suggestive of considerable organizational frustration, if you blow past those you'll see some interesting trends: the lack of architectural governance, uncontrolled feature creep, insufficient testing, heavyweight processes, lack of trust in the engineering staff. I particularly liked one comment: "Want to see Vista ship? Get rid of 90% of the process that goes between writing the code and getting it checked in." Collectively, these comments suggest that the root problems are not technical, but rather orbit the region of design and organization in my characterization of the limits of software.

IBM is a company that has experienced a near-death experience and has thus far been able to break through to the other side; Microsoft seems be going through a bit of a mid-life crisis; Google is perhaps best characterized as an exuberant adolescent who has not yet discovered his mortality or limitations.

That's not to disparage any of these organizations: the fact that this marketplace has such a diverse set of organizational styles at various levels of maturity is actually the sign of a vibrant industry.


Thursday, March 23, 2006, posted by @ 8:58 PM
Game Developer Conference
I just finished my gig at the Game Developers Conference in San Jose.

What a kick this was! The gaming community is incredibly vibrant and full of innovation. A number of people and journalists (ok, journalists are people too, please don't get me wrong) asked me why IBM had such a large presence and why I was there. As for IBM, do recall that the cell is what powers every new generation console, so not only is there the obvious hardware play, there's also a tools play and a data center play (consider the computational power needed to support a large online multiplayer game). As for me, gaming architectures are themselves quite interesting and worthy of study, plus this is a community that's at an inflection point of embracing the fundamentals of sound software engineering practice, encompassing architecture, patterns, process and all the other topics of which I'm passionate.

In addition, this is one of the few software-intensive domains wherein fun is an essential use case.


Thursday, March 16, 2006, posted by @ 11:39 PM
The Next Big Thing
IBM's own Nick Donofrio recently commented on the next big thing.


Sunday, March 12, 2006, posted by @ 11:32 AM
OO Quarks
Dennis Hamilton has an interesting commentary on Deborah Armstrong's equally interesting article; you'll find it here.


Saturday, March 11, 2006, posted by @ 10:54 AM
ObjectiveView
Mark Collings-Cope pointed me to his e-magazine.


Saturday, March 11, 2006, posted by @ 8:42 AM
SOA Best Practices
I just returned from some work with the SEI in Pittsburgh and then in Washington, DC where I conducted a number of customer visits primarily focusing on service oriented architecture.

Comments about hunting with Dick go over really, really well with the DC crowd.

My take on the whole SOA scene is a bit edgier than most that I've seen. Too much of the press about SOA makes it look like it's the best thing since punched cards. SOA will apparently not only transform your organization and make you more agile and innovative, but your teenagers will start talking to you and you'll become a better lover. Or a better shot if your name happens to be Dick. Furthermore, if you follow many of these pitches, it appears that you can do so with hardly any pain: just scrape your existing assets, plant services here, there, and yonder, wire them together and suddenly you'll be virtualized, automated, and serviced.

What rubbish.

SOA is, first and foremost, about the A part of the acronym (architecture). Organizations who already have a solid approach to architecture will likely do reasonably well with SOA; organizations who already have a broken architecture and/or a broken architectural governance practice will likely fail with SOA and then blame SOA on all their problems.

If you follow the history of web-centric systems, services (with a small s) are a very logical progression of web mechanisms. From a technical perspective, SOA is nothing revolutionary, it's evolutionary. BTW, in this context, the concept of an enterprise service bus can be easily explained as a very elegant and simple pattern for location independence/message translation.

There are places where SOA is suitable, and places where it is not. SOA, from my experience, is one specific architectural style appropriate for systems of systems wherein some but not necessarily all of those systems are already web-centric. This is an important point: SOA is a useful but insufficient mechanism for architectural decomposition. Some would suggest that SOA is all you need. This is seriously wrong.

To that end, services (with a small s) are best suited to relatively large grained/low frequency interactions rather than small grained/high frequency interactions. For that latter situation, other, more traditional, mechanisms of RPC and/or message passing are better suited.

A serious gap in the current state of the art of services is that we simply don't know how to specify quality of service very well at all. It's one thing to wire together services a la National Instrument's LabView, it's another if there are quality/performance/reliability/security/dependability issues for each of those channels and each of those ports.

There are also services with a big S: there is a conceptual kind of service that is not manifest as a pure WSDL service but rather something else. Think of a service as a port on a system, with that port having a well-defined interface consisting of a vocabulary of classes, a protocol, and a particular set of messages and resulting behavior. It is a good thing that you can conceptualize a system as a web of services, some of which are Services and some of which are, well, services.

Going back to the A part of SOA, the issue then is one of abstraction, separation of concerns, and all the usual fundamentals of architecture. I've seen some folks suggest creating an SOA from the bottom up: look at a silo, identify the potential services, and publish them, then weave a system together from them. This is in essence technology first. In my experience, this is a recipe for disaster and/or serious over-engineering. You've got to start with the scenarios/business needs, play those out against the existing/new systems, zero in on the points of tangency, and there plan a flag for harvesting a meaningful service. These styles, and their resulting costs/benefits, are rarely discussed.

In a couple of weeks, I'm off to a very different venue, where I'll be giving a talk at the Game Developer's Conference in San Jose. Developing software for games is big business, and this community is starting to discover that the fundamentals are important: you can't build an enduring a business just by hiring bright people, throwing them in a room together, and hoping that they'll do great things.

But, enough about Google...


Saturday, March 4, 2006, posted by @ 4:02 PM
How Far We've Come
The other day, Steve Mellor asked this question of the IEEE Software board, and I replied:

The past decade, we've learned how to build systems of scale and utility that we could only then dream of; the past decade, we've come to a place where so many individuals, communities, nations, and societies rely upon the products of our labor that our industry has irreversibly changed the face of humanity.

In the coming decade, both of these statements will remain true


Thursday, March 2, 2006, posted by @ 11:38 PM
Patterns, Patterns, And More Patterns
I've finished cataloging close to 900 patterns here (you'll need to be logged in to the Handbook).


Thursday, March 2, 2006, posted by @ 5:30 PM
On Design
The aforementioned Dick Gabriel posed a question to the Hillside Group: what is design? Here's my reply to him:

As a noun, design is the named (although sometimes unnameable) structure or behavior of an system whose presence resolves or contributes to the resolution of a force or forces on that system. A design thus represents one point in a potential decision space. A design may be singular (representing a leaf decision) or it may be collective (representing a set of other decisions).

As a verb, design is the activity of making such decisions. Given a large set of forces, a relatively malleable set of materials, and a large landscape upon which to play, the resulting decision space may be large and complex. As such, there is a science associated with design (empirical analysis can point us to optimal regions or exact points in this design space) as well as an art (within the degrees of freedom that range beyond an empirical decision; there are opportunities for elegance, beauty, simplicity, novelty, and cleverness).

A few related terms:

All architecture is design but not all design is architecture. Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change.

In any given genre of systems, the same designs are found again and again. Insofar as we can name these designs and codify them in a relatively general fashion, they are the patterns of that domain.

Sometimes we will speak of a particular style (or school) of design. A style is a named collection of a set of designs that is observably identifiable from other styles.


Friday, February 24, 2006, posted by @ 6:13 PM
Difference Engine
I wonder if this machine will run Vista?


Friday, February 24, 2006, posted by @ 4:05 PM
More IBM Rational DNA
Last week, I reported on a number of Rationalites who went on to become CEOs of various companies. I overlooked Doug Earl, who co-founded Palladio along with Jon Hopkins, and is now at Serlio Software, which was started by Doug and three others.


Friday, February 24, 2006, posted by @ 3:28 PM
People, People Who Need People
According to this report, there are twice as many people in the world today as when I was born.

With regard to global warming, has anyone considered the wattage of 6.5 billion humans and the contribution that makes to the environment? That in turn reminds me of this scientific discussion (which has absolutely nothing to do with software, of course, but it's still interesting to ponder).


Friday, February 24, 2006, posted by @ 3:11 PM
Software Architecture Kit
I recently produced some podcasts for the IBM software architect kit


Friday, February 24, 2006, posted by @ 6:37 AM
Choosing A Framework
There's an interesting thread at Slashdot regarding choosing a Web client framework.

A decade or so ago, extreme innovation took place in languages; now it's happening in frameworks, largely (IMHO) because a) the cost of entry and the barriers to success of a new language are much higher today and b) our collective consciousness has not yet self-selected the optimal abstractions relevant to building systems on the edges of a Web-centric system.


Thursday, February 23, 2006, posted by @ 10:15 AM
A Sure Sign Of the End of Civilization As We Know It
The theme from Sesame Street, in Klingon.


Wednesday, February 22, 2006, posted by @ 7:42 PM
Patterns of Software
I've just finished rereading Dick Gabriel's book, Patterns of Software. Dick is one of the most lucid :-), most human, most fully alive programmers I've had the pleasure of knowing (that sounded so final; don't worry, he's not dead yet). The quality of his writing is something to which I aspire. Take this passage from page 232:

The salt sweet tears, the edgy new love affair, the first birth, the exhaustion falling on exhilaration, frustration, and anger, the kicked heart of rejection, and all the world of life finds its way into the lines of code, the designs, the architectures and frameworks we find essential to running our system of life in the political and economic world.


Wednesday, February 22, 2006, posted by @ 10:45 AM
Organizational Patterns
As I continue to form a catalog of patterns for the Handbook, I've been pouring through references I'd previously read, including Jim Coplien and Neil Harrison's Organizational Patterns of Agile Software Development.

This is such a brilliant book; if you don't have a copy, amazon one right now (every noun can be transformed into a verb, as in "I just googled my boss."). I didn't realize until I read their work a second time how much wise advice they offer about architecture.

One quote from the book that's stuck with me all day: "Programming is the act of deciding now what will happen in the future."


Monday, February 20, 2006, posted by @ 10:40 PM
Upcoming Events
I'm in the midst of preparing for several upcoming events. In a couple of weeks, I'll be at the SEI in Pittsburgh and then will travel on to Washington, DC for some seminars and customer work. After that, I'll be speaking at Game Developer's Conference in San Jose...a far cry from the typical enterprise systems one usually finds associated with IBM, but then again, IBM's supplying the chip for every next gen. game console.


Friday, February 17, 2006, posted by @ 8:38 AM
IBM Rational DNA
Earlier this week I posted an entry about Joe Marasco, CEO of Ravenflow. He wrote back, observing that there were quite a few people who grew up in the Rational culture then later moved on to become CEOs of other software companies. Joe and Dave Bernstein collected the following list (which I've put in alphabetical order):
Other former Rationalites who later became CEOs include Rob Dickerson, Adam Frankl, and Pamela Roussos. Additionally, other former Rationalites who are not CEOs but still hold key positions in their companies include Robert Gersten (Hyperion), Burton Goldfield (Hyperion), Rich Reitman (Adobe), Tom Schultz (Codefast) and several others. Serving on several boards of directors include former Rationalites Bob Bond and John Lovitt.

Finally, two other notable former Rationalites include Vinny Smith (at Rational for only a few months but now CEO of Quest) and Reed Hastings (founder of Pure Software which was acquired by Rational, and now founder and CEO of Netflix).


Friday, February 17, 2006, posted by @ 6:59 AM
Data Management Services
IBM has announced that we'll radically bump up our investment in data management services.


Thursday, February 16, 2006, posted by @ 10:15 AM
VoIP
I'm on the verge of making the switch. I currently have a T1, an ISDN line, and three analog lines running into my home, but VoIP is looking more and more attractive, bringing all but the ISDN line into one package at roughly 1/3 my current cost (if you include the least of the frame relay line, Internet access, voice lines, and long distance). It's a wonder that the telcos are making any money at all.

Has anyone else out there made the switch and have some war stories to offer?


Thursday, February 16, 2006, posted by @ 10:11 AM
Survey On Software Architecture Workstyles
Pedro Campos at the University of Madeira has a survey on software architecture workstyles. Feel free to contribute.


Thursday, February 16, 2006, posted by @ 9:27 AM
Plop, Plop, Fizz, Fizz
The call for papers for PLOP 2006 is out; all you pattern authors out there take note.

This PLOP is not that plop (although you have to admit it's a snappy name for a conference).


Wednesday, February 15, 2006, posted by @ 4:09 PM
Ravenflow
Joe, former Rationalite and now a CEO, reminded me of the name change of his company from N8 Systems to Ravenflow.


Wednesday, February 15, 2006, posted by @ 9:49 AM
Projection
Again from Slashdot, a report on a tiny laser projector.


Tuesday, February 14, 2006, posted by @ 12:49 AM
Google/IBM
Via Slashdot, this article in which Chris DiBona, Google's open source program manager, speaks of his admiration for how IBM has approached open source.

I agree with you, Chris!


Tuesday, February 14, 2006, posted by @ 10:40 AM
Yahoo Patterns
A dear colleague just pointed me to these patterns from Yahoo.


Tuesday, February 14, 2006, posted by @ 9:39 AM
URL Must Die
Apologies to all of you Dixie Chicks fans for co-opting one of their song titles.

I've had this gnawing feeling for sometime that explicitly visible URLs are annoying, distracting, evil - and yet another sign of the bones of the Web sticking through. They should be banished from sight of the average user.

The growing use of Web services will accelerate this banishment, I suspect. When one app. talks to another, as a user you really don't care how it does so, and thus touching a service will simply be part of the plumbing. Nowadays, that plumbing is overt, and you see it every time you enter an address in a browser or roll your cursor over a link and see the URL flash in your browser's status bar. Simple URLs are memorable (http://www.ibm.com) but most extended ones are ugly and meaningless to the average user.

No idea why I'm ranting about this nit today, except just to make a prediction that URLs will likely go the way of old telephone numbers, such as FLeetwood5-1273.


Tuesday, February 14, 2006, posted by @ 9:29 AM
Security
A colleague who runs a modest but growing financial business called me in a panic the other day. It seems that he replaced his IT support person with a new contractor. New guy comes in, begins working on the system, then midway through discovers he's been locked out. The owner, not having any other administrative account, even though he has physical access to the server, is shut out. I suggested there were one of two possibilities: incompetence on the part of the new guy, or something sinister on the part of the old.

Turns out it was the latter: old guy, disgruntled over having been replaced, logs in to the system remotely while new guy is working, changes all the passwords, then essentially blackmails the owner, offering to release the system for a certain sum of money.

Ouch.

A number of lessons here. Putting all your trust in one person who can bring down your system yet is not an vested member of your team is dangerous. Not having alternative means of getting control of your system is a Bad Thing. Managing the transition among IT staff is critical. Having mechanisms in place to ensure an orderly change of command, immediately shutting out people who are no longer authorized to access your system, is important.


Friday, February 10, 2006, posted by @ 12:28 AM
The IT Crowd
Check out this Web sitcom from the UK.

Another one of my favorite satires of the high tech world is User Friendly.


Friday, February 10, 2006, posted by @ 9:28 AM
A Potpourri of Sites
I've collected several sites worth sharing.

The IBM cell has been in the news lately; not only it is the dominant platform for every new generation game console, it's also getting play in the fields of medical electronics and defense computing. Other cool IBM technology in the news lately involves our developments with speech technology. Speaking of play, the recent announcement of Pixar and Disney points out the fundamental shift in the entertainment industry caused by the presence of software-enabled businesses; this kind of deal would have been unheard of a decade or so ago. Speaking of shifts (don't you just love my segues?), this one a victim of technology, Western Union has decided to stop sending telegrams. Other much-lamented victims of changing economics include Sony, who has decided to stop production of their robotic dog, the Aibo, and Konica Minolta, who has gotten out of the camera market.

Turning my attention to the needs of all you ubergeeks out there, check out Andrew Carol's implementation of the Babbage Difference Engine, made entirely of Legos. Are you lusting after some Google stats? Check out this study on web authoring statistics. Need a code warrior/are you a code warrior with spare cycles? Check out this site that brings together both. Interested in the latest buzz in Silicon Valley? Check out ValleyWag. Finally, if you long for a nostalgic look at the web, check out the very first banner ad on the Web.


Wednesday, February 8, 2006, posted by @ 1:54 PM
Borland
The startling news out of Borland is that they've decided to divest their IDE business.

Wow.

I'll follow the repercussions of this seismic event over the coming days.


Monday, February 6, 2006, posted by @ 4:07 PM
Gallery Of Software Architecture
I've added 15 more examples to my gallery of software architecture (you'll need to be logged in to the Handbook).


Friday, February 3, 2006, posted by @ 8:18 AM
IBM Advertising
DigiBarn, an online computer museum, has a collection of IBM advertising from 1948 to 1954.


Thursday, February 2, 2006, posted by @ 11:10 PM
Waterfall And Patterns
Last week I'd made mention of the forthcoming conference, Waterfall 2006. I'm delighted to report that our very own Per Kroll has had a paper accepted at this august conference.

For those of you following the Handbook, I've now cataloged slightly more than 400 patterns.


Thursday, February 2, 2006, posted by @ 6:56 AM
Why I Hate Frameworks
Check out this wonderful discussion of the topic. Hats off to my dear colleague Philippe who sent this my way.


Tuesday, January 31, 2006, posted by @ 8:23 PM
New Toy
I have a relaxing evening planned: I'll be installing an expansion kit for my network attached storage appliance, which I'm upgrading from one to two terabytes. Currently, I've only been able to run daily incremental backups on my most critical files, but if I include images of all the disks on my network, it comes to just about 1.5TB. Expanding my NAS gives me a little more breathing room, although I can only do so if I configure the appliance to RAID0 (but then, I also have a streaming tape drive that I use to back up my backup monthly).

So far, the uptime on my NAS appliance and my firewall, all of which are Linux boxes in disguise, is around - let's see, um - two years (save for one reboot to install a new OS).

I just love technology that, after I install it, simply disappears from view.


Tuesday, January 31, 2006, posted by @ 7:49 AM
Naked Objects
A colleague pointed me to this site on the Naked Objects Framework. I wish I could have seen the look on the face of the government official with whom the founders submitted the legal paperwork to register the Naked Objects Group in the UK.

Seriously, though, this framework seems to have some real traction in Ireland. I honestly know little about the work myself, but I've begun to remedy that by ordering Richard and Robert's book from Amazon.


Monday, January 30, 2006, posted by @ 10:24 AM
IBM Happenings
As noted on Slashdot, IBM has released a free version of DB2 as well as some very interesting speech recognition technology.


Friday, January 27, 2006, posted by @ 2:01 PM
Waterfall Process
Be sure to register for Waterfall 2006, to be held in early April in upstate New York. I'm particularly looking forward to Bank's keynote on Super Model Driven Architecture.

Thank you, Joe and Philippe, for bringing this important conference to my attention.


Tuesday, January 24, 2006, posted by @ 9:19 PM
On Classifying Patterns And Architectural Styles
The past few days I've been cataloguing several hundred architectural and design patterns (you'll need to be logged in to the Handbook to follow that link). A metapattern is emerging, with a number of clusters of related patterns becoming obvious. It's a little early to say so definitively, but my current hypothesis is that groupings of these clusters can be aligned along each of the views in Philippe's 4+1 model view; in other words, there are logical patterns, process patterns, implementation patterns, deployment patterns, and use case patterns.

Most of the patterns I've cataloged thus far are solidly design patterns, meaning that they represent some named society of classes or components that interact. Some of the patterns I've studied are classified by their authors as architectural patterns, but I'm rapidly coming to the conclusion that that's the wrong name for this genre: they are in every case really a pattern associated with one view of a system, not its entire architecture (although they are larger than a society). I'm not sure what to call them.

The other issue I'm wrestling with is the distinction between an architectural pattern and an architectural style. We don't yet have a lot of good named instances of either, although we seem to be able to smell them when they are nearby. For example, "Web-centric" is a candidate style, for it implies a collection of interlocking view-specific patterns (in terms of deployment, it's a classic distributed system involving application servers; in terms of components, it involves static components such as HTML, dynamic ones such as DHTML, and operational ones such as beans and relational databases; logically, there are a plethora of design patterns commonly at play). DoDAF is another candidate style. Or is it an architectural pattern? Perhaps it simply a documentation standard? One can argue effectively for each of these positions.

By the way, this very issue is one that a working group of the IASA is tackling right now, in its metamodel work.

It seems all too often in our industry we chase a methodology by starting with some broad ideas and deducing instances. What I'm trying to do here is the reverse, working inductively by starting with the instances and identifying the underlying general principles.


Monday, January 23, 2006, posted by @ 3:53 PM
Happy Anniversary
According to this report, it's the 20th anniversary of the first PC virus.

Living on a Mac, however, I've never had to spend a moment worrying about it. :-)


Wednesday, January 18, 2006, posted by @ 5:34 PM
More Patterns
For those of you tracking this, I now have over 200 patterns cataloged here (you'll need to be logged in to the Handbook).


Tuesday, January 17, 2006, posted by @ 10:12 AM
Use Cases And Amazon
I responded to an email from Amazon, requesting my approval for a delay in shipment, and was delighted and amused to note that the URL contained the parameter "useCase=approve." Tis nice to see that the developers at my my favorite online store use use cases :-).


Monday, January 16, 2006, posted by @ 11:36 AM
Starting A New Year
'Tis a cold and snowy day here in Colorado. I'm back from my latest travels, and am back to updating the patterns catalog in the Handbook (remember that you'll have to be logged in to visit the catalog).