Skip to Content
Author's profile photo Former Member

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

The Code Exchange “expert view” for project members

Using Code Exchange @ Innovation Weekend: Tips & Tools

Assigned Tags

      18 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member
      Hello,

      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!

      Author's profile photo Former Member
      Former Member
      You are volunteering to help?  That is what I'm reading.

      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

      Author's profile photo Former Member
      Former Member
      Blog Post Author
      Thanks for you comments 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 🙂

      Author's profile photo Gregor Wolf
      Gregor Wolf
      Hi David,

      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

      Author's profile photo Former Member
      Former Member
      Blog Post Author
      Hi 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

      Author's profile photo Ivan Femia
      Ivan Femia
      Hi,

      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

      Author's profile photo Former Member
      Former Member
      Blog Post Author
      Hi 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

      Author's profile photo Former Member
      Former Member
      Perhaps Code Exchange is not taking off because signing the terms to even view the code puts additional restrictions on distribution which may be contrary to the licenses used eg GPL v2 Section 6.

      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.

      Author's profile photo Gregor Wolf
      Gregor Wolf
      Hi David,

      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

      Author's profile photo Former Member
      Former Member
      I cannot accept an agreement to which I do not agree. I also feel that forcing someone to agree to terms before viewing/using the source adds extra terms which violates some of the open source license agreements, namely GPL. Since I am not a lawyer and not a copyright holder of any such infringing source, I am not sure what my legal recourse may be. Until I am confident that the terms of Code Exchange are not in violation of any licensing agreements and respect the intention of the licenses, I cannot take part.

      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.

      Author's profile photo Former Member
      Former Member
      Hello,

      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 

      Author's profile photo Steve Sinclair
      Steve Sinclair
      As an employee I simply cannot sign away the rights to any code I write that could be remotely related to my employment. While I hope that on occasion I can contribute by raising issues with projects I doubt that I can go beyond that. I suspect a lot of other potential contributors are in the same postition.

      Cheers
      Steve      

      Author's profile photo Gregor Wolf
      Gregor Wolf
      Hi 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

      Author's profile photo Former Member
      Former Member
      I started browsing some projects and noticed that the license was not displayed anywhere on the page. If the focus of Code Exchange is to encourage cooperation among developers, the license should be displayed in the group box on the left side and part of searches.
      Author's profile photo Gregor Wolf
      Gregor Wolf
      Hi David,

      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

      Author's profile photo Former Member
      Former Member
      It looks like terms have changed since I have first read them.

      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.

      Author's profile photo Gregor Wolf
      Gregor Wolf
      You're right, the ToU where updated on December 6th 2010 as you can read also in the Blog Changes on Code Exchange Terms of Use by December 6th.

      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.

      Author's profile photo Former Member
      Former Member
      It does not say specifically that you cannot use OSI approved licenses. It just says that you cannot use them in such a way that would cause SAP-delivered code to fall under that license. This is an issue that has plagued many other development environments that are not subject to the same terms as projects created within them, e.g. Visual Basic on the Windows platform.

      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.