Welcome

  • This is the blog for Intentional Software Corporation. We keep it open for comments as we seek a dialog with the community. Each participant will be trusted to participate with integrity, decency and respect for others.
  • Visit Intentional Software Corporation

May 02, 2009

Public Intentional Demo

We just had the pleasure of presenting at the DSL Developer's Conference organized by Chris Sells at Microsoft. This event was a good opportunity to give a public update on our progress here at Intentional Software. You can see our presentation and demo here and here are the slides.

Martin Fowler did a nice write up about Intentional and so did Larry O'Brien for SDTimes.

Lots of great conversations after the conference. Here are some more blogs:Markus Völter, Ted Leung, Bradford Cross. And many others, for example here, here and here.

People are asking me about the availability of the Intentional Domain Workbench. At this point we are making it available to dedicated pilot projects across a wide range of domains. Since the system and approach is so different from anything else most developers are used to, we want to ensure we can support all of them properly. The learning curve is not that huge, but the shift in mindset is. Once you "get it", Intentional is actually pretty straight forward. So we want to make sure we have the bandwidth to support this shift in mindset among early adopters. I hope after these first pilot projects we will have a core community that can evolve into a broader, open community.

If you are interested in trying the Intentional Domain Workbench in a pilot project, drop me an email with some details of your project.

Next up is to give a similar update in Europe. This week we will present at Software Engineering Today in Zurich. Stop by and say hello!

March 13, 2009

Upcoming Events

A lot of progress has been made here at Intentional Software. Like last year, we also this year will give updates at some public events in both North America and Europe. This spring we will be presenting at:


I will try to remember to post the presentations on our website.

CS_mission_patch_2009 You might also be interested to follow another major event: Charles is scheduled to return to the International Space Station on TMA-14 on March 26, 2009. You can follow his final training and preparations on Charles in Space.  At the Zurich event Charles will share his experience in the keynote and I'm sure share some new amazing pictures and stories from his most recent space flight.

June 27, 2008

Programmers at Work - Follow Up

It is fascinating to read things I said 20 years ago. The good news is that there is nothing terribly embarrassing in the interview. Hardware has developed incredibly since then: terrabyte memories, the Internet, GPS, cellular infrastructure was not even dreamt about. With software the progress has been disappointing, for example the boot time for a PC has not changed much despite of a factor of thousand improvement in chip speeds. Two areas where software has been incredible: games and search engines – these I would not have believed then. 

With the end of the Cold War and having traveled more, I could reconnect with my earlier experiences with the Ural-2 and the Danish Gier and I now remember more details. I was astounded to learn for example that both the Ural and the Gier were descendants of the original von Neumann computer from the Institute for Advanced Study. There were some superficial differences in the architectures that prevented me from recognizing the underlying architectural unity.

Computing has always been a sensual experience for me – in the interview I refer to the “exhilarating thunk” sound of the Ural’s keyboard, and the “firm click” when touching the buttons. Later I describe the visuals and the smells. I could have added that I even saw a Russian engineer tasting the bits – at 200 volts for a true value, he simply licked his finger and lightly touched the pins on the back panel to see if they were tingling or not. Today the visuals are much better, but about the only other feedback we get from the machine is that the fans turn faster when the computing load increases – it is as if the fans were doing the work.

Talking about early influences, I gave a talk a few years ago “Everything I needed to know I learned at Regnecentralen.” This was a little exaggeration for an anniversary celebration, but it is fundamentally true. Our kindergarten experiences, so to speak, affect us the deepest. In the interview I gave the example of the Gier Algol compiler – I talked about it later in a talk “The Rosetta Code”. I also learned – thanks to Google – that Dijkstra called this compiler a “masterpiece”.

I am surprised why I did not come out more on the side of “trade” in the issue whether programming is and art, a science, or a trade. But maybe this is a sign of progress. We do not call surveying a science – it is clearly a trade - even though Gauss himself was once a surveyor. In the same vein, programming today is much more a trade than art or science.

I stressed that the cleanliness of the code has to start with physical cleanliness. With today’s development environments it is easier to get clean looking code, but it is still pretty easy to decide at a glance that the code is bad – by the identifiers, by the juxtapositions, by the size of the expressions, or by evidences of code copying.

We talked a bit about Hungarian naming conventions. This is something that we still use, if anything more intensively than before. It is still controversial, but also still valid. Especially valid is the idea that it is very difficult to talk about abstract things without giving them names. I am amazed when applicants who graduated from the best colleges struggle with simple problems all the while failing to name anything. This comes back in the interview several times, for example when I recommend the Polya book “How to solve it”. In the problem solving checklist on page 1, Polya clearly says: “Introduce suitable notation” as one of the first steps – after “What is the unknown? What are the data?” Yet this is still something not taught well.

I am happy with the discussion of the programming process with the emphasis on data structures and invariances to be maintained, rather than the details of the code. Doug Klunder, who wrote most of Excel, was great at that. Again, I am amazed how programmers today still start writing complex code when solving a problem without ever deciding what the state is and what the invariances are. OOP should have helped in this regard, but unfortunately it just created a separate focus to the methods which then give the programmers an illusion of orderly progress.

I predicted that Excel would move from Mac to Windows – not that it was a difficult prediction. Today few people realize how Excel was the first major business application for the Mac while hundreds of millions of people use Excel on Windows. This was success beyond our wildest dreams.

I am happy for having pointed out that hanging onto “simplicity” would make us poorer. Just look at the early mouse wars whether they should have one or two buttons. At Microsoft we fortunately bet on two buttons and let Apple do the popularization work with their junior offering with one button. In contrast, at this moment I happen to use a Logitech wireless laser mouse with the two classic buttons, two wheels that click and three other smaller buttons. Admittedly this is a little too much, but I could not live without the scroll wheel, for example. But simplicity is a still a continuing pathetic excuse to cling to the status quo.

I was just starting to fly helicopters at the time of the interview. Since then I managed to continue flying fixed wing, instrument rules, jets, and – something I would not have believed at the time – even spacecraft as a spaceflight participant.

I’ve read some of the comments on my interview and on the whole book and it is very gratifying to know that so many people were influenced by it in positive ways. Now if only the computer science instructors at the colleges would read, if not this book, but Polya at least!

February 29, 2008

Programmers at Work

Those old enough might remember the 1986 book Programmers at Work. It was a set of in depth interviews with 19 programmer pioneers at the time. The pioneers included people like Dan Bricklin (VisiCalc), Ray Ozzie (Lotus Symphony, Lotus Notes), John Warnock (PostScript, Adobe), Jeff Raskin (Macintosh), Andy Hertzfeld (MacOS), Bill Gates (MS Basic), Gary Kildall (CP/M) and our very own Charles Simonyi.

I remember my fascination with this book at the time. When re-reading the interviews today, I get mixed feelings:

On the one hand side, although the book is over 20 years old, the insights and issues discussed are still highly relevant to what we face today in the software industry. The terminology and examples might be a bit dated, and the views expressed might at the time have been radical whereas they today are main stream. But overall, the interviews are still relevant today and we can learn a lot from them. So in this regard it is still a fascinating read.

On the other hand, when you read the book you see that our profession has not evolved much over the last quarter of a century. We still face the same challenges of handling complexity, good design is still critical and still very hard, we still debate whether software is engineering, art, science or a craft, we still use programming languages that mirror the execution model of our computers, we still use only textual programming languages that has to be parsed from text like the punch cards legacy forced us to do, we still only have very primitive tools, quality is still a big problem, finding and nurturing programming talent is still a challenge, programmer training and education is still broken, and so on. So in this regard it is a depressing read.

Susan Lammers, the author of the original book, just started a blog about the book and is starting to republish the interviews online. First out, both in the book and on-line this week, is the interview with Charles Simonyi. Interestingly, a lot of what Charles discuss in the interview are also hot topics for him today. (I’ll see if I can get Charles to reflect on this here.) By the way, in addition to Susan’s blog, there is also a discussion about this book at one of our favorite blogs - Lambda the Ultimate.

January 15, 2008

Recent and Upcoming Conferences

Last fall we gave a few talks at some conferences. In case you missed them, I have posted the presentations here.

We also have a few conferences coming up. If you want to learn more about Intentional, stop by and say hello.

We will be presenting at:

OOP Conference, January 21-25, 2008, Munich, Germany

Lang.NET Symposium, January 28-30, 2008, Redmond, WA, USA

QCon March 12-14, 2008, London, United Kingdom

August 29, 2007

Intentional Software In The News

We are featured in two top-tier journals this week. First, Charles is the subject of the InformationWeek “High Five” interview written by Nick Hoover. We especially like Nick’s description of our goals here at Intentional Software, “… aims to commercialize a new form of software development that allows line-of-business employees to help write programs.” 

We want to put the emphasis here on the word “help”. The Intentional Software approach gives line-of-business employees, or, as we like to call them, domain experts, an active role in software creation. But, there is still a vital role for programmers as they must provide the necessary software programming know-how to ultimately deliver the end-user software.

In the second piece, published in Business 2.0 magazine, and on-line by CNN Money, Michael Myser delves deeper into the specifics. The article says that we are making software that “will write its own code.” To be sure, there is a high level of automation as the Intentional Software approach features a heavy dose of code generation. There is still plenty of work for programmers to create these domain specific generators to generate correct code. But it’s higher level work, we believe, avoiding the drudgery of endless  requirement changes.

The analogy to blog software is a good one. Before blog software, anyone who published on the web had to edit HTML code. With blog software, millions of users can now simply use a text editor to author and push a PUBLISH button to publish on the web, correctly and nicely formatted. The PUBLISH button essentially invokes a code generator that integrates the blog text into HTML code that makes up the blog website. Similarly the Intentional Domain Workbench includes an editor domain experts use to edit, in their domain language, and then “just” press a button to invoke the code generator.

Further down in the piece, “Intentional is making software so smart that you can simply tell it what you want to do. Lay down a few basic parameters, and it will write its own code. No programming skills are necessary” might be the view from the domain experts. With Intentional Software, domain experts play a vital role at the front-end of the process when they define their problem in a domain language. But, skilled programmers build a generator that becomes the “engine” to provide interpretations of the domain language. The result is a more flexible, efficient way of creating software. It’s an approach that, we believe, will accelerate innovation within the enterprise by focusing domain experts and programmers on the area of their interest and expertise.

Later, Mike makes this point himself, “Intentional users must still have a software engineer on hand…”  And, our early pilot user, Henk Kolk of Capgemini gives an excellent description based on their work with the Intentional Domain Workbench.

Check out the articles! And thanks to both InformationWeek and CNN Money/Business2.0 for these inside looks at Charles and Intentional Software.

April 03, 2007

Spaceflight

Dear Friends,

Today I've been visiting buildings 254 and 120 in Baykonur. Building 254 has the Soyuz TMA-10 #220 spacecraft already under its launch shroud, and all the cargo loaded in the living compartment. Building 120 has the booster rocket with the first stages and the core second stage mated, but the third stage is still separate. By Saturday they all will be together and the Soyuz will be launched on time, the 442nd launch of this booster.

If you are interested in more details of the spaceflight, please check out charlesinspace.com. The site will be updated during the flight itself via an email connection.

I am looking forward to the flight and I am looking forward to return full time to Intentional Software. A lot has happened in my absence. We are working very closely with Capgemini and we are also continuing our cooperation with Thoughtworks. Our customers appreciate greatly the unique capabilities of our system and the competitive possibilities that it opens up to organizations with deep domain expertise. And do not forget - we are always looking at exceptional programmers to work with us in Bellevue, WA, and in Budapest.

Charles Simonyi, Spaceflight Participant, Soyuz TMA-10.

February 14, 2007

Trusting Relationships

In their 2005 book John Seely Brown and John Hagel III advise that The Only Sustainable Edge for a business is to accelerate and leverage distinctive capabilities and knowledge.They advise each business to work closely with others in networks of companies that have diverse, complementary capabilities, and to build long-term reciprocal, trust-based relationships through shared meaning.

Brown and Hagel’s book is the first place we have seen articulated so many of the objectives our company is working to achieve.

Long-term reciprocal, trust-based relationships are the fundamental common denominator.

And Building shared meaning is, in my judgment, the single most critical specific action that Brown and Hagel prescribe for building those relationships. Long-term reciprocal, trust-based relationships simply cannot survive unless all participants understand each term in precisely the same way. During my career as a business attorney, lack of shared meaning caused by far the most disastrous disputes and uncertainties my clients ever faced.

In fact, our Intentional Software™implements much of Brown and Hagel’s advice by representing precise, unambiguous, shared meanings that are recorded in one internally-consistent data structure from which applications are generated, modified, maintained and regenerated by computer. This data constitutes an understandable “IP Bank” repository of learning and knowledge for reuse throughout the life of an enterprise.

Implementing reciprocal, positive forward looking incentives is the primary action Brown and Hagel prescribe for building trust quickly in any network of enterprises. They explain why the opportunity to build mutual capabilities that result in more aggregate value for all participants is a very powerful incentive to help build trust in the near term. Each participant thus has an incentive to contribute its distinctive, specialized yet complementary capabilities and knowledge because it can reasonably expect to accelerate and leverage its own capability building, learning and innovation through reciprocal contributions by others in the network. These positive incentives are contrasted against negative incentives that often cause disputes in typical partnerships that simply agree to divide a fixed set of resources among the partners.

Clearly specifying performance metrics for each participant is also prescribed by Brown and Hagel to reduce misunderstandings and mistrust and to define reciprocal expectations. Each participant thus retains control over its own actions and ability to perform, rather than being constrained to perform specified activities. Critical uncertainties are identified, and plans are made to deal with them. Tight performance feedback loops, and event notification and rapid exception resolution procedures are employed to help refine performances and to serve as safety nets. Steps are also taken to minimize a participant’s feeling that it is locked into a relationship with no fallbacks.

When we formed our company in 2002, we defined our fundamental objectives in words very similar to Brown and Hagel’s. And since then we have in fact been working “to accelerate and leverage distinctive capabilities and knowledge by working closely with others in networks of companies that have diverse, complementary capabilities, and by building long-term reciprocal, trust-based relationships through shared meaning”. No doubt that is why Brown and Hagel’s 2005 book fascinates us so much.

Fundamentally we work hard to reduce uncertainties and to build foundations for long-term relationships. Our litmus tests are to verify that all participants communicate their own intentions openly and clearly, and to structure each business relationship affirmatively to implement the intentions of all participants (not just our own). We seek to align the interests and incentives of all participants equitably in form and substance, measured by objective standards.

To the same ends we are keeping our company as innovative, efficient, persistent, opportunistic and evolutionary as possible. We love bright, enthusiastic, imaginative, risk taking, fun loving, trusted individuals who enjoy working together.

Our company’s business is accelerating innovation for business. Intentional Software is our means.