Ulterior Motive Lounge
The world's first UML comic strip!
In a classic Dilbert strip, Tina the Tech Writer is forced to write docs for code that doesn’t exist yet. Her last line: “If you call our tech support, we’ll blame Microsoft.” Works for me! I blame Microsoft for why I don’t have a new Lounge today. OK, so time spent job searching is a larger factor. But still, I’d rather blame Microsoft. In particular, I blame Windows 7. Now by and large, I’m loving the Windows 7 beta. It’s a thousand little things I didn’t know I needed, but now I need. And it’s...
Continuing The Project that Time Forgot, a UML case study. (Click images for larger versions.) On the surface, this Episode may seem almost social. Demented and sad, but social. But if you could join Hacker Girl, reading Geek Girl’s Tablet PC over her shoulder, you might see a different picture: And you would also see this diagram: You saw a conversation. Geek Girl hopes that Pilot saw a conversation. But she saw an interview, and a chance to capture and model requirements. Let’s review the notation...
Continuing The Project That Time Forgot, a UML case study in comic strip form... (Click pictures for larger images.) After a long hiatus due to weather, illness, work, conferences, and more stuff than I can explain, the Lounge is back. This Episode gets the ball rolling for Act II, so there’s not much new UML content here yet. But I can give you a few diagrams of the team’s review process. The process starts with some preliminaries, then splits into three threads of operations, each with a separate...
As I’ve written elsewhere, I love maps. And I love a story that includes maps. Maps help me to see where the action takes place; and they give me tantalizing clues to action yet ahead. When I first opened a hardcover of The Hobbit and unfolded the big map of Wilderland, I was hooked. So for those who love maps like I do, here’s a map of Carnivore Park. (Click picture for a larger image.) This is where the rest of the story takes place; and following it is a map guide that may contain clues to what...
Continuing The Project That Time Forgot, a UML case study in comic strip form... (Click pictures for larger images.) Here, for your convenience, is a larger version of the activity diagram from panel 2: Figure 1: The Recipe for Growing a Dinosaur And here is Editor Bill's comment on that diagram: "I hope in the commentary you plan to explain that this activity diagram tells the story of the rest of the Episode." Well, no, Editor Bill. I hoped that by now my readers were UML-savvy enough to figure...
Continuing The Project That Time Forgot, a UML case study in comic strip form... (Click pictures for larger images.) “We grow dinosaurs!” Big whoop, huh? Like anyone reading the strip hadn’t figured that out before I started Scene 1… It’s hard to surprise the characters in a story when the audience can tell from the promos what the surprise is. But since The UML Guy has been part of the project before, none of this was a surprise to him. So while the others were taking in the new sights, he was drawing...
Continuing The Project That Time Forgot, a UML case study in comic strip form... (Click pictures for larger images.) And just in case you can't read that sign above the gate, here's a larger view: So Editor Bill looked at this strip and said, "Geez, Martin, what happened? You spent so much time drawing that volcano cone, you didn't have time for any UML?"* "What?" I said, "You don't see the UML content in this Episode?" "Well, yeah, there are a couple new systems mentioned, I guess." "Ah," I said,...
Continuing The Project That Time Forgot, a UML case study in comic strip form... (Click pictures for larger images.) There's the business, and then there's the role of the system within the business. If all you focus on is the role of the system, you can miss chances to see where the system's really needed. So time permitting, I would rather start by understanding the whole business and then work inward. Oh, sometimes the division is very clear: if my client asks for a change to their payroll system,...
Continuing The Project That Time Forgot, a UML case study in comic strip form... (Click picture for a larger image.) This is the first we've seen of Deployment Diagrams in the Lounge; but they're enough like Class Diagrams that I think you should find them easy to read. Here's the diagram above, larger and more readable: The cubes represent nodes within the system. By default, they represent Processors: computers where you'll deploy code. The <<device>> stereotype here indicates devices...
Note: This was scheduled for tomorrow (hence the date drawn on the strip); but due to the U.S. Thanksgiving holiday, I'm releasing it a day early. Continuing The Project That Time Forgot, a UML case study in comic strip form... (Click picture for a larger image.) So in the previous Commentary, I wrote: This Episode is all introduction. It doesn't include much UML content, and there's not much to add yet. So naturally, this Episode has no UML content. But it was necessary to set the stage and to introduce...
Starting today in Ulterior Motive Lounge: a new UML case study. (Click the picture for a larger image.) And so it begins: a "simple" software project gone awry, and the slim hope that modeling will help us to understand it better and get it back on track. And if you think you've seen this story before and you think you know where it's going, take a closer look at that "hex sign" in the dirt: There's something mighty peculiar going on on The Island... So here's how this case study is going to work....
Spent all day on other projects. Look for the first Ulterior Motive Lounge case study starting Monday
UPDATE: My word, what a lot of typos! I blame the bright sunlight and the glare it created on my Tablet PC. And I wasn't gonna move, because bright sunlight in Michigan is a rare treat right now. Fixed! In our last Episode, The UML Guy and Geek Girl explored how State Diagrams help you to model the rich range of flow in a user interface. Today, The UML Guy has an announcement. (Click picture for a larger image.) To this point, the Lounge has been somewhat random and piecemeal. (In other shocking...
If Babel Fish hasn't let me down, that title should read, "Welcome, honored visitors from China!" But if it doesn't, I couldn't tell you. (UPDATE: John Workman and a Chinese friend have provided a better translation. Thanks!) Ever since I added Google Analytics stats to the Ulterior Motive Lounge archive, fully two-thirds of my visitors there have come from China. And tonight, someone found my Geeks with Blogs site via this referral string: http://google.cn/search?q=u... Yep, that's...
Inspired by Steve Ballmer, here's some cheerleading for the most important part of the software development process... UPDATE: Here's a larger, more legible WMV version. Once upon a time, I wrote a book. Or rather, I wrote all but one-half of chapter 3 of a book: Requirements Patterns & AntiPatterns, sold to Addison-Wesley. For various reasons -- partly lost motivation when my Dad died, partly needing to put food on the table, partly just not finding time -- I've never been able to finish chapter...
In our last Episode, Linguist Coder and Prototype Analyst kidnapped The UML Guy and demanded he explain arrows in UML. After a rescue by the police, The UML Guy returns to the Lounge. (Click the picture for a larger image.) This one is for Jennifer Marsman, who is quite possibly the second-most-fanatical UML geek that I know. She's also the creator of Featured Women in Technology, an ongoing series of profiles on women who shine in technology fields. Jennifer does her part to show young women that...
In our last Episode, Apathetic Coder and The UML Guy derived code from Sequence Diagrams. Today, the Lounge has a pair of unexpected visitors. (Click picture for a larger image. UPDATE: The larger image is broken somehow. I probably can fix that later tonight.) This Episode is a hodgepodge of obscure references: Star Trek. Zatanna the Magician. The Ransom of Red Chief. Benjamin Franklin. Entity Relationship Diagrams (ERDs). Data Flow Diagrams (DFDs). Episode 8. Night Court. Columbo. Who Framed Roger...
In our last Episode, The UML Guy met Deadline, a project manager with a Grim problem. Today, another member of The Team wanders into the Lounge. (Click the pictures for larger images.) This one is for @arphahat (who shaved his beard a long time ago). Now can I have my freakin' cookie dough? And yes, I already referenced this film in Episode 18. It's one of my favorites. Deal with it. Back in Episode 10, I introduced Sequence Diagrams because I needed to demonstrate them for Ann Arbor Day of .NET....
In our last Episode, Evil Tester used his newly gained UML skills plus his testing expertise to generate mountains of good news for The Reader. The Lounge is attracting attention from unexpected quarters, including today's new cast member... (Click the pictures for larger images.) Why yes, I am reading Steve McConnell's Software Estimation right now. You should be, too. While he has earlier argued that requirements errors are the most common factor in project failures, here he shows that systemic...
In response to Episode 16, Mitch asked yet another thought-provoking set of questions: Another reason for swim lanes: I've seen them before. It was very enlightening to see the similarity between the new concept of Sequence Diagrams with a familiar friend. Here is a nagging concern: whether you approach your model from the top-down or the bottom-up, if your premises are flawed, how will you know that your nice neat diagrams have errors? It's one thing to note omissions, like the outstanding payables....
In our last episode, The UML Guy showed Evil Tester how he could use UML to define new test cases with ease. Now The UML Guy wonders what sort of monster he created... (Click picture for a larger image.) When you're a kid, and somebody famous shares your name, it opens your eyes to possibility. It gives you a sense that Hey! That could be me! You Johns had Wayne (the ultimate tough guy) and Cash (the incredible musician). You Jims had Stewart and Cagney and Garner. You Robs had Redford. We had Feldman....
UPDATE: Alan Richardson beat me to the Evil Tester joke, including his own Evil Tester comics. He also left a great comment below, and he has a lot more to say on testing. In our last Episode, Process Cop explained the Process Menagerie, and The UML Guy lectured you on its importance. Today, a new cast member appears... (Click the picture for a larger image.) First, let me say it's merely a happy coincidence that Evil Tester debuted in the Lounge on Halloween. I needed him for another project, and...
In our last Episode, we wrapped up Activity Diagrams (for now) by showing how Swimlanes let us specifiy who or what is responsible for each Activity or Branch. After the Lounge has dried out, we get some process instruction from Process Cop. (Click the picture for a larger image.) Too often, I find that teams embark on "process improvement initiatives" without first understanding what their process currently is. This is like asking an architect to redesign your house without him ever seeing your...
In our last Episode, we saw how Forks and Joins let us model parallel behavior within Activity Diagrams. But we're not quite done with Activity Diagrams. (Click pictures for larger images.) No, the dolphins in panel 3 aren't my work. Anyone who thinks I can draw that well hasn't been paying attention. They were drawn by my lovely wife Sandy for our wedding invitation. I merely traced them. (The scuba gear and the singing crab... Now those you can blame on me.) To discuss Swimlanes, I needed water;...
In our last Episode, The UML Guy showed how to organize Activities into larger Activities. Meanwhile, Old Guy absconded with The Reader's UML book and the time-traveling Gremlin... (Click pictures for larger images.) And following up on Mitch's suggestion, here's a joke-free version of that diagram: And so we see the second film, or at least the finale of it. This was a great opportunity to show parallel behavior with Forks and Joins, illustrating three different timelines. (Actually, experts say...
In our last episode, The Reader (inspired by his UML book), The UML Guy, and a small army of guest stars drew an Activity Diagram to get Traveler back... to the 80s! That led to some good comments from Mitch and Corey, along with a lot of blather from The UML Guy. Now they examine the results of their work. But what's happening with The Reader's book? (Click the pictures for larger images.) OK, so why the weird title for this episode? Well, I needed to introduce Superactivities and Subactivities...
So our last episode has generated some back-and-forth between the guest stars in the comments. Due to anomalies in the Spacetime Continuum, these comments appear in reverse order. I'd like to correct that order, and then respond. First, most-frequent-commenter Mitch (a.k.a. @anklebuster, a.k.a. Dad Geek) wrote: That was a great comic strip! Thanks for letting me have a part. At first, I wasn't getting the data flows. Then I thought about Office Race and the "trap" where there is a 66% chance of going...
UPDATE: Fixed a missing arrow in page 2. Last week, we saw previews of my AADoDN talk. Before that, we saw Office Race, the first Ulterior Motive Lounge game. Now The Reader and The UML Guy return to the Lounge... (Click the pictures for larger images.) I can't imagine why a film with a protagonist named Marty would be one of my favorites... Many thanks to my guest stars: @coreyhaines, @curtisgray, @anklebuster, @jbkazoo, and @crazeegeekchick! Besides being a cleaner Activity Diagram than we saw...
Today, @Anklebuster -- a.k.a. Mitch Allen of Morpho Designs, and maker of the really cool Morpho Board game design tool -- asked some really interesting questions: The packages remind me of how Mindmap "folds" detail when you want to get a higher level look at things. One thing that I may have been assuming, incorrectly, is that these drawings are the end product. If the presentation is hard copy, you would have to have multiple sheets to display "drill-down" views. Does UML provide an interactive...
For this week's strips, I'm multi-tasking, running slides for my presentation at Ann Arbor Day of .NET. So we're 11 episodes in (plus 2 intermissions). That's not a lot, right? Wrong! Take a look at today's episode, which includes a little bit of everything we've seen so far... (Click picture for a larger image.) I imagined this strip as a way to make a point: even simple models become complex quickly, and are too large to grasp all at once. They're also too large to navigate easily. But I proved...
No, we're not doing that film (yet). But we are back in Right Court one more time. We're taking an unscheduled break from the schedule this week. I'm giving a UML presentation at Ann Arbor Day of .NET, and I need to prepare material for that. So rather than going Back... to the 80s as planned, I'm going to dual-task: the episodes this week will be the slides I'm prepping for my presentation. These were episodes I was going to run eventually; I'm just doing a little time travel. In Monday's episode,...
We take an unscheduled break from the schedule this week. I'm giving a UML presentation at Ann Arbor Day of .NET, and I need to prepare material for that. So rather than going Back... to the 80s as planned, I'm going to dual-task: the episodes this week will be the slides I'm prepping for my presentation. These were episodes I was going to run eventually; I'm just doing a little time travel. For today's episode, we have a rerun of Episode 8: Right Court, but slightly abbreviated and redrawn as a...
UPDATE: At the suggestion of Ernie Out in the Barn, here's a larger PDF for 11x17" paper. SECOND UPDATE: Boy, was I tired when I printed up those rules! I lost the paragraph that explained how the game ends, and I spelled "through" as "throw". Fixed here and in the PDFs. In our last episode, The UML Guy was tried for violations of Process and common decency; but pulling out all his best Captain Kirk tricks, he turned the illogic of the system against itself, and was acquitted. He decided to celebrate,...
In our last episode, The Reader and The UML Guy explored for inheritance lets you design common behavior and structure, and then describe specific variations of that behavior and structure. Then they showed how some Patterns (reusable solutions to common problems) involve inheritance. But at that moment, The UML Guy was arrested for committing a grievous offense against Process. (Click picture for a larger image.) If this episode is at all funny, that's because I started with a great inspiration....
In our last episode, The Reader and The UML Guy refactored the simple Pizza Order Class into a more complex but more robust Class Diagram that supports a full range of pizza order options. (Click picture for a larger image.) No new references in this strip. Too much material to cover. But we see the return of some old friends. Inheritance in UML is called "Generalization": Menu Item is a general Class, and Pizza, Item, Drink, and Side are more specific Classes. But in most common languages, it's...
In our last episode, The Reader and The UML Guy drove through time and space in The Search for Class Diagrams. Along the way, they held a long discussion on the philosophy of modeling. But The Reader was surprised when they reached their destination: they were back at the Lounge! (Click picture to see larger image.) If you haven't seen the film, parts of this strip will make no sense at all. I like some oddball films. Get used to it... Oh, and because Editor Bill and Ernie Out in the Barn demanded...
UPDATE: Minor but significant art correction. UPDATE: Another minor but significant art correction. In our last episode (not counting the Intermission), Pestbuster pursued Pest right through the strip, leaving a mess in his wake. The UML Guy told The Reader they would need Class Diagrams to help in the clean-up, and said they wouldn't find any without a road trip. (Click the image for a larger view.) Yeah, I know... A lot of blah, blah, blah, yackity-smackity... But these were things that needed...
In our last episode, The Reader and The UML Guy explored how adding collaborating Actors to a Use Case Diagram gives the audience more context and thus better understanding of the requirements. In the process, unfortunately, Pest escaped. Pestbuster has abandoned his diagram to recapture Pest. (Click for a larger image.) And now I'd like to address four related questions. Editor Bill asked me why, in Episode 1, I chose to use an obscure in-joke from a mostly forgotten film -- and worse, a film that...
In our last episode, The Reader and The UML Guy drew Use Case Diagrams for a number of Actors within Pestbusters (The Reader's client). In the process, The Reader discovered and a vital Use Case that he had earlier overlooked. Two weeks later, after the team has implemented, tested, and delivered this new Use Case, Supervisor and The Reader meet in the Ulterior Motive Lounge... For those who are curious what lies in store for Pest, I have an obscure one-word reference/hint: growlf! Oh, and it's time...
In our last episode, The Reader (with a little help from The UML Guy) drew his first Use Case Diagram. Friends have asked, "What's your schedule? How often will these come out?" My answer: "Whenever." I want to make sure I have fun with the strips and make the strips fun. A fixed schedule would ruin that. Don't cross the streams...
Beginning a slightly twisted introduction to the Unified Modeling Language... (Click the image for a larger version.) Inspired by these YouTube videos: Animator vs. Animation The One by mkrepps (music by Gaelic Storm) Also an old Warner Brothers cartoon I can't find right now. Further inspiration from Scott Adams, Jolly R. Blackburn, and Chris Muir for convincing me that limited art skills are no barrier to telling graphic stories. Thanks to Bruce Willis for the porkpie hat...