Morning Coffee 138

  • In writers strike news, the WGA has made side deals with Worldwide Pants (aka Dave Letterman’s company), United Artists (aka Tom Cruise’s company) and The Weinstein Company (previously known as Miramax). The WGA strategy of divide and conquer seems to me making slow progress. Update: The Weinstein Company was founded by Miramax’s founders Harvey and Bob Weinstein after they left Miramax. But Miramax is still around. Thanks to GrantC for the correction.
  • They’re still two games under .500, but the Caps completed a season sweep of the Eastern Conference leading Ottawa Senators last night. They’re only 3 games out of the top spot in the (admittedly very weak) Southeast division
  • Big tech news today isn’t coming from MSFT-land. Sun is buying MySQL and Oracle is (finally) buying BEA. Both deals seem like pretty significant culture clashes, though Sun/MySQL seems like the better fit of the two.
  • There’s a new draft of Service Modeling Language 1.1 available. If you’ll recall, this used to be called the System Definition Model, part of the Dynamic Systems Initiative. Hadn’t heard anything from those folks in a while, good to see they’re making progress.
  • Stephan Tolksdorf dropped me a line to tell me he was able to “vastly simplify” FParsec, and as a result it now runs on the current version of F#. Awesome!
  • Speaking of F#, Scott Hanselman has a new F# podcast, this time interviewing Dustin Campbell. Check out all of Dustin’s F# posts.
  • I didn’t know about the “Copy as Path” feature in Vista. Why is it hidden?
  • I was a big fan of the WDS deskbar shortcut feature – a feature that is missing in Vista. Enter Start++ by Brandon Paddock, which adds shortcuts to Vista’s search box. It also supports “iPhone apps” and scripting. But JScript? Where’s the PowerShell love, Brandon?
  • EA released the source code to the original SimCity under the GPL. Bil Simser is digging into the code and it looks like he’s going to port it to XNA. (via Ozymandias)
  • Wes Haggard has published the source code to CodeHTMLer on CodePlex. He took two updates from me: the F# language definition as well as the ability to choose the font when not using PRE tags.

Morning Coffee 118 – ITARC SoCal Edition

I’m not back on blog sabbatical, but between finishing my presentation and attending ITARC SoCal earlier this week – not to mention being sick – I didn’t have time to write anything. Normal Morning Coffee resumes tomorrow, here’s a summary of my notes from on my two days at ITARC.

Scott Ambler did the opening keynote on agile enterprise architecture strategy.

  • He claims that success is more prevalent in the industry that people think, because the industry has a narrow definition of success. If you change (aka widen) the definition, the success rate goes way up! That’s not exactly useful, but he referred to an as-yet-unpublished survey on project success rate that should be up on DDJ “soon”. I’d like to see that raw data.
  • While I agree with most of his points, Scott’s presentation style is very abrasive. For example, he makes the point that there is no one-size-fits-all process, which I couldn’t agree with more. But does he say it like that? No, he says “Repeatable processes? What an incredibly stupid idea!” even though the room is full of folks who probably think repeatable process is actually a good idea.
  • Scott suggested that unit tests are the best way to specify requirements. I’ve heard this before from agile practitioners, but something nags at me about it. Certainly, having executable requirements is a huge plus. But how can you be sure they’re the right requirements if the stakeholders can’t read them?
  • This keynote setup what turned out to be a major theme for the conference – traditional vs. non-traditional enterprise architecture. Or as I would characterize it: Industrial vs. Post Industrial architecture.

Simon Guest presented on user experience in architecture, which is his specialty these days. He lays out a UX model that was very compelling. I’m not sure if there’s a whitepaper version of this model (there should be) but you can see the model as he lays it out in powerpoint. I’ve seen Simon’s UX decks, but never actually seen him present it, so that was a treat.

I skipped Ted Neward’s session in order to take in something new. So I went to see Daniel Brookshier of No Magic talk about DoDAF – the Dept. of Defense Architecture Framework. I had met Daniel the night before at dinner and while No Magic primarily sells UML modeling tools, we seemed to agree that UML is most useful (in my opinion “at all useful”) when you imbue the vanilla models with custom semantics – aka you turn them into a DSL. So while I liked hanging out with Daniel, his DoDAF session did nothing except ensure I never work for the DoD. There’s no amount of money that’s worth dealing with the two dozen or so bureaucratic models that are all wholly isolated from anything that actually executes. Daniel kept saying how easy these models are to build. I’m sure they are, but that’s not the problem. Since they’re not an intrinsic part of a construction process, they won’t stay up to date. This was a very industrial approach – Daniel even stated at one point that he was “anti-Ambler”.

