Will Code Exchange Fail Because of You?
Code Exchange has been an exciting topic, and it’s been around for a little while now. Initially it was a cumbersome process to join – you had to fax or email a signed copy of the terms of use to SAP before they would allow access. Fortunately SAP likes to listen to our whining, so it’s changed now and you can Updates on Code Exchange Terms of Use are now live.
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.
Project Description
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.
Have a look at the Optimizing fundraising processes project for a good example of a description. Some others include SAP TechEd 2010: ABAP 7.02 Examples and Demos and Twibap.
Project Documentation
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, there are quite a few resources on SCN to help us along…
Code Exchange? Is that like the stock exchange for programs?
How to join the Code Exchange area on SCN
Getting Started with Code Exchange
Creating your own project on Code Exchange
Code Exchange Tutorial: Raising issues on a project
Code Exchange Tutorial: Managing Project Members
Code Exchange How-To: accessing the code repository of a project
thanks for your post!
Code exchange is a great idea. I think it can be be evolve to a unique position point for SAP, but usally noone buys in for ideas.
Let me raise some (unsorted) points:
+ Code Exchange is a state-of-the art collobration plattform. I believe that the KPI's you raise are better than Sourceforge or any other code collobration plattform.
+ I have an idea of a un-domain specific usage
of ABAP in a open-soucre driven manner. The idea
has also commericial potential. I was warned by
Rui and Craig to use code exchange because of legal reason. Sometimes law is also a mining field. 😉
+ I spoke with two mentors concerning collobartion in some-how proof-of-concept. One rejected because of none commerzialisation possiblities.
+ The integration SAP standard software logistic
is a must. SAPLink has shot comings.
All the best & thanks & have fun,
Guido
P. S.: Rui do a great job in promoting Code Exchange.
P. P. S.: ZCoffeecorner is all about knowledge-driven processes. Concept, Mockup and first coding on Innovation weekend in Berlin!
Featured Code Exchange project from the Happy Dinosaurs
Zuck, your time has come - step by step!
You have some great ideas on where Code Exchange could be improved. Maybe you and others - me - who are reading this could join different projects and help with documentation. Help docs, well, someone could put something together.
I think you elude to the exact solution. It is a community project. So if there is something that is not there, let's help to add it!
I keep thinking I should join a project - youre post motivates me even more. I'll try to go home tonight and try to find out what I could help with.
Challenge! - Everyone who is reading this, and thinking that they don't know what to contribute to code exchange. Documentation! Play with some of the projects, and help with the documentation for them. What a great idea. I challenge you to find a project, and help! (That means I'm challenging myself too.)
Thank you!
Michelle
You are exactly right that I am volunteering to help out, and you have some good ideas. I agree that we should be contributing to the documentation for Code Exchange in a project - most likely in the Code Exchange project as mentioned by Gregor.
I'm looking forward to collaborating with you and others on this 🙂
thank you for this great call to action. I've used it as a trigger and updated the descriptions of the Projects where I'm an Project Owner: ZCoffeeCorner , SeleniumABAP , ZAPP_INTEGRATOR and ZGEOCODE. For the ZAKE Project I hope that the description is understandable. But please let me know your improvement suggestions.
Regarding the abap2xlsx project the credits should go to Ivan Femia who started the project and it's owner. I'm one of the 6 contributors.
For improvement suggestions of the Code Exchange platform please join the Code Exchange project and post them as Issues like I did. I think this project can (and perhaps already is) also be a central place for documentation on how to get started with Code Exchange.
As I see from your other Blog posts it seems that you're an experienced ABAP developer. Would you be interested to record some screencasts explaining how to get started with SAPLink, ZAKE and SubVersion in CodeExchange? I think you have a good sense how to make that understandable for other users.
Best regards
Gregor
I appreciate your feedback - I've had a look at the projects you mentioned, and they all make perfect sense to me. I don;t know enough about ZAKE, but will be looking into it over the next few weeks...
I have now posted my suggestions to the code exchange project - One includes a bug where after requesting membership, while waiting for approval, you can;t create an issue - this is shy I hadn't yet created any issues. I had to leave the project before I could create issues.
I would be happy to assist with some screencasts - I haven;t really looked into SAPLink, ZAKE or SubVersion before, but I will play around with it and then chat with you about how I can help...
All the best
David
Code Exchange started only few months ago and I supported this platform since I had the opportunity.
You are right, sometimes many projects are opened and not followed by anyone (some of them have no content).
"Abandoned" projects exist in every code share platform (Google Code, Sourceforge and so on) and no solution is valid if no support is given by the owner. This is the key, the owner have to believe in his project.
In code exchange you can search for projects using the project list (active projects pop up into the list) and by tags.
I like your idea of a rating (given by users) or a % of activity; you can submit to Assembla and Rui as suggested by Gregor.
I can talk about my projects:
- abap2xlsx is an active project, using Code Exchange 2 collaborators joined the project and many others are giving their idea and feedbacks. This was not so easy using Google Code, few people suggested something.
- abap2docx and AugmentedSAP are not yet a project, I would like to start working on them ASAP.
- Clone Hunter is an old project of mine hope this could be useful for some one to create a more complex tool.
Gregor and Rui are doing a great job to enhance and publicize this platform into SCN Community.
Cheers,
Ivan
I believe that a project activity meter would help in identifying abandoned projects. I've submitted my suggestions in the Code Exchange project now... That being said, you are right that the owner must believe in his/her project for it to work. Where possible, it's also a good idea to have more than one owner so that the workload and motivation can be spread. If one owner looses interest, at least there is a chance that the other owner can pick it up and possibly even find another co-owner.
Thanks for your remarks!
Regards,
David
Additionally, giving full rights to SAP to use the code in whichever they see fit including proprietary re-licensing, per Section 4B, discourages the use of open licenses which Code Exchange attempts to promote.
Even though the thought of a central repository of open source licensed ABAP code is promising, I cannot commit to the terms even as just a consumer.
as I've written in my Blog SAP is entering phase 2 of it's Open Source adoption - When do we see phase 3? I hope that SAP moves on and will change their terms over time. Currently still the lawyers rule and we, the community has to work on building the faith that it can also for SAP's benefit to be more open. I would feel honoured if SAP would take my code and include it into the standard product.
What are your detailed concerns with the terms being just a consumer?
Best regards
Gregor Wolf
SAP Mentor
If SAP chose to include my code in a standard product, I, too, would be proud. I would also want them to adhere to my original license. If my intent was to allow SAP to do proprietary re-licensing, I would use a license that allowed it like Apache. If I do not wish to allow proprietary re-licensing, I would hope that SAP adheres to my terms as the copyright holder.
for sure SAP need more outside-in attractors.
Code exchange will one of them and long-term
code will exchange industry way how to develop software and YOU can be a part of this movement.
Let's build first built the foundation!
I have made a rough concept how to make a integated solution on SAP standard software logistic (CTS) and SAPLink.
XLINK will support every CTS supported object and technically make a XML container around the transport files.
Everybody is invited to give feedback and to contribute. Rui will provide to the project "Code Exchange" on Code Exchange.
You can found more information here:
... XLINK :: new foundation for CodeExchange ...
1. Click on the link
2. Click on the button "GMX Media Center starten"
3. Mark the document
4. Download it!
I can also email you the document, just drop me a mail via guido(dot)brune(dot)sap(at)gmx(dot)org.
For security reasons and other reseans reciepents with *@gmail.com-accounts will not be
supported.
All the the best & Have fun!
Guido
Cheers
Steve
but you can setup your own SCN account which is just for your private use, download the NetWeaver Developer Edition releases for ABAP or Java and you can start contributing.
Best regards
Gregor
the license is not displayed as it is always the same license. You have to accept the Code Exchange Terms of Use if you want to download (Consumer) or contribute to a project. When you want to contribute, you must get your ABAP or Java stack under the NetWeaver Developer License. Unfortunately it seems that the most current version of the NetWeaver ABAP Stack 7.02 is currently only provided as a Trial Edition. I've raised this as the issue #23 New ABAP/Java downloads are not provided under the NetWeaver Developer Edition in the Code Exchange Project on Code Exchange.
Best regards
Gregor
In any case, the code that a contributor submits can use an OSI approved license. Samples are giving in Section 6B. The specific license chosen for a project should be displayed more prominently in order to ensure that both contributors and consumers are aware of their rights as it pertains to the project.
The more I read the agreement, the less I want to sign it.
For example, under Section 2 definitions, I see the following in regard to add-ons.
"Standalone interface code from SAP Software to non-SAP software is excluded from this definition of Add-on"
This means that Code Exchange projects like ABAP2XLSX and Twitter/OAuth API would be excluded from being an add-on since they provide interface code from SAP software to non-SAP software, Microsoft Office and Twitter web services, respectively. Yet they are still allowed to be on Code Exchange. Other projects like the REST api would also be excluded since they provide interfaces from non-SAP software to SAP software.
You missed the word "not" in the sentence "may not contain Viral Code." of Section 6B. All the listed OSI approved open source licenses are defined as "Viral Code" and can't be part of a code exchange project.
Have you read the FAQ entry Why are projects limited to add-ons?? As far as I understand it, SAP intends to protect their systems from being replaced by other systems. As long as you're not building a SAP CRM to SuggarCRM extractor you should be fine.
Excerpt from http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#WindowsRuntimeAndGPL
I'm writing a Windows application with Microsoft Visual C++ (or Visual Basic) and I will be releasing it under the GPL. Is dynamically linking my program with the Visual C++ (or Visual Basic) run-time library permitted under the GPL?
The GPL permits this because that run-time library normally accompanies the compiler or interpreter you are using. So it falls under the exception in GPL section 3.
Therefore dynamically calling a function module provided by SAP like conversion_exit_alpha_input would not be an issue since it is part of the "run-time library" that accompanies the compiler. I do not where the distinction would lie in an ABAP environment where linking is handled fully by the compiler and not influenced by the developer.
In any case the move away from open licenses is a very large change from the original agreement in December that seemed to promoted them.
I do not see how a collaborative environment that does not support collaborative licenses will thrive. It is unfortunate because Code Exchange as an idea is very promising and, if implemented correctly, could really showcase great developers and show the power of the SAP systems that companies pay millions of dollars each year to use and maintain.