For the Sheep


Here’s a post by quollism on a thread on BA discussing funding a UI coder (or 20). It’s a long read, but definitely worth it (or if you’re lazy, see the tldr at the end):

As a working software developer who read “Don’t Make Me Think” years before Andrew Price did as part of my job, let’s have a sober assessment of this UI proposal.

There’s a lot of good ideas in here. This is a much kinder program to use than the Blender we currently have. The tabs could work, I’d rather have the notifications panel than the damn outliner, and I could probably live without RMB select as long as I can keep MMB for camera view because it rocks. (In fact, I could probably do without single-click 3D cursor placement entirely.) There’s a fair bit of stuff in here that would be relatively trivial to implement.

But overall what’s being proposed is frankly a way more expensive program to develop and maintain. We are never going to see this in a hundred years from the Blender Foundation with its current level of development resources. Something this richly helpful is going to be difficult to keep giving people free of charge.

Listening to Andrew’s general attitude during his last BlenderGuru podcast, he’s pretty much ignorant about the process of software development, even after Campbell sets him straight – in Andrew’s world, giving money to developers means they automatically know everything they need to know and can go from zero to competent. Newsflash: software developers are not magical knowledge unicorns and money doesn’t solve everything. It’s OK to not know this stuff, but to not listen when a software dev tells it to you is the kind of behaviour I’d expect from upper management in a large corporation. Even just estimating the amount of time it would take to do this properly would be weeks if not months of work for a highly experienced developer.

There’s also the notion of growing Blender as a business. Engineering Blender to be this user-friendly will not come cheaply or quickly, even before a single line of code is written, and once that standard of user-friendliness has been set it takes maintaining otherwise the product loses user esteem. It’s an utterly astronomical decision, a very real course change, and not one that should be insisted on through popular revolution.

Developing UI/UX polished to this level is plain impractical given the Blender Foundation’s limited resources – adding workflows, features where the software can figure out from context what you’re likely to want.. gah. Blender at the moment is a lot like the C programming language it’s implemented in – it puts absolute trust in the user to know exactly what they want to do, because that’s the cheapest kind of system to implement. Added UX intelligence like predicting what function you want before you’ve even done it adds development and maintenance overheads, so the overall development and maintenance requirements go up and features take longer to roll out.

Blender is an introverted creature that warms up to you over time to reveal its richness. If you want something that holds your hand, even just a little bit, a lot more design and forethought has to go into it because there’s supporting systems that have to be coded to do conditional menu registration and who knows what else. Paradigm shifts cost time and money, and we’re definitely talking about a paradigm shift – he even says as much: the UI he’s proposing is task-oriented. To design that, you need to know the task.Newsflash 2: The task is not the tool. The task is no longer “Cycles Material Editor”, it’s “1000 Things you can do with Cycles Material Editor”. Someone has to figure out what each of those tasks are and build a friendly workflow – after a workflow editor is designed and built. Development and maintenance requirements thus shoot up like Diet Coke and Mentos and features take longer to roll out.

Assisted workflow is actually worse in some cases. That context-sensitive right-click menu he mentions? What if you want to bridge two loops but one loop hasn’t got the same number of verts as the other? If you try a bridge under the current system, it knocks you back. What’s a general solution to the situation where the user wants to do something but hasn’t created the right conditions to do so? Current Blender solution: trust the user and tell them “You can’t do X because you didn’t do Y”. Future Blender solution? … again, development and maintenance requirements go up and features take longer to roll out.

And graphically? Words and textual descriptions are cheap. The right icon is not cheap in any sense of the word – you need a designer, you have to wait for the designer to make the icon because good icons take thinking about, and you have to pay the designer when he’s done. Development and maintenance requirements go up and features take longer to roll out.