David Chappell did the second keynote on grid-enabled SOA.

  • When did David join Oracle? I guess I haven’t been paying much attention to competitors since I moved to MSIT.
  • There’s an article version of this presentation available, but I haven’t read it yet.
  • For me, the best part of this presentation was him acknowledging that there’s a need for non-stateless services, something he has blogged about recently. I’m not sure I agree with his framework for stateful interaction, but at least he’s admitting that it’s needed. Now if I could only convince the Connected Systems Division…
  • The rest of his talk was basically a sales pitch for the Coherence product Oracle recently bought. Basically, it’s a huge, multi-node, redundant, in-memory database. While I’m sure there are a few high-end problems out there – my immediate thought was travel and David mentioned SABRE is one of their customers – this is not a good general purpose solution, though David was positioning it as such.

My talk on “Moving Beyond Industrial Software” was after the second keynote. It was good, if sparsely attended. I’m doing it again @ the p&p Summit so I’ll post the slides and hopefully a recording after that.

I skipped the last session of the day to decompress, so the next session I went to was the day two opening keynote by Fred Waskiewicz, OMG’s Director of Standards. His talk, unsurprisingly, was on the value of standards – in particular, OMG’s standards. This was about as anti-Ambler, anti-agile, pro-industrial a presentation as you could make. I’d heard this spiel before, so I mostly tuned out. I did challenge Fred on his point that the UML models are at a higher level of abstraction than code. They’re not – they’re a visualization and they’re very useful, but they’re at the exact same level of abstraction as code. That’s why you can automatically generate the visualization in tools like Visual Studio’s class designer. Fred didn’t have much of a response to my question, though he did point out that some models like Business Process Models are, in fact, higher levels of abstraction.

Next was what I thought was the best presentation of the entire show, IASA Founder Paul Preiss on what architects need to know. Note, I’m not brown-nosing Paul here – I’m the guy that first decided to commit Microsoft as an IASA sponsor, so he has to like me even if I thought his session was crap. Paul talked about architect as a career, comparing it to doctors. He worries that he’s over-using that analogy, but software architect has much more in common career wise than it does with building architects IMO. I wonder where one might do their architecture residency? He also thinks of architects as “living governance”, saying that project managers answer to the stakeholders while architects are beholden to the stockholders. I like that approach to governance.

Finally, I attended Vince Casarez’s session on Web 2.0 in the enterprise. Vince is an Oracle VP and this turned into a sales pitch like David Chappell’s keynote did. I’m not sure what product it was, but it reminded me of QEDWiki from IBM that I saw at ETech last year, which isn’t a complement. If you’re going to build an enterprise mashup designer, is it just me or is “lots of code spew” a poor model. Why not go for something like Popfly or Pipes?

I left early the second day in order to get home before my kids went to sleep (which I failed at due to lack of naptime). Overall, the conference was pretty good, though a bit sparsely attended in part I think because they held it in San Diego. The Orange Country IASA user group is very popular, so I don’t understand why they didn’t just hold it around there somewhere. Live and learn, I guess. They did have to postpone the DC event until next year sometime. Here’s hoping I get invited to that as well as well as ITARC SoCal ’08 (note, that is brown-nosing a bit)

Morning Coffee 57

  • Scott Hanselman’s post on Mindful Coding reminded me of the practice of rubberducking. The basic idea is that when you’re stuck on a problem, you explain it out loud to an inanimate object – aka the rubber duck. (though when I originally heard about this practice, it was a teddy bear.) Maybe instgead of Coding Mindfully, we should be Coding Out Loud?
  • Quick side note to the previous bullet: I have often worked thru a problem by explaining it to my wife who, like Scott’s wife, nods in all the right places, but cares not about such things. But calling your wife a rubber duck is bad for your health, so I’d rather call it Coding Out Loud.
  • I’m a couple weeks behind on this, but Microsoft along with BEA, BMC, Cisco, Dell, EMC, HP, IBM, Intel, and Sun submitted the Service Modeling Language to the W3C. For those not plauing along at home, SML is the new name for the System Definition Model and is a core deliverable of the Dynamic System Initiative. Good to see it’s gotten such broad support for this.
  • Jezz Santos and Edward Baker wrote a series of posts entitled “Factories 201“. The entire series is good, but I particularly liked Jezz’ post How Long Will It Take? His rough estimate is that it takes at least five products built with a software factory before you recoup your investment in building the factory itself. Sounds like a fair assumption.

Cut Out The Middle Man

