Managed World

Techno-babble from yet another babbler RSS 2.0
# Sunday, June 12, 2005

While at Tech Ed this last week, I was able to have a couple conversations with John Lam of http://www.iuknown.com fame. One of them regarded the importance of notation when expressing a problem. There are certain types of notations that are best at describing certain solutions. Take for example musical notation. What you can express compactly using musical notation would take a lot of text to express in English (or any other language for that matter). The same goes with fields like mathematics, chemistry, etc.

How does this relate to programming? A programming language is a form of notation. What can be expressed well in one language can not be expressed well in a different language. That is one reason (of many) to learn multiple languages. By learning different languages, and hence different notations, you start to realize better ways to express a given problem by using different notations. Where the idea of notation really gets interesting is when you start looking at the idea of Model Driven Architecture and Software Factories. In some ways, MDA and Factories are similar, in some ways they are quite different. However, they both try to solve a similar problem using different notations. I’m going to take this opportunity to discuss Model Driven Architecture and, more generally, a tendency in software development that I like to call Picture-Oriented Development.

While I believe that Picture-Oriented Development does have its uses, it can also be abused quite easily if you’re not careful. While pictures are good at expressing a thousand words, pictures are bad at expressing a single word. The problem is that once a picture fully expresses a problem, the view of the entire system as a whole has been lost due to the sheer amount of detail present. This syndrome is quite similar to a thousand voices talking. When there are only three voices talking, you can isolate and listen to a single voice. But once there are thousands of voices speaking in equal volume, your brain loses the ability to isolate a single voice. In a way, pictures are a form of macro-communication while certain aspects of building a software system really need forms of micro-communication in order to be successful. Solving micro-problems with a form of macro-notation presents an inherent disconnect between the problem and the solution. In our job, we need to avoid this disconnect and any associated context switches as often as we can because software development is inherently a complicated process.

I’m not trying to say that Picture-Oriented Development is a bad thing. I’m saying that it is easy to buy into the hype of it all, especially with the new glitz and glamour that is coming in Visual Studio 2005. You might be able to tell that I am still quite skeptical of using MDA as a software development platform from beginning to end. Do I have a better solution? No, I do not. I am just doubtful that Picture-Oriented Development is the way to go. I do believe, however, that we need to find a better way to develop software. I just think that when discussing MDA vs. Software Factories, Software Factories seems like the more realistic way to go.

Posted in Programming
 #       Comments [1]
Monday, June 13, 2005 4:58:44 PM (Pacific Standard Time, UTC-08:00)
I remember a set of tools that IBM produced a while ago (around 1995 if I remember correctly) that followed a similar picture based production model. VisualAge for C++ I think it was called? There was also a VisualAge for Smalltalk that apparently it was based on and was allegedly superior. (I really liked Smalltalk, first of the true 'pure' object oriented languages. AFAIK)

What I remember when evaluating VisualAge for a project was that it had a very big paradigm shift in the way that you approached development. You literally plonked down pictures of factories and then graphically linked them with consumers, sort of like building Visio diagrams. :-)

Then you could double click on the pictures and insert code. Sounded fantastic.

What actually happened is that most of the developers were resistent to this new model. Keep in mind that around that time OO was still a newish topic and people were still debating whether it was of any real benefit or was just a passing fad. So we ended up canning the project and going back to plain C. We didn't even drop back to C++!

Looking back, it may still have been the correct decision. Trying to retrain a whole team of resistant developers, then implement the software product using a very reusable language (where it was for a very specific project that we would be unlikely to reuse any of the code) was just too much for a project that had to be finished in half the time required with a third of the budget required. :-)

So there it is. History of picture programming 101 :-)
Andre
Name
E-mail
Home page

Comment (Some html is allowed: a@href@title, strike) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Live Comment Preview

Contact

Email Me Send mail to the author(s)

Calendar

<October 2008>
SunMonTueWedThuFriSat
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

About this site

Jason Olson's thoughts on Programming, Games, Music and Life in General

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2008
Jason Olson

Sign In
All Content © 2008, Jason Olson
Theme based on 'Business' created by Christoph De Baene (delarou)