InfoQ

Interview

Ivar Jacobson on UML, MDA, and the future of methodologies

Interview with Ivar Jacobson on Oct 24, 2006 12:03 PM

Community
Java,
Agile
Topics
Artifacts & Tools ,
Methodologies
Tags
History ,
JAOO Conference ,
MDA ,
AOP ,
Innovations ,
UP
Summary
Ivar Jacobson, one of the founders of UML, RUP, use cases, introduces his vision for a next generation development methodology that is both agile yet large like UP, by having humans collaborate with 'Intelligent Agents'. Ivar also talks about his views on UML, MDA, AOP, and the future. Recorded at JAOO (jaoo.dk).

Bio
Dr. Ivar Jacobson, co-founder of Jaczone AB, continues to be one of the great thought-leaders of the software world. He has made several seminal contributions to the field: he is one of the fathers of components and component architecture, use cases, modern business engineering, the Unified Modeling Language and the Rational Unified Process.
So IVAR you're a legend, you have been working on things for so many years, what are you doing today?
What are some of the problems with the AGILE movement?
What is the fundamental difference between tacit and explicit knowledge?
You said a process like unified can never be adopted by more than 10 % of the developer population. Why?
What will be the next generation process?
What actually is intelligent agent, is like the paper clip in Microsoft Word?
Can you describe what this might look like on a project? You have, let's say, a 30 men project are building an on-line e-commerce site where do the agents fit in, what might it look like over time?
What about pair programming, surely human interaction is more efficient than human-machine interaction?
But really how far will a process take you? Doesn't it also depend on the team: if you have a good team or a bad team, will the process really make a difference?
Do you agree that XP is largely driven by developers, whereas unified is more driven by managers?
So you would appeal that even the ultimate winner of all these religious wars is UML, yet today is being critiqued. What's your take on that?
UML seems to be becoming a programming language. Is that appropriate? What's your take on that?
So what do you think about MDA?
What do you see about AOP is it going to become as mainstream as OOP?
Any final words?
show all  show all
Transcript errors by Nikolay Kolev Posted Nov 1, 2006 3:05 PM
Re: Transcript errors by Diana Plesa Posted Nov 2, 2006 10:54 AM
Great Interview by Ashley Aitken Posted Nov 4, 2006 4:35 AM
Re: Great Interview by Ashley Aitken Posted Nov 4, 2006 8:04 PM
Re: Great Interview by Ram Guttikonda Posted Jun 13, 2007 7:27 AM
  1. Back to top

    Transcript errors

    Nov 1, 2006 3:05 PM by Nikolay Kolev

    Great interview, but the transcript has lots of errors. When answering the question What actually is intelligence agents, is like the paper clip in Microsoft Word? Ivar talks about Expert Systems, not expo system, and Rule-Based Systems, not Ruby systems. Also, it's intelligent agent and not intelligence agent. Answering So what do you think about MDA? he talks about model and model-driven and not modern and modern-driven.

  2. Back to top

    Re: Transcript errors

    Nov 2, 2006 10:54 AM by Diana Plesa

    Hello Nikolay, i've taken of those mistakes:)

  3. Back to top

    Great Interview

    Nov 4, 2006 4:35 AM by Ashley Aitken

    Another great interview, Ivar really is a legend (in his own time I may add). I think his views on agile development are very true. Agile development relies on the tacit knowledge of the developer's knowing what to do in software development (the process), and hopes that each developer has the same (or similar) tacit process. I also agree that most everything in the "agile manifesto" should be assumed by default - working with the client, incremental and iterative development, ... However, I do think he left out one main difference (as I see it) between agile development and a more developed (for want of a better word) methodologies. This is the fact that (as I see it) agile development sees the source code as the primary model for the development. To me, trying to capture analysis information, design information and all other information in the source code is a nightmare. The only thing it has going for it is that it removes the redundancy that usually (but not necessarily) exists if you have multiple models. Cheers, Ashley. -- Ashley Aitken Perth, Western Australia mrhatken at mac dot com

  4. Back to top

    Re: Great Interview

    Nov 4, 2006 8:04 PM by Ashley Aitken

    On more thing I forgot to mention (that my memory was prompted by the article on pair programming) is that Ivar tended to portray pair programming as necessarily taking place between a senior developer (in a mentoring and coaching role) and a junior developer. I don't think this is meant to be the case, or need be the case. I believe that two reasonable developers using pair programming would develop better quality code than they each could separately and probably faster at that. There may even be a benefit to two junior developers working together (as long as they were prepared to refer to textbooks and other learning material etc.) For me, one of the benefits of pair programming is to help us be more disciplined, to help us stay focussed, and to help us get over any erroneous programming things we may do. Cheers, Ashely.

  5. Back to top

    Re: Great Interview

    Jun 13, 2007 7:27 AM by Ram Guttikonda

    Pair progamming in general/theory is peer pair progamming, correct. However, pair programming with best ROI is what Ivar may be referring to. This works great to get junior developer on board for a similar thinking process. Considering the quatity of code written by Junior developer could be large in real world especially with Senior people getting involved in the so called "meetings". My real experience. Also, pair programming is viewed as a risk control strategy for single point failures especially for core modules.

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.