Simple Machines Community Forum

Simple Machines Blogs => Developers' Blog => Topic started by: Thantos on June 29, 2012, 04:30:07 PM

Title: Barriers to contributions
Post by: Thantos on June 29, 2012, 04:30:07 PM
One thing I want to do is to remove as many barriers to contribution as possible.  My dream is for random_user_632 to see a bug or have a feature idea, code it up, and then submit it for inclusion.  In order to get there we need to first identify the barriers and then remove or reduce the ones we can.

If you've ever thought "I could do that but nah" please let us know.

I started this discussion with the SMF team, Friends, and Beta Testers and here are some of the issues we discussed.

General interest in developing the product.
This comes in two flavors:  What do I get out of it?  And, "Is it interesting to me?".
I think education/discussion can help the first camp.  The second camp depends on the answer.  If it is "yes" then we need to help that person become a contributor.  If it is "no" then there isn't much we can do.  For various reasons I'm not interesting in working on a HTTP server, the Linux Kernel, a database, or a host of other projects I use.

Programming/graphic design/doc knowledge
Ok, someone is interested and they've got that OS spirit but they do need to know how to program or design images or write a doc.  Without that knowledge they aren't much help.  What can the organization do to help those people?

Finding the repository
A friend and former SMF PM mentioned that it was hard to find the code.  We need to make finding the code for contribution about as easy as finding the downloads.

Understanding the submission procedure
I've seen this one a few times:  A person makes a set of changes but has trouble getting those changes submitted for merging into the repository.

The team
I've seen this several time:  Someone has the skills but doesn't want to contribute unless they are part of the team.  Is there anyway we can lessen the importance of the team with regards to contributions?  Or put another way:  How do we help people realize that they don't need to be part of the team in order to contribute?

Knowing what needs to be done
Especially when someone is starting out it is hard to know where to jump in.  Where should I start?  What should I work on?  How do we help people find out what needs to be done?


Please share your thoughts in both barriers you see and in how we can remove/reduce those barriers.


Title: Re: Barriers to contributions
Post by: live627 on June 29, 2012, 06:11:33 PM
Quote
Knowing what needs to be done
Some kind of a public roadmap would help there.
Title: Re: Barriers to contributions
Post by: Arantor on June 29, 2012, 11:31:51 PM
The biggest problem is submissions that are useful but not useful to be in the core, i.e. mods. There are plenty of mods that could be written to help a lot of people but the amount of BS that goes with doing it is what puts people off.
Title: Re: Barriers to contributions
Post by: live627 on June 30, 2012, 02:37:32 AM
I really hate to be an asshole here but this is about contributions to the core 2.1 code. I feel more encouraged to send forth code on GH than here on sm.org, primarily because I KNOW my pull requests will get feedback. That, and less of the said BS gets flung about.
Title: Re: Barriers to contributions
Post by: Arantor on June 30, 2012, 07:52:44 AM
That's the thing: most of the things people would want to contribute aren't actually going to be suitable for mainline 2.1 anyway, which means most of them would have been better off not being contributed in the first place...

Nothing is a bigger barrier to contribution than 'Thanks, but no thanks', and no amount of making it easier to contribute is going to change that - except making it more common.
Title: Re: Barriers to contributions
Post by: Joshua Dickerson on July 01, 2012, 01:36:04 PM
live627, what is stopping you from sending them forward on Github?
Title: Re: Barriers to contributions
Post by: live627 on July 01, 2012, 09:01:01 PM
Come again??
Title: Re: Barriers to contributions
Post by: SleePy on July 01, 2012, 11:40:04 PM
https://github.com/SimpleMachines

Nothing stopping you.  Work is progressing on 2.1, while 3.0 is more in the idea stage, analyzing, testing stage.  I wouldn't expect commits for 3.0 to be accepted since smCore for it is being hashed out mostly at the moment.  But commits for 2.1 would be looked at.  Just remember to sign off on the commit before you push a pull request.
Title: Re: Barriers to contributions
Post by: live627 on July 02, 2012, 12:17:30 AM
I know. I've already made 4 pull requests, two of which are merged into the core already. I'm also not interested in smCore.
Title: Re: Barriers to contributions
Post by: The Craw on July 02, 2012, 01:11:04 AM
https://github.com/SimpleMachines

Nothing stopping you.  Work is progressing on 2.1, while 3.0 is more in the idea stage, analyzing, testing stage.  I wouldn't expect commits for 3.0 to be accepted since smCore for it is being hashed out mostly at the moment.  But commits for 2.1 would be looked at.  Just remember to sign off on the commit before you push a pull request.

/me forks the 2.1 project; has mind blown at awesomeness.
Title: Re: Barriers to contributions
Post by: SoLoGHoST on September 08, 2012, 11:57:12 PM
First let me just say, I have read a ton of articles already that explain GitHub and how to use it.  Spent most of my day today, just reading about how GitHub works... arggg!

So now I am confused about all of the different branches and repositories...

