So now it's easier to join - you can create new projects and contribute to existing projects. But is it really working? My understanding is that Code Exchange is a collaboration tool, but at the date of writing, the average number of members per project is 3 to 4. That doesn't sound very collaborative to me.
Code Exchange is such a great idea - why isn't it taking off as quickly as expected? I believe it has a lot to do with ease of use (or lack thereof) and missing information in projects.
Collaboration means that a whole lot of people from different backgrounds with different areas of expertise work together to achieve the same ultimate goal. With that in mind, when administering a collaborative project, you need to provide enough information so that people from all walks of life can understand what it's about. If you want interest in your project, if you want to build momentum, then people need to know what you're trying to achieve. They need to understand your objectives so that they can get excited about it and contribute! Isn't that the point of Code Exchange?
I must confess - I'm not an active contributor in Code Exchange, but my intentions are there. I just feel that project administrators need to do some spring cleaning and make it easier for me to contribute. They need to make me WANT to contribute.
From a potential contributor's point of view, here are some of my thoughts on how Code Exchange will improve drastically.
Why Create a New Project?
Before creating a new project, please go through what's already there - there's no point in starting a new one when you could contribute to an existing one.
A question to ponder - is Code Exchange the place to showcase your code while not allowing the community to contribute? Or is it more about handing over your code to the community so that it can be developed collaboratively?
Remember that it can't just be about YOUR code - as a collaborative effort it needs to be more about the community, and how they can help to produce the best possible results.
To date, there are a total of 68 projects. I took the time to go through each and every one to see what they are all about. From reading the project description, of all the projects I had absolutely no idea what 15 of them were about. I had a vague understanding of 18 of them, and I had a good understanding of what 35 of them were about - that's only 51% of all projects!
To me, the project description is one of the most important parts of your Code Exchange project. You won't get much interest if there is no description, or if it's ambiguous.
A good description of a project should include what the project is about and what the basic objectives are. More importantly, it needs to be said in a way that anyone can understand. Don't make assumptions that everyone browsing projects will know the technical terms or jargon you are so used to.
42 projects have absolutely no documentation. Nothing to tell us how to contribute. Nothing to tell us what the project is about in more detail. Only 23 projects have good documentation, and 3 have mediocre quality documents.
The project may have a decent description, so I know basically what it's about. Now what? I don't know Code Exchange. I don't know what subversion is. What is a NUGG file? Do I download the ZIP file found under documents, or do I check out Releases? Or is it source?
The documentation of your project should include details of what the project is about, what it achieves, technical details, examples, setup guides, etc. There should be a document to tell us how we can contribute. If we want to help, what do we do?
A good example is the abap2xlsx project - There is a great Installation Guide, and Ivan and Gregor have made it easy to contribute by asking for opinions in the discussion area. They have involved the community in the project very well, which is what Code Exchange is all about.
Improvements for Code Exchange
Before you can actively contribute to a project, you really need to stumble around a lot. There isn't much help or guidance to assist us in knowing where to go or what to do - not inside Code Exchange anyway. When creating a new project, it's all a guessing game and administrators need to learn by trial and error. It's all very impressive, but I believe that some constructive criticism won't hurt 🙂
There is currently too little help on Code Exchange - both project administrators and project browsers need to have nice little help links available to tell them what's going on. Information such as what subversion is, how to get the source, how to upload source, how to contribute etc - all the general information relating to any project , ideally context specific help.
It would be nice to add project ratings, where users can rate the project. This would help find projects worth looking at.
A project activity meter would be a great way to let us know which projects are actively being developed - I personally don't want to waste my time on a project where the administrator isn't that into it.
Code Exchange Resources
While there isn't much help directly in Code Exchange, thanks to rui.nogueira/blog, there are quite a few resources on SCN to help us along...