Nick Malik is an architect in MSIT’s Enterprise Architecture group. He’s been blogging a while, though I only discovered his blog a couple of weeks ago. Yesterday he posted about OMG’s SOA SIG’s Draft RFI on EDA and it’s relationship to SOA and BPM. That’s a veritable alphabet soup of acronyms! To translate, the Object Management Group’sSpecial Interest Group on Service Oriented Architecture has posted a draft Request for Information on Event Driven Architecture and it’s relationship to Service Oriented Architecture and Business Process Management. Here’s the summary from the actual document:

The EDA Sub-group of the OMG SOA SIG seeks information from members of the EDA, BPM and SOA community as well as anyone interested in promoting standards in this area. Requested information will be evaluated by the EDA Sub-group, resulting in the development of Requests for Proposal(s) (RFP) for standardization of Event definition, relationship between EDA, BPM and SOA that will ultimately allow development of standards for Complete Life Cycle of Events -Ontology of Events, Sense and Respond Services, Events Metrics and processing of complex events. Please note that it is our intent to develop modeling standards for the EDA/SOA and EDA-Business Process interaction and provide standards for the implementation of that interaction as well.

First off, I’m a bit wary about this part: “it is our intent to develop modeling standards”. Of course, OMG is responsible for UML and long time readers should be well aware of my opinion of UML. I don’t want to set the bozo bit on an entire organization, but I am skeptical that any new modeling “standards” from OMG will be any more effective than the Unwanted Modeling Language.

Secondly, EDA seems to be vaguely defined, if at all. Wikipedia has this to say about EDA:

An event-driven architecture (EDA) defines a methodology for designing and implementing applications and systems in which events transmit between loosely coupled software components and services. An event-driven system is typically comprised of event consumers and event producers. Event consumers subscribe to an intermediary event manager, and event producers publish to this manager. When the event manager receives an event from a producer, the manager forwards the event to the consumer. If the consumer is unavailable, the manager can store the event and try to forward it later. This method of event transmission is referred to in message-based systems as store and forward.
[emphasis in original]

Assuming events are encoded as messages, then you can rewrite “event consumers / event producers” as “message receivers / message senders” and you really blur the line with SOA?

The big difference in EDA seems to be the use of an “intermediary event manager”. The problem I have with this approach is that the “intermediary event manager” works fine if you have a small number of endpoints, but how will it scale to handle hundreds of systems? Thousands? Tens of thousands? I don’t see how the centralized event manager approach can possibly scale to handle tens of millions of events delivered between tens of thousands of systems. The management of such a system would be a nightmare? If a business process went south, you would obviously look in the central event manager as the source of the problem, but I would think that would be like finding a needle in a haystack. You could federate the event managers, instead of attempting to scale out the center. But a federated event manager approach would seem to defeat much of the purpose of an EDA in the first place. If you’re going to federate your event managers, why not cut out the middle man and make each event producer it’s own event manager as well? What is the benefit of separating these capabilities?

I guess fleshing out EDA isn’t a bad idea, but it seems more like a solution looking for a problem to me.

Is SML Another Unwanted Modeling Language?

Piyush Pant wonders if SML solves a problem that nobody has? He also points out SysML project, which recently got folded into the OMG. Well, that explains why we called it “Service” instead of “System” modeling language.

Now that I work in IT, I can definitely say that SML will eventually solve a problem that I have. Most people agree that operations today is way to dependent on manual processes to scale effectively. Now SML doesn’t solve that issue directly – as Piyush pointed out SML is a meta-modeling specification. However, SML is the foundation for the next generation of operational modeling tools like what we see in Visual Studio Team System for Architects. As I wrote several years ago, VSTS:A solves a very common problem – developers lack of understanding about the deployment environment. Piyush, haven’t you ever had a long weekend going back to the drawing board because the solution you had built was undeployable and you didn’t discover that fact until the operations team attempted to deploy it? If you haven’t, I envy you.

On the surface, I agree with Piyush when he says that “history of software is littered with unsuccessful attempts to impose monolithic modeling constructs”. However, the fact that it keeps happening indicates the problem hasn’t been solved. Wanting to solve a problem and being able to solve a problem are two different things. Furthermore, the history of software is also littered with very successful attempts to raise the level of abstraction by the introduction of new programming languages: C, C++, VB and Ruby are all examples of this. Given that Code is Model, what we have is a history of software littered with some successful and some unsuccessful modeling constructs. I would argue that the successful modeling constructs have taken a bottom up approach – build a language a small abstraction step above something that actually runs and compile down. These unsuccessful modeling constructs (*cough* UML *cough*) take a top down approach – build a language way above anything that actually runs and hope a miracle happens to keep it in sync with the stuff you actually build.

The question is whether SML will be top-down (i.e. a failure) or bottoms-up (i.e. a success). So far, it’s to early to tell, but I have high hopes.