Processes, modeling and methodologies do not easily make friends among programmers. That is because many see all that mush as overhead -- a barrier to the real work to be done, which is problem solving and coding.
This is painted with a broad brush. Not every single developer holds this exact opinion. And there is no one process or methodology. There are many. Neither is there one single level of experience.
Experienced developers have usually found a useful personal process, perhaps by osmosis. Experienced developers have seen enough applications that they can usually take the problem users describe and find a mental template from past experience that will enable them to write and debug the right program. But, when projects reach a certain level of complexity, that developer has to work with others, and must find a process that works in the context of the group.
SearchVB.com had a chance a while ago to talk with Ivar Jacobson, who is one of the forces behind the Unified Modeling Language (UML) and the Rational Unified Process (RUP), and certainly one of the world's prime experts on software design and development process. Read UML "Amigo" Ivar Jacobson endorses Microsoft tool, which includes Jacobson's comments on UML and Microsoft Visual Studio modeling methods.
Jacobson and his offspring are not without critics. Prominent developers have criticized both UML and RUP, saying that the method was inadequate and the process was heavyweight. The more telling critique was that UML and RUP limited developers' creativity. A school of process known as Agile Process grew up not coincidentally in the aftermath of UML and RUP, offering something of an antidote.
Jacobson is open minded. He sees validity in the arguments of Agile advocates and he has even, like them, become a critic at times of RUP at times.
Now he explicitly promotes a lightweight process.
"There were many ideas in the Agile community that we liked," Jacobson said to SearchVB.com. "We were not so far apart." But, he continued, Agile Process advocates often focused their process around tacit knowledge that developers held in their heads. He would, instead pursue a disciplined approach based on explicit knowledge.
"But," he added, this disciplined approach must take a "lightweight form." For his part, Jacobson is gathering his notions about lightweight processes under the auspices of the Essential Unified Process (EUP), which has been customized for the Microsoft Solutions Framework and will be integrated with Microsoft Visual Studio 2005 Team System.
The recent history of software shows that light-weight anything has a better chance of getting in the door. Think of Web services. SOAP (Simple Object Access Protocol) succeeded at first because it was simple. Subsequently, enough baggage has been added to the SOAP train to qualify Web services as far less than simple. The additions were entirely reasonable to someone or another, and extra baggage to someone else -- which leads us to the actual topic of this story: the search for Ivar Jacobson.
Apropos of Ivar
Getting to my conversation with Ivar Jacobson was not without its complications. Jacobson travels the world, and was in South Korea when I caught up with him via satellite phone. Biding time, waiting for that interview, I had a bit of fun with "Cyber Ivar," a program he has made available on his Web site that allows one to converse with a facsimile representation of the actual Ivar Jacobson.
You can ask your own questions of Cyber Ivar at http://www.jaczone.com/cyberivar/. He is programmed with a brain pattern that responds to "well formed" questions effectively. He is very polite. There's a pretty good explanation on the site concerning what Cyber Ivar is about, including a guide to the kind of questions that are most worthwhile to ask him.
Here is a replica of my experience. I probably should have spent more time reading the directions. I may be human, and Cyber Ivar may be silicon and code, but we both agreed we were on the same "wavelength." No question but Cyber Ivar was just as obtuse as a real Process Guru. Or real bus driver, for that matter.
First, Cyber Ivar walks onto view, an animated figure, a cross between Max Von Sydow and Clippy. Before anything happens, my computer must decide if it is up for downloads from an untrusted source. At my urging, it decides it will engage Cyber Ivar. The following discussion is not entirely verbatim.
Who are you, he asks. The answer: Jack
Jacobson: Jack, nice to meet you! Are you a man or a woman?
Jacobson: Thanks for telling me your gender, Jack. Most of my clients are men, although I do not know why.
Then I bolt for the jugular. Ask about RUP.
Vaughan: Is RUP too heavy a process?
Jacobson: I'm sorry but I do not know that much about Rational, RUP, Rose, XDE and other Rational-related subjects. I have loaded their Web site to the right, you can find information there.
And sure, enough, Cyber Ivar launched a frame view into the IBM Rational site where I could click away on RUP.
Vaughan: What about EUP?
Jacobson: Hmmm ... surprisingly my brain pattern set does not have a response for that.
Vaughan: Is process something you want to discuss?
Jacobson: Hmm, is that a riddle?
Vaughan: What do you like to talk about?
Vaughan: Is UML too heavy?
Jacobson: I'm not quite sure what you mean. I have loaded OMG's UML Web site to the right. You can find additional information about UML there.
Vaughan: OK, what's new with you?
Jacobson: How recently?
Vaughan: New like this year.
Jacobson: Interesting comparison. How recently? Just you and me? Do you think I am talking in circles, too?
Vaughan: Yes, they say it takes two to tango.
Jacobson: I understand. Hmm ... interesting. I have no good answer to that. Do you know what an Interaction is?
Vaughan: No, will you tell me what an interaction is?
Jacobson: An interaction is defined in the context of a collaboration, where it specifies the communication pattern between instances performing a specific task. An interaction contains a set of partially ordered messages that are passed on association roles.
Vaughan: Have we had an interaction today?
Vaughan: I agree. Thank you for your time.
Jacobson: You and I are on the same wavelength, Jack. You are quite welcome! Your purpose is your time.
Jacobson: Thanks for chatting, Jack.
So then I couldn't help but ask one more question, and then things were kind of awkward, and we had to say "good bye" all over again. Kind of like my Homecoming date in my freshman year in high school. But here I had this feeling I was talking to HAL, cyber star of 2001: A Space Odyssey. So I thought I'd ask about that.
Vaughan: Did you see 2001: A Space Odyssey?
Jacobson: Sorry I can't see anything right now. My eye is off.
Vaughan: OK, ciao, again.
Jacobson: Once more? Does ciao mean hello or goodbye?
Vaughan: It is Italian for goodbye.
Jacobson: See you later Jack.
After many years writing about computers, I finally interviewed one. And I don't hesitate in telling you, I felt like it was interviewing me. Still, an old Irish song comes to mind, and I transpose things a bit and come up with this ditty: "Ivar, we hardly knew ye." I am more glad than ever that I was actually able to talk to Jacobson through the miracle of satellite communications.
One wonders if online agents such as Cyber Ivar will someday be interviewed by virtual reporters such as Cyber Vaughan. Will those conversations be more or less illuminating?