* The Business of Software

A former community discussing the business of software, from the smallest shareware operation to Microsoft. A part of Joel on Software.

We're closed, folks!


» Business of Software FAQ
» The Business of Software Conference (held every fall, usually in Boston)
» Forum guidelines (Please read before posting!)


Andy Brice
Successful Software

Doug Nebeker ("Doug")

Jonathan Matthews
Creator of DeepTrawl, CloudTrawl, and LeapDoc

Nicholas Hebb
BreezeTree Software

Bob Walsh
host, Startup Success Podcast author of The Web Startup Success Guide and Micro-ISV: From Vision To Reality

Patrick McKenzie
Bingo Card Creator

Early feedback on a new GUI

Almost a year ago I asked for feedback for my Windows automation tool Moscripto: http://discuss.joelonsoftware.com/default.asp?biz.5.846032

To paraphrase the content of the above thread, the main critique was that no one needs a new scripting language (BTW, good point). In the mean time I released the v1.0 as a freeware.

After a long break, I continued the development with making a job designer or GUI that will supplement the language. I haven't solved all the puzzles yet, but I believe in couple of months I'll have a real designer for creating jobs.

I created a short demonstration (2 minutes, no sound) from the current state of the designer. It is a boilerplate MFC application and only the main control where the syntax is matter. Could you watch the screencast?


Basically, I am after opinions of the viability of the GUI, would it be something an average computer user (interested in Windows automation) would easily understand? I believe it is a big step forward in usability and justifies the invention of "yet another scripting language", but how does it seems to you? Any suggestions?

In the demonstration I am trying to present editing of syntax lines, moving them up or down and deleting syntax lines.

Goran Burcevski Send private email
Wednesday, February 27, 2013
As a programmer, this sort of interface would drive me nuts :)  Not sure what an average computer use would think since I've never been one.

One possibility that occurs to me: I wonder if this could be expanded into an educational tool for teaching/introducing basic programming to novices?
James A. Send private email
Wednesday, February 27, 2013
I think your best bet is to use Python with a nice clickable IDE like you have.


I'm saying this as someone who may understand what IT people have to go through (who would be your main audience.)
Bring back anon Send private email
Wednesday, February 27, 2013
PS: and the entry should be freeform text. Your clicky clacky to move lines up and down is disturbing!
Bring back anon Send private email
Wednesday, February 27, 2013
Yeah, how about drag and drop to move stuff around, at least as an option.

I get why it isn't freeform, as you want control, but it might be good as an option for advanced users.

Also, maybe draw around if..else block.
Scorpio Send private email
Wednesday, February 27, 2013
To be clear, I am not targeting programmers. Although I haven't settled yet the exact target group, I am imagining power home users and small business owners that might have needs for automating tasks (uploading files to FTP, downloading something, copying files around...).

James; I spotted the idea the other day when Andy asked about the "next generation of programmers". It surely can help, but I am not focusing in that direction.

Anon; Python, yeah right. I hate that language.

Scorpio: Freeform is already available. However, I want to add UI to the job creation process to make it easier to add functions to the job.
The final version will list on the left side all possible functions in something like a Visual Studio toolbox and the right side (the one you saw now) will accept the functions (File.Copy, File.Delete, etc).

I know that drag & drop would make the UI more intuitive, but that will wait "better times".
Goran Burcevski Send private email
Wednesday, February 27, 2013
That's intriguing. I won't mind to use that application to automate certain tasks; I hate manually coding cron-like jobs.

Visible variable tracing (like cell dependency in Excel) and highlighting lines with error look like nice additions to it.

As I say, I wouldn't mind having that in my PC...
Leonardo Herrera Send private email
Wednesday, February 27, 2013
I'm sorry to be harsh but you're combining the worst of two worlds.

There are if/else/while statements. This is a programming language.

The difficulty of programming is conceptual: what is a variable, how it changes over time, how does if/else works, how does while works, when to use one and when to use the other.

 Your product doesn't solve the hard problems. I doesn't even solve easy problems. Like James and Bring back anon: anyone who gets even a bit proficient would be driven mad by the sandbox you erected. This is now how human works: after we learn to ride a 3-wheel bicycle, we move to a real bicycle and never look back. Your tool doesn't offer this progression, you're locking everyone to a 3-wheel bicycle.

I think this is fundamentally flawed approach and you should abandon it.