In the grand scheme of things, representative of the amount of work needed to actually bring Blender over to a UI like this, the proposal is woefully incomplete. A lot of sweat has gone into this, no doubt, but what he’s bringing to the table is a set of broad principles with a few cherry-picked examples of how things could be nicer. Is there a design document that covers a blow-by-blow refresh of the entire UI, complete with workflows for every single function Blender currently provides? Not that I can see. Low-hanging fruit has its name for a reason and this proposal’s full of it. Right now what I’m seeing from Andrew is “I want someone else to deal with the rest of the iceberg while I take all the credit for identifying it has a tip.”

He’s not dealing with the iceberg himself. This is open source we’re talking about here. It is dealing-with friendly, but if you want something and you can’t make it or get it made, take a seat and help yourself to a cup of shoosh. Ideas are cheap and anyone can read a book on UI or UX or IA.

The day we have a multi-hundred-page high-level design document that someone can hand off to an experienced UI-centric developer which covers every possible workflow of every possible tool of Blender, with scalable guiding principles to move forward with and system designs underneath the hood of how this can all be implemented, then I’ll consider this a thing. Until then, a lot of sweet smelling smoke is being blown up a lot of rear-facing orifices by people who demonstrably don’t know enough about the particulars of the smoke they’re blowing.

I’m not even going to mention except in passing the cultural impact of flooding the Blender Community with noobs because suddenly the software is way easier to use. There’s a rule that says if a group of people grows by more than 15% in a given period of time, there’s a cultural shift because there’s not enough oldschoolers to bring the newbies into line.

But as the taco commercial goes, porque no las dos? – why not both? Here’s an idea:

Blender Foundation continues to develop Blender as quick as they can adding new features, working on the underlying engines and doing enough UI to make the tools useful if not super user friendly. This is your cutting-edge version with fancy new features, RMB select, whatever. Basically the bare-bones “just tell me what to do and I’ll do it” version. This version is and will always be free and donation-supported.

Alongside standard issue Blender, someone like BlenderGuru or (frankly much more likely) CG Cookie maintain their own distribution of Blender with UI and workflow enhancements over the top using their own team of coders. The machinery underneath the enhancements is the same as standard-issue Blender, but it’s tailored to people who want that task-oriented interface and don’t want or need the extra control. BG/CGC can charge for EasyBlender/GuruBlender/CookieBlender binaries to sustain code upkeep, and donate part of that charge to BF. In a nutshell: if users want the added benefit of super-enhanced user-friendliness they can pay a premium for it, because not everyone wants it and frankly what’s being proposed is a premium-level feature set in terms of development and maintenance.

Brass tacks time: good experienced developers command anywhere from $50,000/yr to $1000/day. UI/UX consultants are probably going to be double that amount. Campbell estimates it’d take a developer at least 3 years to get familiar enough with Blender’s codebase to be able to work across it.

Anyone got half a million bucks spare? Any takers? No?

TLDR: Some nice ideas Andrew has, but it’s only a tip of the iceberg – he may as well have posted on twitter “I don’t like Blender’s interface and someone should change it” (to paraphrase)

Well written, thoughtful, intelligent and unbiased. It’s about damn time we got people thinking like this, otherwise the debates are nothing but religiously ignorant opinionated spam.

Personally, I think we can benefit from this UI debacle, but only by improving the small issues we have in terms of consistency and usability. There is no need for a huge UI redesign. I could rant for many more thousands of words, but instead I’ll point out that whether a program is easy to use and has tonnes of users or not is irrelevant. One such “great” program is MS Paint. Do we like it? Would we donate money to the developers of it?  Would users of Photoshop and Krita takes us seriously if we told them you could paint the Mona Lisa with it if you tried?

Currently, the only reason professional CG artists take Blender even slightly seriously is because it’s not some simple application that does everything for you. I know that’s not the idea that’s being proposed, but that’s what it looks like from the outside.

To conclude, advanced long-time users such as myself need not worry. Keep calm and remember that the devs are smart people.

If you are a new user and are struggling to learn this crazy program, relax, enjoy the ride, and don’t allow your own opinion to be skewed by anyone.