XmlObject - Adaptive Object Model

Better Designs Faster

XmlObject Primer

Welcome to the primer.  So why a story?  I have attempted to explain XmlObjects many times, with many more failures than successes.  Most of the time the listener (or victim) is not a practicing software architect and, even though the idea is relatively simple, they get lost in the details.    By framing the details in a story I hope to make them manageable and easier to remember.

The story has three characters.  Victor is the main character and narrator, Jim is his boss, and Jennifer is a lead developer.  The story starts with Victor arriving at work.


Victor got out of his car and looked at the roof.  His car was a 68 Oldsmobile Cutlass convertible in desperate need of some TLC.  The car was clean enough on the inside but the outside was covered with dirt and the birds had been using it for target practice.

He looked around the parking lot, surprised to see his boss’s parking spot empty.  His boss had left an urgent sounding message asking Victor to come in early.  Inside Victor was surprised a second time.  Jennifer was not at her desk.  No matter how early Victor got to work, Jennifer was there earlier.

Part of the puzzle was solved when Victor heard Jennifer’s voice coming from Jim’s office.  She was obviously upset. Victor could hear a muffled reply.  He paused for a second and thought about going to his own office, but the tone of her voice convinced him otherwise.

As he stood in the doorway, Victor thought the report his boss was reading looked familiar.  Both people were aware that Victor had entered the room but neither acknowledged his presence until Jennifer waved him over, “Victor, look at what they want us to do to Chicago.”

Chicago, once Victor’s baby, had become Jennifer’s, mostly by virtue of her hard work.  It is the code-base from which several, profitable, automobile manufacturing applications were built.

Jim, still looking at the report in his hand, calmly said, “Jennifer I know you don’t want to hear this, but we do not have the luxury of choosing our timelines.  Fifteen month releases won’t cut it anymore.  Quite frankly, even with a December release we are pushing our luck, and the next release has to be midsummer or we jeopardize the whole product line.”

Victor suddenly recognized what Jim was reading.  It was a report detailing several key metrics for the Chicago project.  The report showed that the effort on Chicago had been growing geometrically.  The last release was a success, but only because of Herculean efforts by the developers, and a large measure of customer good will.

Jim stopped talking to Jennifer and spoke to Victor.  “I’m glad you’re here.  Let’s get going.”

“Where,” said Jim.  “I’ll tell you on the way to the airport” said Jim as he grabbed his jacket.

Victor paused, then said “ahhh Jim ...”  “Relax,” replied Jim.  “I just need a ride to pick up my car.  I flew in late last night and had a taxi bring me directly here.  I’ve got three hours on you slackers and this will be my only chance to get out.”

Page 2, Page 3