Ok, so I forked SMF 2.1 Repository, now I have 3 branches to choose from:  master, development, release-2.1.  I noticed the README.md file explaining a bit on this, but still find it unclear...

I'm assuming we should be using one of these branches when doing our edits to SMF, correct?  I don't think we should use the master branch at all, since that seems to be the one to hold the merged code...

Quote
master - is the main branch, only used to merge in a "final release"
development - is the branch where the development of the "next" version/s happens
release-2.1 - is the branch where bug fixes for the version 2.1 are applied

Confused, in the SMF 2.1 Repository, there is a development branch that states that it is for developing the next version(s)...  If so, why is it in the SMF 2.1 Repository??

Should we be using the release-2.1 branch?  I'm assuming, right?  Since we are only allowed to fix bugs since, AFAIK, someone stated that features in 2.1 should not be added, as this part was done and it's only for fixing bugs now... correct??
Title: Re: Barriers to contributions
Post by: live627 on September 09, 2012, 01:07:14 AM
Only bug fixes in release-2.1
Title: Re: Barriers to contributions
Post by: butchs on September 17, 2012, 09:31:39 PM
First let me just say, I have read a ton of articles already that explain GitHub and how to use it.  Spent most of my day today, just reading about how GitHub works... arggg!

Alas I do not have the time you have.  I tried and was proven tardy.  I am waiting for the U-Tube instructional video before I try again.
 O:)
Title: Re: Barriers to contributions
Post by: SoLoGHoST on September 18, 2012, 06:27:04 PM
@Butch - Video would be great for this...  yep!!!  If someone were to create a video tutorial on how exactly to do everything so that we can contribute to SMF, this would be more productive for SMF, honestly!!!
Title: Re: Barriers to contributions
Post by: Joshua Dickerson on October 19, 2012, 11:23:16 AM
Maybe I should make a full blog post about this but in the interim I wanted to let everyone know about Github training: http://training.github.com/web/free-classes/. They offer free online classes to learn about Github.

Edit: I forgot about this excellent resource as well: http://teach.github.com/
Title: Re: Barriers to contributions
Post by: Arantor on October 19, 2012, 12:26:20 PM
You know a website is absolutely dire when people have to be taught how to use it.
Title: Re: Barriers to contributions
Post by: Joshua Dickerson on October 19, 2012, 12:35:54 PM
That is a ridiculous statement. The whole sentiment that people should just know how to use everything is ridiculous.
Title: Re: Barriers to contributions
Post by: Anthony` on October 19, 2012, 12:36:51 PM
You know a website is absolutely dire when people have to be taught how to use it.

Exactly my opinion.
Title: Re: Barriers to contributions
Post by: Arantor on October 19, 2012, 12:37:06 PM
No, it's not.

Do you need a manual for any other website? No, because efforts are made to make it obvious what you're supposed to do.
Title: Re: Barriers to contributions
Post by: Antechinus on October 19, 2012, 03:29:05 PM
This is why I gave up on it. The poor sods with the orange badges deal with GitHub. I just feed them markup and css. :D
Title: Re: Barriers to contributions
Post by: Joshua Dickerson on October 19, 2012, 10:13:01 PM
Yes, you need lessons on how to use a lot of websites. You might not remember a lot of them because you've used them for a long time but I'm sure that you've learned to use them somehow. For instance, searching. You didn't come out of the womb knowing to put what you are looking for in the search bar and press Enter. You had to learn that somehow. Do you use any "advanced" searching methods? I bet you didn't know that adding quotes around something or adding a minus sign before something will alter the way you search. You learned that through documentation.

Thinking that any site, especially one which is meant to be for advanced uses, should be designed so that no documentation is needed is completely asinine. Sure, make it as simple and intuitive as possible, but lets face it, knowing what you're doing with Git requires a learning process.  Any site like Github needs documentation for you to understand it.
Title: Re: Barriers to contributions
Post by: Arantor on October 19, 2012, 10:19:47 PM
Well done for, as usual, missing my point.

Having help or references for the advanced stuff is fine. Such as your example of using quotes around stuff. That's an advanced technique, it isn't immediately obvious, and as such it's perfect material for reference manuals.

But in the case of Google, actually they've really tried to make it as easy to use as possible without needing help. You go there, the cursor's already in place, you start typing and it gives you suggestions as to what you might be looking for. It's not going to take much even experimentation to figure out how to use the basics. Not only that but techniques such as interface affordability (i.e. things that are meant to be pressed, give them a 3D look that represents a button in the physical world, something that is pressable)

I'm not disputing that GitHub overall is an advanced site. But when you have to have a video to explain the basics, there's something wrong. When you get three page discussions, or multi-hour IRC sessions between people who do know how to use GitHub and people who don't, just to get them started, something is very, very wrong.

I'm not disputing that a learning process is required, but to make it that you need to have the *basics* explained because it's that hard to use, surely you'd agree that you could do something to make it better?