A second best option: since you already have a working prototype, before you sink more time into development, start doing basic usability tests (point 12 in http://www.joelonsoftware.com/articles/fog0000000043.html)

And an observation: notice your decision to require braces in "if (foo < bar)". I would argue that "if foo <bar" would be easier for beginners. Braces are for compilers, not people (although both Python and Go manage to avoid it) but in your graphical UI they are superflous.

My point is that it's hard to design for people who are not you. You formed a certain hypothesis about your potential users: they are complete beginners, easily confused and your product tries to address the parts that *you* think your users find confusing.

At the same time, you cannot shed your expert programmer mindset and you don't even notice that some of the things you require are arbitrary and mystifying to beginners. For example, why "If" and not just "if" ?

Why "$free = 0" and not just "free = 0"? Why the need for magic "$" symbol?

While File.Copy and not file.copy or CopyFile? For you the namespacing rules are invisible at this point so file.copy makes perfect sense but to a beginner it's just a magic incantation and CopyFile() is more natural.

Again, the only antidote to that problem is being aggressive about validating your ideas by doing usability tests.
Krzysztof Kowalczyk Send private email
Wednesday, February 27, 2013
Krzysztof, thanks again for your in depth analyzes.
Goran Burcevski Send private email
Wednesday, February 27, 2013
I don't understand who is the target audience for this?

Non-programmers don't understand loops, variables, return values and such, so there's nothing they can do in your app. And visual code editor doesn't help here. You should raise abstraction level if you target non-programmers.

Programmers wouldn't use this sort of editor because it's extremely slow compared to keyboard input+auto complete+hot keys and so.
Kuzmitskiy Dmitry Send private email
Wednesday, February 27, 2013
Leonardo, great, that's encouraging.
Goran Burcevski Send private email
Wednesday, February 27, 2013
Dmitry, I believe windows automation is widely used by power computer users and I am sure they can master simple concepts (if they have a problem to solve).

Maybe the file I used as an example was not the right choice, having meaningless variables and loops. But, the truth is, if one wants to accomplish something, at some point he'll want to check the result of the operation or continue the operation while certain condition is true, etc, and then he'll have to learn about variables, loops, etc.

Doing the same only with a GUI with numerous nested tabs would make the whole thing much more complicated.
Goran Burcevski Send private email
Wednesday, February 27, 2013
>>  I am imagining power home users and small business owners

Then you best imagine a very different product and user experience.

I'm fairly technical and I wasn't quite sure what the rows and logic expressions were all about; I guess you could say I was complete lost.

If you want to do this right you need an empty canvas with a super-easy to understand toolbar,  symbols, connectors, tasks and actions boxes and allow a person to *draw* the automation model aka "job".  Version 1 will be basic; up to 3 serial tasks connected with some basic event triggers and scheduling framework.  Version 2 will allow parallel and inter/intadependent tasks/flow models.

I strongly recommend looking at the "design studio" clients used in popular ETL packages (or just Visio) for more UI inspiration.

The Pentaho Data Integration package has a nice UI that you may also find thought provoking.

It's an interesting idea - best of luck.
BI Baracus Send private email
Wednesday, February 27, 2013
BI Baracus; I went first that route, actually I made a long break in the development only because I was trying to represent the job in a diagram or flowchart way. Believe me, it is not going to work except for the simplest jobs.
Goran Burcevski Send private email
Thursday, February 28, 2013
Goran, I suggest you have a look at Scratch:


Also not perfect, but much more usable than what you have.  In particular, there are much less dialog boxes. Everything is editable in place, re-arrangeable by drag-n-drop, and there is multilevel undo in place of confirmations.

Email me privately if you want to know what I'd change in Scratch.
Dmitry Leskov @Home Send private email
Thursday, February 28, 2013
Dmitry, thanks.

Could be that I am totally wrong with, however, it is now too late for such drastic changes.
Goran Burcevski Send private email
Thursday, February 28, 2013
There is no hurry. Just ship it and collect as much feedback as possible.

From my experience, initially you can get away with almost any UI as long as your product solves a real problem. Our version 1.0 was command-line only and we sold the first copy in just a few hours after release, at the special introductory price of $800...

However, growing your customer base beyond the early adopters requires in particular substantial investments in the ease-of-use, documentation, tutorials, and such.
Dmitry Leskov Send private email
Thursday, February 28, 2013
Completely agreed. At the moment I can do only small changes/improvements to the UI. After I get real user's feedback, anything is possible.

I guess I'll post again in couple of months when I have this ready, hopefully with some usage cases.
Goran Burcevski Send private email
Thursday, February 28, 2013
  Did not deep dive into your product but from the initial looks is your app any similar to http://www.autoitscript.com ?
nilesh Send private email
Thursday, February 28, 2013
Yes it is, though feature wise my product is way behind. Actually, I believe that I am targeting another segment, but in many way they overlap.
Goran Burcevski Send private email
Friday, March 01, 2013

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz