KiCad development policy questions

I think there is a factor which hasn’t been discussed very much yet.

I totally take the point that you should choose a product which does everything you want (or as close as possible), and then just get on with using it. Any speed bumps in the UI will become unimportant as you learn how to use it.

I think there is a strong argument there: in a professional environment, the degree of polish in the UI is not really of great importance because you will learn it anyway.

However, there is another angle on this. Much like the physical tools in my workshop, I get great satisfaction from using a tool which is beautifully made and which works beautifully, too. Yes, I can get the job done with a cheap socket set, but using a top flight set is a different, and much better, experience.

As a software example, I’ve been a heavy user of MS Word from version 2.0. Over the years it grew in complexity, and eventually they introduced the ribbon, which I thought was a great innovation (I might be in a minority there!). I think the functionality, and user interface, peaked at about the same time as everyone was running Windows 7. For me, Word by then was a beautifully finished tool with great functionality which I really enjoyed using.

But then it all changed. Microsoft introduced a new design language with Vista, aimed at making Windows and MS Office touch friendly. And after that they further changed the functionality to emphasise cloud storage of documents, co-working, and to dumb down the interactions with your local storage.

I remain a Word “power user”, but now I really dislike using it because the UI and the functionality feels clunky, ugly and inelegant. Yes, it does the same job as always, but the pleasure and satisfaction I once got from using it has gone.

I’m banging on about this because I think that even though KiCAD and its competitors will all do much the same job in the end, some will be far more satisfying and enjoyable to use than others. One common way of creating a powerful software tool is to bring together a collection of different products, and then add a layer on top which allows interworking and a smooth workflow between them. The degree of integration varies between products, of course, but I have always found it to be a somewhat clunky and inelegant model. Quite often you have to work with inconsistent UIs, and must metaphorically “step over the cracks” as you navigate it. KiCAD felt like this for a long time, although now the integration is getting better with every release.

Maybe I’m in a minority for wanting my software tools to be slick, handsome, and elegant in their interface and execution. That’s why I think there is more to consider than just picking whatever product ticks the functionality boxes and then climbing the particular UI learning curve.

3 Likes

I’m a Mac guy, and I actually worked for Apple for almost 8 years, on UI/UX (among other things) for our office products (Pages, Numbers, Keynote), so I hear you when it comes to how well-designed software is satisfying to use. We worked pretty hard on that. :smile:

For a cross-platform app servicing Windows, MacOS, and Linux, I find KiCad to be a leader in usability. Is it an app that follows the Apple Human Interface Guidelines properly? No. But it’s very, very usable, and I actually have to say I enjoy using it, and I am very, very grateful for its existence. (…but why is the ‘drag a component, while preserving its connections’ “D” on one side and “G” on the other? That’s nutty and annoying AF.)

In short: I count my blessings, but that doesn’t mean the world is perfect. :smile:

3 Likes

Because of the infamous hysterical raisins, I think. The achievement is all the more impressive if you know the history of KiCad. It has been evolved from loosely connected independent parts (even independent applications?) to a tightly knit application with several parts but one workflow. One big change happened for version 6 where the UI paradigm and the implementation of the schematic editor was totally changed. If you are interested in details, you can read for example KiCad 6: Just published my BIG *preview* review - #44 by eelik.

It’s probably impossible to make such evolution and revolution happen without some old incompatibilities left. I can’t imagine how any commercial software package could have done better – what I have seen, a large multifaceted application will end up as a mess, or it will be started almost from scratch and millions of dollars is spent on the development.

But another reason may be that the purposes of the editors are different and they have different internal workflows. It’s very difficult to map all shortcuts one-to-one when the functionality actually differs.

The third reason is probably that every time a small detail in the established workflow is changed, old users get disturbed and react negatively. Recently somebody complained why hovering over an item and pressing D doesn’t copy and paste (duplicate), like it did in v5 (see the big v5->6 change).

1 Like

Yes, back in pre V4 times KiCad was very obviously a set of DOS era standalone progams with a workflow between them.
Only in V5 we moved away from the netlist transfer.
Similar residual inconsistencies are visible in Altium and other long established software

1 Like

And don’t forget: If you’re not happy with the Hotkeys, just change 'em around. :grinning:

2 Likes

Wow! I am SO pleased that change was made in V6! I would find KiCAD seriously weird to use if it had stuck to the V5 paradigm.

One thing that would help would be if we all stopped talking about “eeschema” and “pcbnew”, and just referred to them as “the schematic view” and “the PCB view” (or substitute ‘view’ with ‘editor’ if you prefer).

I’m pleased to see that KiCAD itself, and the dev team, have already adopted that approach. Unfortunately, we users sometimes forget. :grin:

Sometimes I wonder how much “high level policy” is going into KiCad. There are an impressive lot of volunteers implementing all sorts of nice details, but it needs someone (Stambaugh?) with strategic insight to set up and nudge KiCad into a direction for long term goals and coherency between program parts.

One thing I would like to see is to phase out the RefDes for anything internal inside KiCad (For example, you can’t use the Assign Footprints tool if schematic symbols are not annotated, nor run ERC.

I would also like to see tighter integration between the schematic and PCB editors. For example after changing a footprint in the PCB editor, you have to use PCB Editor / Tools / Update Schematic from PCB to port that change back to the schematic, or else you get into trouble the next time you update the PCB. But this can also go too far (or in the wrong direction). For example, when you delete (or cut) a schematic symbol in Eagle, then apparently it also deletes the corresponding footprint from the PCB. (And connected tracks too?) That is a real nuisance when you cut a section of a schematic sheet to move / paste it in another (hierarchical) sheet.

1 Like

For example, when you delete (or cut) a schematic symbol in Eagle, then apparently it also deletes the corresponding footprint from the PCB. That is a real nuisance when you cut a section of a schematic sheet to move / paste it in another (hierarchical) sheet.

This confirms the sentences from @joojala above. Always be careful with statements from someone with only half knowledge about a tool. The first part is true, but the second not.

Already the programmers of eagle had recognized that there is need to solve this problem and added a mechanism to move symbols from one hierarchical sheet to another.

1 Like

I confess. I once installed Eagle, experimented with it for a few hours, and discarded it, because I did not like the way it worked.

That would also be a non-ideal solution in my book. If you need to do this as a special operation, then it’s yet another thing which can go wrong (and will go wrong for beginners). But KiCad also lacks in this regard:

  1. Cut.
  2. Paste Special (on the other sheet).
  3. And then still the UUID’s are broken, and you have to fix the connection between schematic and PCB manually, and that needs both the annotation, and the “keep existing Reference Designators, even if they are duplicate” option during the Paste Special
1 Like

I suspect little or none. Stambaugh and Hillbrand seem essentially “demand driven” - that is, their role is to respond to requests from professional users for features or fixes. I suspect most of the voluntary development work is somewhat similar - broadly driven by bug reports and feature requests on Git. I don’t see any kind of singular vision, consistent over time, of what KiCAD could and should be. Most requests in Git are for new features, and adding them is a good thing because it means KiCAD becomes more functional over time. I suspect there is little interest in changing the UI paradigms or software architecture because most regular users are skilled in operating KiCAD already and don’t want “unnecessary” change. Such a demand-driven approach will not, though, provide the impetus to bring about long term goals.

Linux wouldn’t be any kind of a force today if it weren’t for Torvalds and his vision. But it’s more than just a vision - Linux works because Torvalds has authority as well. I think KiCAD would benefit from something similar: a carefully thought-through vision of what KiCAD should be, and the authority to drive it in that direction.

At risk of upsetting open source afficionados, I think that is missing from the majority of open source products: they grow and change haphazardly because nobody “owns” them. In particular, software devs and power users seem really poor at UI and workflow design, probably because they are so close to the code, so familiar with how it works, that they see no need to change it or come up with a high-level vision for it.

If I’m being unfair to the developers, I apologise; I’m just reporting how it looks to me.

Say what you like about DEX (and it’s developer :roll_eyes:), it is the vision and product of one man and it shows, it really does. (I’m not intending to get into another debate about DEX just now!)

3 Likes

Agreed. Theres hope though Blender could implement a vision even though their then current users didnt benefit.

1 Like

There are many paid for and free packages out there now.
What works for one person wont work for another.
You need to try various options and see what suits you. There are plenty of demo mode options.
I have been a software engineer for 43 years. From the same piece of software I got good and bad reviews. What is intuitive to Joe might not be to Fred.
I found some people just wont read the manual and then wonder why they are struggling.

1 Like

I do take your point, and I’ve signed up to Peter Dalmaris’s training course for KiCAD.

To be fair, though, there is a growing trend away from software that requires you to read the manual before you can use it, to applications that are largely intuitive. I suspect it might have been driven by the growth in mobile apps, where the functionality is intended to be self-evident. Very few come with instructions or even a basic help feature. Obviously mobile apps have limited functionality compared with desktop programs, but I think even they have more emphasis nowadays on “discoverability”. Microsoft have made a really big effort in that direction.

Obviously there’s a bigger challenge to make something like KiCAD “discoverable” compared with a word processor, not least because many, many people are familiar with the latter, at least to some extent.

Clearly, but badly constructed software might be intuitive to neither, and another program might be easy for both of them. I don’t accept that it’s all about individual preferences; UI and workflow design is a serious subject that can make an enormous difference to the general accessibility of a program. Microsoft, for example, has sunk big money into its usability labs.

I design electronics and software for model railways.
Last week I had a customer complain he had to scroll around the menu items to get back to the top each time and could he return the system for a refund.
I replied that he could press the star button on the keypad to go to the top at any time.
This was explained in the manual so he obviously hadnt read it.

1 Like

Well, I’ve never heard of any other program that uses the star key to get back to the top (although I am totally unfamiliar with model railway apps). Could he be right, and that you’ve implemented an unintuitive step in the workflow?

I don’t know what “the top” even means in this context, but the ‘Home’ key maybe does a similar thing in the programs I’m more familiar with. Or the ^ key, maybe?

No offence intended - just asking.

Its a dcc model railway controller with a numeric keypad and lcd display.
It just has 0-9 and * and #.
Not much to go at really as # is used as enter key.

1 Like

I have been selling software since around 1995 and have seen it all.
I get one person saying the software is fantastic and the next saying its unusable !
I agree it is unusable if you dont read the manual.
I even provide a youtube video demo.
But there’s just no helping some people.

1 Like

Ah, understood. Thank you! Probably not going to be easy to make it fully intuitive with such a constrained UI. :grin:

This is an interesting take. I wonder how you would have expected such a vision to be shown? Maybe in a mission statement (kicad mission statement - Google Search). :wink:

In the same direction, I am hard pressed to find a Linux vision. Maybe apart from the first announcement message “I’m doing a (free) operating system (just a hobby, won’t be big and
professional like gnu) for 386(486) AT clones.”

In all seriousness, we have an over-arching goal that we work to advance in each major release. At least once a year, the lead developers sit down and hash out which parts we want to build each year. This doesn’t preclude new contributors from adding additional features or corporate contributors from sponsoring additional work. But KiCad is far more mission-driven than most commercial software companies. Our mission is to make KiCad better for you.

5 Likes