Visual Programming Is Unbelievable (literally)

Hi all,
Just written a blog post on why people are usually so skeptic about visual languages:

Visual Programming is Unbelievable.
It's long but worth it. If you are kind enough to read it, I would love your feedback. If you do read it, and if you agree it's worth it, feel free to share it in anyway you want.
Thanks a lot,
Tiago Simões
I liked it a lot and I didn't think it was long at all.  I will definitely share with those I work with.  The biggest challenge for me is convincing upper-management that this is the best way to get what they want at a reasonable cost and time.  More articles like this can only help my cause.

Thanks for taking the time to write it.

The fundamental set of problems of visual languages are the ones that OutSystems adress the better: extensible (power to do everything), performance, IDE, No lock in.
The deeper reasons why we don't trust visual languages are true but not just on visual languages, they are universal. They need to be tackled.
Our love for complexity... I see it in the way that we are curious by nature, we like to understand and to do it even better than others before us. This leads to a continuous growth of complexity - if you make complex look simple, you achieve success.
e.g.: A computer is complex, make it even more complex but look simple, a computer with a GUI OS, it became a success.
iPhone, which is a very complex machine, but built to be simple to interact with - a success.
Our fear of change... as our fear of death. We fight against them but they are an inevitable fact of life. Change is continuous, history doesn't repeat itself. We can learn much from it. We are afraid but we know it's coming, who leads the change will lead the rest. You loose the wave of change and someone will ride the next one.
Thanks for your feedback, I understand your pains and I'm really happy the article can help your cause a bit.

Regarding the fundamental set of problems, I was trying hard not to focus only on OutSystems, but on the broader subject. You are right, we've been trying to address them over the years, but I believe there is still work that needs to be done on those areas. And I completly agree with you on the deeper reasons, thanks a lot for your insights.

I think the primary reason visual tools are not readily adopted is because programmers like to write code. It's what they learned and why they do it. It's fun, it's artistic, it's challenging, it's rewarding. If they are good at it they can get higher pay in another job.

To a programmer visual tools (or any kind of 3GL+) is not writing code, it's not what they learned, it's not so much fun nor is it so challenging, and most importantly where are they going to get their next job? Nobody uses that!

Like it or not, even if management decides to use visual tools, programmers can easily convince them that they don't work, that they can't do the edge cases, that they are inefficient etc., and can kill their implementation.

I've seen it many times over the years in support of CASE tools and 4GL's being successfully used in some environments that are useless in others because the programmers don't want them.

Programmers kill tools. 


I believe some will think like that, but not all, fortunately.
I have a background in business management and putting the manager hat on, I trully think that outsystems has very strong selling points. Price is the only major aspect that can hurt a buying decision, because management want to pay less, but they will get less also.
My perspective on this front is that OutSystems is aiming not to grow big, but to grow strong.
Hi Keith,

I totally understand what you are saying. But I also think that top-down decision making in these areas is naturally prone to face resistance.

People who will be using any tool should be included in the decision process early on, their concerns should be taken into account and responded to. This is the only way to face change aversion in modern companies. There is often a long history of bad decisions in enterprise software, so skepticism is natural.

It's usually a problem of communication, on one hand you have people who aren't able to articulate their vision, and on the other you may have latent but consistent hard pushback. Feelings and intuitions are strong, and come before our ability to clearly articulate our thoughts to each other. (e.g. it's stupid, but that article took me 14 years to write)

Tiago Simões

In my experience (and I can only speak from my experience) management can make a reasonable decision to consider visual (or other advanced) tools based on their abilities, cost savings and productivity improvements. However unless management dictates their use resistence will come ffrom the body of programmers destined to use them, and that groudswell can often kill their use, especially when they are fundamental tools that affect a significant number of programmers.

Many tools for more periferal activites (e.g. database engineering e.g. ERWIn)  can survive as there are only a few people that use them but when the tool affects the masses its another matter. 

In my 30+ yr career I have most often been on the forefront of technology introductions working in consulting roles for vendors or as an expert with such tools, from Telon, Ramis, Mantis, ADW, IEF, Bachmann, Dynasty, Forte ..... These tools were most often successful when programmers were given no choice! and conversely most often failures when programmers were asked to adopt them. 

Over 200 programmers used ADW successfully at the Canada Revenue agency for one of their biggest IT successes introducing new taxes to Canada, the CIO there had apparently given a dictate to use it and make it work or get out, while at a major Utility company ADW was deemed useless for anything when no such dictate existed.

I have seen people peurposely detune servers to make tools look slow, purposely come up with designs that were the most challenging for the tools, and on occasion just flat out refuse to use them. On one memorable occasion the lead and most vital technical guy at a major US corporation on a major project told his CIO he would quit if they continued to use a certain tool! He was gone that afternoon :)

