Onboarding & Modules report

Hi,
Last week I interviewed module owners about the current onboarding process, their modules, documentation and see where help is needed. I summarized the results and suggested some possible improvements in the wiki: User:ThomasDinges/OnboardingModulesReport - Blender Developer Wiki

Feedback is welcome.

Thomas

13 Likes

Hello Thomas.
Thanks for the report.

Since you are asking for feedback:

On blender.chat (blender-coders) it is difficult for a beginner. You don’t dare. Or don’t ask any more questions after receiving a sobering answer from a professional.

I would like a place for complete beginners: Noob To Blender Contributor

Or so :slight_smile: The following subject can be discussed and learned with one another here:
With which operating system can I get the thing to run with which program and which settings?

I am convinced that if these people can exchange ideas here, that they will jointly develop knowledge
from which they can create documentation.

Everyone who comes across blender in six months will find people, pictures, texts and videos that will help them quickly find what they want to know so that they can start developing blender.

With kind regards
Roger

4 Likes

Hi Roger,
thanks for your feedback!

We welcome all developers and contributors in our channels, no matter the level of experience. In #blender-builds you can get help setting up a compile environment and build Blender from source, an important first step. For general development questions, we have #blender-coders and for specific modules and areas, there are rooms too.

If you feel a new room is needed, everyone is welcome to start a new channel on blender.chat. But I don’t think it makes sense to scatter things around even more. Even in a room for beginners, you want experienced users and developers to answer questions. So another room is one more to keep an eye on. :slight_smile:

Best regards,
Thomas

3 Likes

While we do cater to devs of all levels in #blender-coders it’s good to remember that it is a blender development related channel, so ideally the questions should be somewhat blender development related, and we’ll happily help out anyone who has an oddball general computer science question here and there, but we’re not there to teach these subjects and we do politely ask people who ask these questions on a regular basis to “slow down a bit” (this rarely happens though, I can count the number of instances we had to resort to this on one hand)

Any of the core devs could quite likely talk someone though installing and tuning linux or windows or mentor someone with no C/C++ knowledge to be a proficient developer, but with developer resources being scarce as is, it’s just not the best use of time, nor is it what the channel is for, there’s other places on the internet better suited for those kind of questions.

thanks for the awesome information.

1 Like

Hey Thomas, that is a pretty solid write up! I would generally echo all that’s been written in your report.

Regarding Roger’s feedback, I lurked for quite a long time before I started contributing more than just bugs to the tracker or even speaking on the chat systems really. It wasn’t because the community seemed hostile, it was me trying to match the behavior I observed and trying to figure out how I could insert myself into the process without being a nuisance. Chat in particular is very sparse from the main contributors, except for Geometry Nodes and recently the Rendering module. Participation is very low in terms of discussion, questions, or general implementation chatter. Even the old Monday meetings were weird. Participation was abysmal and hardly a word was typed. Folks didn’t really ask for help from one another and little was spoken about general software development at all.

As a potential outsider this makes it very intimidating to start contributing as there’s no chance to learn from the discussions of others and because of the “no talking” environment. I felt like I was being a nuisance each time I would chat especially if I needed to directly contact someone to move forward or to raise a general question. Sometimes folks seemed so busy that when they did reply the response was so terse and alien to be nearly useless to me :slight_smile: - and I’ve been in software for 17 years (but not 3d/math related which did not help).

This is a very tough problem in general. The main source of contention, in any environment, is figuring out how to insert yourself into the process in a way that’s helpful instead of harmful. Let me be honest, no one, not even myself, is going to be happy responding to random internet users/developers throughout the day to get questions answered while my plate is already full. I would hate doing it and am fully mindful of that when contributing as well.

All that said, there’s one thing in your writeup that probably deserves more attention. While code review is definitely a bottleneck, the proposal to front-load more design work, while absolutely correct and necessary, will most likely push the problem to that task instead. Instead of “no one’s looked at my code review in weeks” will turn into “no one’s looked at my design task in weeks”. Or “the design task spawned a lot of extra work and I can no longer do this on my own so I probably won’t even start”. The problem is ultimately time. In order to properly review a feature or design you need dedicated time to do so. There’s no way around it. If you hope to set people up for success, your feedback better not steer them off a cliff and so you need time to actually consider things and direct them accordingly. That’s hard.

In my current work environment we’ve tried a few things that have each led to some success for these problems. They’re just food for thought and, before going further, I’ll note that even still there will be plenty of ideas and code that never makes it out.

We’ve tried the following in various forms - These should all be seen through the lens of actual implementation and design and not as a “support” vessel for users:

  • Office Hours – dedicated times where folks can come in for getting questions answered with some reasonable assurance that “adults” will be present to try to help. Sometimes they’re used for design work that has become stuck or hasn’t been reviewed at all. A big downside is often attendance on both sides though.
  • Hack Times – general experimentation time that may or may not yield any fruit. These can also be used as a dedicated time to test out and use in progress code to root out any further issues that need to be addressed before committing it for real etc. Can also be used for additional development power to get things buttoned up.
  • Some facility to “recruit” a helping hand. Having a place where you can get extra implementation/design help from a pool of additional developers is useful. This shouldn’t be a place to ask about getting your pet feature developed by someone else but rather you need help completing your already designed-reviewed/partially implemented feature. Pairing up isn’t just to make things quicker, but it might make the impossible to possible e.g. Hey, my design task requires changes to the UI/UV Editor space and I’ve never worked there, can someone work with me to complete that part of the implementation.

Generally, the platforms for putting your design/code out there like chat, devtalk, and phabricator are already present. The next step is having dedicated times, resources, and processes in place that keep the items moving through those platforms from beginning to end.

8 Likes

Hey Jesse,
thank you for your feedback, much appreciated!

Chat activity

I understand what you mean. When I started (2007), the blender chat was still on IRC and there was only one room, which was pretty active. Today there are several channels, generic ones for Blender development, python questions… but also specific ones for modules and areas of Blender. Not sure chat activity got less, it’s rather more scattered around. Some discussions also happen on devtalk.blender.org instead.

But of course everyone is welcome in the chat and we will do our best to answer questions and help. I am there too and it’s my job to make sure new developers are welcomed and are connected well! You can always approach me directly if you need something or want me to connect you! :slight_smile:

Patch review
I see the risk of pushing the problem to the design tasks instead, but as you said as well, it is necessary to spend time on design. I think it’s more frustrating to get code rejected instead of a design proposal. Asking if a feature would work and the design accepted is usually much less work then coding it already.

Your ideas of office hours, hack times… are interesting and we need to improve the patch review process and spend more time on it! I am working on some ideas for that at the moment: User:ThomasDinges/ImprovingPatchReview - Blender Developer Wiki

Best regards,
Thomas

7 Likes