Open Source Summit
Last week, SAP conducted the (internal) SAP Open Source Summit in Walldorf, a two day event to discuss, share and promote the usage of Open Source software (OSS) at the company. In addition to the usual suspects (Barbara Hartel, Claus von Riegen, Sanjay Patil and Karsten ‘OSS’ Schmidt) in this space we had developers sharing their experience of what it is like to actively contribute to Open Source projects like:
- odata4j (Stephan Klevenz)
- Apache Chemistry (Florian Müller)
- EGit (Matthias Sohn)
- Memory Analyzer (Krum Tsvetkov)
Of course, there also was a great line-up of external speakers such as:
- Jono Bacon (Ubuntu Community Manager)
- Prof. Dr. Dirk Riehle (University of Erlangen-Nürnberg)
- Brian Leroux (Adobe) – talking about cordova.io (aka Phonegap)
- Mike Milinkovich (Executie Director Eclipse Foundation)
- Andrew Aitken (SVP Olliance Group)
For me, it’s been a great and content-packed summit, one that rest-assured me that we are well underway at SAP in regards to Open Source. We learned about good and bad OSS licenses, the importance of growing a community and how-to establish processes that encourage the use of Open Source in the enterprise.
However, the one topic that stuck with me was Mike Milinkovich’s presentations, in which he stated: “SAP is not doing a good enough job in promoting its contributions to Open Source!” (I’m paraphrasing here.) He did provide data to back up his statement, e.g. did you know that SAP is 3rd most active contributing company to Eclipse projects? No? Well, take a look at this dashboard: Company / Project Commit Details
As such, I thought it may be a good idea to make (parts of) my own presentation “SAP NetWeaver Cloud and Open Source – A match made in heaven” public as I truly feel that SAP NetWeaver Cloud (aka NEO) is taking it to the next level. So, here we go…
Mission statement – 1 Billion users
When it comes to explaining the importance of NW Cloud within SAP’s overall strategy I usually start with the big picture. As you may know… (and SAP’s executives are making sure to keep spreading the message internally and externally) SAP aims at having 1 Billion users by 2015. The question that immediately comes to mind is: ‘how to get there?’
Well, from my point of view it’s simple (to explain, that is!): SAP needs to provide an attractive platform that is easy to use and provides developers access to a huge customer base. It’s easy math indeed: the more developers SAP gets to develop applications on the platform, the more apps there will be. If there are plenty of apps, there will be plenty of good apps. And the platform that has the best apps will be the most attractive for customers (and new developers.)
As such, it’s more or less about porting the platform + store model that Apple™ has been so successful with to the enterprise space. As you probably recall, SAP announced several developer programs and trial licenses at SAPPHIRE NOW this May. Giving developers easy (and affordable) access to development tools is an important first step into the right direction. But is it enough to get mass adoption?
Let’s take a closer look at the Open Source movement and the keys to successfully getting mass adoption.
The Open Source way
In general the charm (reads: value proposition) of Open Source can be broken down to the following steps:
- Get started
- Get results fast
- Get involved
- Give back
- Achieve quality
1. Getting started
One of the most important aspects of getting developers to use your stuff is to make it simple stupid for them to get started. You cannot market to developers, you may get them interested by talking to them, but ultimately they will want to test-drive what you got themselves! Consequently try to lower the entry barrier as much as possible and offer your tools for download for free. The harder it will be to download the tools, the less people will try!
The next step for a developer is to get the tools up and running. It’s crucial to have a rock-solid installation guide, or – even better – an automated installation as using scripts or dependency/build management tools such as Ant, Ivy or Maven. If people will face a hard time getting the tool(s) installed, they’ll move on and try out something else (could be the tool of your competitor!)
2. Get results fast
Let’s face it: developers are always under pressure. Timelines are always tight and requirements keep changing! That’s one of the reasons developers like libraries to ease their lives, so that they do not have to re.invent the wheel, but instead can build on top of quality code. This way, they can concentrate on coding the stuff that is unique to the challenge at hand. Consequently it’s very important to have a good documentation of the tools to be used. And plenty of examples and executable samples and demos… (if you ever wondered why Spring got so popular – have a look at their documentation! 😉 )
3. Get involved
4. Give back
If everybody would only consume Open Source software w/o giving back it simply wouldn’t work. So, why not blog about your experience using a particular software and hereby spreading the word? Why not paying it forward by answering some questions other people asked and to which you know the answer? (Maybe you found out the hard-way yourself!) Why not share your code samples on Github so that others may get a quick(er) start?
5. Achieve quality
It’s simple… the more people using a particular piece of software, the more likely that bugs have been found and fixed. More users usually results in less errors = better quality. In addition, there are plenty of Open Source projects out there that help you in producing quality code like JUnit, Selenium, Gerrit and Sonar – just to name a few. Oh… and while we are at it, don’t you think you’d polish your code (and its documentation) when knowing it’ll be out there for everyone to see? Guess it boils down to Hubris.
You’d be surprised to see what happens if you let geeks ‘party with your code‘. If you let them, they may just take it to the next level or fork it and give it a new spin altogether. One more reason to just put it our there and let the community do its thing…
SAP NetWeaver Cloud – We love Open Source!
With all that being said, you may understand why we – the SAP NetWeaver Cloud team – opted for developing our platform based on the Open Source way. Because it seems to be the best only way to provide a platform that developers will love to use!
As illustrated in the picture above, there’s plenty of Open Source software within NEO. At the very core (from a dev’s perspective), we got the Virgo server: an
OSGi runtime-container with an embedded Tomcat server. In addition there are plenty of well-known projects from Apache and Eclipse and many others. As I said before, we are not only using Open Source, but are actively contributing to it (see this list of projects.)
And… not only is the platform built using Open Source frameworks, but it is also developed according to best practices established in the Open Source movement. We follow agile methodologies and use the tools mentioned above e.g. we got Git as our version control system, we do Gerrit-based code reviews and we use Jenkins for Continuous Integration etc.
So, before we call it a day – let’s do a quick check-up against the characteristics I stated above:
1. Get started
Eclipse is the standard IDE of choice due to its wide adoption both within and outside of the current ecosystem. Developers can download all required tools via the well-known process of using an Eclipse Update Site. SAP NetWeaver Cloud can freely be downloaded from the Developer Center and users can go from zero to their first deployment in about 10 minutes (here’s proof!)
2. Get results fast
SAP NetWeaver Cloud integrates seamlessly into the Eclipse Web Tools Platform, which means that everyone who has done Java Web Development before will feel at home right away. Given the selection of common OSS frameworks incorporated into the platform the entry barrier is really low and developers can get productive very fast. And instead of needing to learn proprietary tools, all components are designed to work using the standard way of Java programming: securing your app, using JDBC or JPA and even communicating with backend systems or SaaS applications via the connectivity API. It’s all based on open standards and comes with a detailed documentation (available both in the IDE and online.)
3. Get involved
The SAP NetWeaver Cloud Development Center is the place to go to and read the latest blogs written by the community, check out the release notes of the bi-weekly updates or to get help in case you’re stuck. The development team is constantly scanning the discussion forums and there are also the friendly people from the neighborhood watch regularly answering questions. Please feel encouraged to share your stories and experiences with the rest of the community here!
4. Give back
As mentioned already SAP actively contributes to a wide range of Open Source projects. And who knows, we may even have a few aces up our sleeves…
5. Achieve quality
Ever looked at the sample folder of the SDK? If not, you should… here you find ready-to-go sample projects including unit and integration tests. You may want to copy & adapt that for your projects.
Well, that’s it for today. If you’re interested in the topic and planning to attend TechEd this year you may want to look out for our session ‘Tapping into Open Source with SAP NetWeaver Cloud.’ Together with my partners in crime Lars Karg, Krasimir Semerdzhiev and Dimitar Mihaylov we have compiled a 2h lecture packed with live coding sessions using the who-is-who in Open Source software these days… plus, we will have some special guests!