When introducing these tools, usually with a Pilot project, we would most often ask to interview the selected programmers who were to use them, primarily to ensure they were not resistant to change.

Personally I support anything that improved IT productivity as I believe IT is not a profit centre and our job is to get business applications to production so that the business can make the company money. And I can only speak from my experience.

Hi Keith, 
You do have a lot of experience, and those are amazing stories, thanks for sharing. You may want to collect them all one day, so we can learn from them for the future. I personally would love to hear about them, and from your experience with those tools.
You are right, my view may be a bit too simplistic, there will always be people who aren't willing to change no matter what. And their resistance sometimes begins as silent, which makes it harder to address. 
And the fear they often mention of lock in can become a self fulfilling prophecy: if you scare everyone away from a platform it will in fact die and companies who choose it will be locked into it for years to come. Those management decisions will then be seen as the wrong ones for future generations. 
Fortunetly, as Tiago Neves was saying, and from our own experiences, you'll also find a lot of developers, in our case the majority, that "get it", specially when they are willing to give it a couple of days to learn it, and when they start to see they can do a lot more a lot faster. 
Tiago Simões

I don't really know what your experience is but now it seems you are in a position of developing the visual tools that you hope others will use which is quite enviable in some respects, and probably exciting as your work becomes more and more popular. I hope you continue to enjoy it and continue to develop great tools for us to use and for the larger community to adopt.

I haven't been using OutSystems all that long but am enjoying discovering it's strenths and weaknesses and developing techniques and architectures for larger scale systems developement. Hopefully it will stay 'visual' and 'point-and-click' and not become more 'programerish' as I seem to detect in a few cases in the latest release.


Hi Keith,

I joined OutSystems in 2001 and have been working in R&D for a long time. Your profile couldn't have nailed it any better. And yes, I understand and share your concerns, thanks for mentioning them, as usually the feedback we get goes in the opposite direction, but rest assured that the vision of keeping it simple is deeply ingrained in the product core values.

In the greater scheme of things, software development needs is growing at a pace never seen before. It's not just on our pc/laptop, phone/tablet, planes/factories, it's reaching every aspect of our daily lives, going into inteligent houses, cars, etc. OutSystems doesn't address all this but is helping out on that front, with it's unprecedent productivity capabilities, allowing a developer to produce much more and better in a few weeks. There is a huge lack of software developers worldwide. My experience with OutSystems shows that I can do much more and better than before.
It's not a tool for a non-programmer, but a junior programmer can start using it and deliver results fast. It will take time to master, but results can be seen immediately. There will be more work than developers can handle for the next decades, at least.

I just bumped into a phrase quotation and it kept resonating in my head on how it fits into Visual Programming as well:
"Great design takes us beyond the complex, the unnecessary and confusing, to the simple, clear, and meaningful. This is as true for the design of a life as it is for the design of a product."
I read the blog and recognize a lot of things :) In the past I wanted to work visual and with models. Naturally I worked with UML for some time but that disappointed me quickly. I did some research for other solutions (including designing my own) and came (by accident) across OutSystems. That was 10 years ago and I am happy working with it ever since :)
Of course, OS isn't also perfect, I am still hoping that my full screen editor idea will emerge some day ;) (

I also still see a possibility for OS as a general visual IDE. It is a rather old idea but I think it would be awesome (

In these years I have seen OS grow into an even more mature product. However, funny enough, if I think back I had some recommendations for OS in the past. The disadvantages that I saw then was that it was not totally visual: you still need to text-code JavaScript for instance and dealing with the graphical aspects of the UI could be troulblesome (also not always drag n drop).

Unfortunately these are still areas which can be improved. I am quite happy with the release of 'Silk UI' hoping that it will solve the latter and maybe we see a visual JS editor some day (hey, use SS for that and the general visual IDE is born ;) ).