Open source:Nice looking or functional?

This is very sad we have to ask such a question.

Should my program look nice or should it be functional?

If I would be to answer that I would always say “functional!” Functional! Functional!!!

The red painted hammer head looks better than a gray rough steel one, but the red paint gets chipped-of the first time You smash the nail. Yet a nicely painted red handle may look nice and does not harm the way the hammer works.

Take for an example GIMP and it’s default single color gray-on-gray icon scheme. Someone spent a lot of time making it. It may look nice if You like such a style. But it’s usability… It is really hard to tell apart an icon unless You are color blind, because in such case You are used to it. In most cases people do recognize things first by color then by shape. Red, roughly round – tomato. Round… hmmppph… Tomato? An apple?

Nice looking? Ugly looking? Fashionable?

Do not get me wrong. It is good to have a nice looking, easy on eyes program.

The key question is however: what does it mean: “nice looking?”.

I am a kinky person in all possible ways. The way I think, the things I like, the things which makes me hot. Do You think that what I find “nice” will be also “nice” for You?

As there is no universal beauty such there is no universal nice looking program.

The only path You may follow it is to make it “fashionable”. The fashion, as all we know, is changing rapidly. What is fashionable today won’t be fashionable tomorrow.

In my opinion this is a down-spiral to Your software death.

The question is: do You have a spare time to make it looking nice?

Yes, this is a key point. It may be not always true for open source community, because this community may have more people able to make things looking attractive than actually coding but in a commercial company it is always true.

Yet most commercial companies do go the path: “Let’s change UI in next version”. Really. I have spend few hundred hours to get a grip on Autodesk Inventor 2009 icon system. I got fluent in that. I just know without any searching where to click. And then in 2011 they have given me… a ribbon!

If anyone will try to tell me that ribbon is more efficient I’ll kill him! It is not! It is not a linear search structure. It is a zig-zag one with click in the middle. Not very bad if some icons do get grayed out when context does not allow to use them, but if they do disappear completely You are gone and lost. And WTF it is at the top of a wide but low screen?! In Word it almost turned my PC back to a single line Olivietti type-writer.

All right, next Autodesk Inventor version. 2019. A total rebuild of some context menus. Some new way of guessing what I would like to do. Well…

Not wrong right? User have a constant felling that something is really getting done. That the annual payment is not just a give-away.

Well…

There are bugs and future requests dating 2012 which are not implemented yet. They say they are “considering it”. Core functionality does not changed much. Many bugs I have in 2011 version on Windows XP are still present in 2019 version my coworkers have.

This is certainly a wrong path. Many hours of developers work lost on UI bells and whistles. Will it get better because they are get paid for doing upgrades? I don’t think so. I think they won’t do any important fixes. Why? Because we got into a vendor-lock-in and are neck deep in shit. We have 25 years of electronic documentation. And we are forced into a subscription model. Even if we would have completly opted out of the Autodesk we will still have to pay at least one subscription to just get an access to our old documents.

Each change has a price at user’s end

So we may say that software esthetics is not about “nice looking”. It is about “fashionable”. As long as You have free resources and You are doing a short living entertainment software this is a good idea to follow a fashion. Especially in a world in which information supplied to customers is so limited that they can’t make a reasonable decision and have to use hearts instead of brains to choose what to buy.

Be fashionable then.

But if You are making a work-horse software for people who are using it to get their living please consider it carefully.

Imagine You have a toolbar. Or even my hated ribbon. You arranged it in some or other fashion, good or bad. It doesn’t matter. You made some icons. Again, it doesn’t matter if they were good or bad. People just got used to that.

Time flown by, fashion changed. You decide to change those icons. Slightly re-arrange them. Maybe make them more fashionable, maybe make them more alike a color theme You company is using these days. This is not a hard work. If Your coders worked well it may be just a job for a hired artist. Change some bitmaps and run a build process.

Hmm… or maybe add something more? Making GUI is one of most popular programming tasks. Adding some fashionable stuff should not be expensive, You may hire some low cost coder to do that.

So You do it at a low cost.

Fashionable look may attract new customers, but how about the old client base You built for years? Possibly You may offer them an upgrade. Or even force it by making the old version unsupported now.

Regardless of how You do it Your new users will spend some time to learn how to use new features. They will have to learn how new icons look like, where old icons have moved and alike. Those changes are not big. They won’t impact their work much. You did not spent much money or time on it. Nobody is loosing anything, everyone is happy.

Not true. You old clients will spend much, much more. One hour times 10’000 users base. It is like about 55 people working and entire month just due to that change. Or a decent house in a country.

The question is: do You have a resources and time to make it functional?

This is a next question to ask.

The resources we are talking about are:

  • knowledge
  • people
  • time

I read once at LibreOffice developers forum that they have problems with fixing some core bugs because there is no more any person who really knows what is going on in the rendering system.

Then on Inkscape forum I read a post: “I tried it, it seems to work, I’m committing it” preceded by many question showing that there was a great problem to get a grip on what was going under a hood.

Considering my company and how many commercial paid products do change over time, or rather do not change, I think this is a quite popular condition in any kind of creative development.

Software is about creativity. I tend to think that designing software is a kind of complexity level as designing a country. Yet a person who was involved in it from the beginning can keep most of it in mind. Not details, but the key point and key concepts.

We had a situation in our company when a key programmer for a certain project got a brain stroke. He did return after a half of a year, but never regained his previous, full and brilliant mental powers. Since the project was kept mostly in his mind and was interlocked with many other projects we get a strong one year set back for an entire team.

The software, and especially “open source” idea came to life in between first and second generation of programmers. We all were young then. “Old programmer” was a word without a meaning. Young brains could remember a lot. Never felt a need to write things down, never felt to write down a concept. Code was self-explanatory to us then.

Today we do start dying. We do retire. We do work for living and are having no time and strength for doing coding at home.

The most valuable resource is people with a knowledge.

Back in about 2010 European Atomic Energy organization raised an alarm: “Qualified nuclear plants employees are dying out!” Well… not literally. Simply most of them were getting close to retirement age and it just appeared that there is no personnel to replace them. The governments screwed up, focused of technical aspect and forgot that knowledge==people. Poland does not have nuclear plant but we have a reactor running for medical and scientific purposes. The average age of an employee that time in that facility was close to 65. With most high qualified personnel about 75. The retirement age in Poland was at that time 65. So if all who could would have decided to retire we would end up with a reactor and a janitor to handle it. This is something You may call “an aggressive retirement”.

The solution was education. A pressure to hire more personnel than needed and get it educated by older personnel.

“Open source” is not free from that. It is even worse.

The nuclear energy is a highly regulated branch of industry. They have to have formal protocols for almost everything. They have to have perfect documentation for every technical detail. Logs. Data. Manuals. Instructions.

And they are continuously reviewed if those documents are up to date and in an agreement with a reality.

Do “open source” has such documents?

Summary

I do observe a continuous decline in software quality and continuous increment in it being “fashionable”.

I think it is a wrong path.

If “open source” community is seriously thinking about surviving it should focus on quality. Because a commercial companies will not ever focus on that. They are doing business and there are many, many better paths for gaining profit other than making a good product.

Open source is not about a profit. Open source is about a freedom of creation, but to exists it must have users. It can offer users an excellent, incomparable price, but it must be usable.

Is there then any point in following a fashion? Is then there any point of following paid software? Will a person who have no much money choose free, open source over paid subscription because open source looks more “fashionable”?

I do not think so.

Open source must focus on quality!

And in this specific case, I think, it means focusing on documenting the code.

Leave a comment