Running a business with an open source product

After more than one year of development we released our WordPress plug-in Next Active Directory Integration (Next ADI) a few weeks ago. The last months have been an exciting time for our team which gave us a lot of drive.

As a company located in Wolfsburg, Germany we have been directly impacted by the the last year’s Diesel Gate. This is not only a problem of our company but of the whole local IT business. Most of the IT companies in the area of Wolfsburg have either Volkswagen as direct customer or their customer’s customer is Volkswagen. Pretty bad when IT budgets are cut. We are glad to say that with Next ADI we are one of the few (maybe two?) companies in the near area offering a real product – and maybe the only one which is real open source :-)

Challenges

We must admit that the way to the first version of Next ADI has not been so easy as we had expected. As you can read in our blog and various forum posts we had planned the release for May 2016. But we failed this date about three months. Actually, the reasons for this were not technically nature but organizational issues and a long holiday period.

Providing an international service

In 2015 we already agreed to provide professional support with Next ADI and make this service available world wide and not only in Germany/Swiss/Austria. The reasons for this are simple: The market for WordPress and Active Directory is limited, our product is unique and we have no competitors.
In theory running an online business with WordPress is simple: set up a WordPress instance, install WooCommerce, configure your products and you are done. In practice this is not so easy because in Germany there a legal restrictions which every company has to comply with.
It took us a *really* long time to check all required regulations and to provide and translate an appropriate general terms and conditions document. If you ever want to make global business, simply ask a lawyer and a company which can translate your German content into legally recognized English content. Don’t do it on your own. Just. Don’t. Do. It. This whole topic drove the whole team into some sort of craziness you would not believe.

In theory it sounds simple. But in practice there have been some legal issues.

A second stopper had been the translations. At the beginning we wanted our site https://www.active-directory-wp.com to be available in English and German. WPML for WordPress is easily installed and a WPML plug-in for WooCommerce does also exist. As already written: in theory it sounds simple. But in practice there have been some legal issues – and a lot of organizational overhead – running the site in two languages. In the end we decided to make a cut and only provide English content and the required German legal notes. To be fair: most of our customers are experienced IT guys who are able to understand English ;-)

Publishing our Next ADI in the WordPress plug-in repository

We wanted Next ADI to be available in the official WordPress plug-in repository. The reasons for this are simple: free marketing and easy installation for customers. The first challenge was to get our source code available in a Git repository pushed into the Subversion repository. We are a tech company so this was a not-so-hard task: hacking some Bash scripts, some configuration of our Jenkins CI build tasks and we were good to go.
The second challenge was harder: Dealing with WordPress.org’s plug-in restrictions and auditors. We did not want to push any code into the old code base because there were no technical relations and we did not (could not) force existing customers of the old „Active Directory Integration“ plug-in to move to the new version. What to do? Our original plan was to name „Next ADI“ as „Active Directory Integration 2“. We had everything prepared, our website was ready to go and we submitted the plug-in for audition in expectation to get accepted. But it got declined: There were already a plug-in named „Active Directory Integration“ and a versioning number in the plug-in name is not allowed. We complained because it was *our* plug-in but no chance. We had a team discussion and agreed on the new name „Active Directory Integration NX“.

After changing any names in the source code the plug-in got submitted … and declined. We received a sarcastic e-mail that „Active Directory“ is a trademark and therefore not to be allowed as the first part of the plug-in name (#17. Respect trademarks and projects). To make the story short: we decided to use „Next Active Directory Integration“ and were good to go.
After that we had to change namespaces and prefixes in the code but this is another story.

Extending the companies customer market

Before our website and the new version went online we received various feature requests we have already implemented (Kerberos SSO) or are still implementing (NTLM SSO). In the last three months our customer base extended from Wolfsburg/Braunschweig with the branches automotive, medical and biotech to United Kingdom, USA, Norway, Sweden, Finland, Swiss, Austria, Denmark, Netherland, Poland with branches like finance, waste industry, real estate, energy, engineering and IT start-ups. Our first customer was mentioned on wired.com the same day, most of the customers having large AD environments with multiple hundred or thousand users. Our largest installation has 15.000 users.

All in all it is much simpler to get in contact with potential customers and do marketing. Our colleague Nils has been on the WordCamp Cologne on a few weekends before to present NADI, NADI got mentioned in the wp-sofa.de podcast and so on.

Lessons learned

There are a lot of things we had learned the last months not to mention all the Active Directory internals. Besides the solved challenges the following two topics are important to us:

Open source is not for free – or „Learn to say ‚No'“

Purchasing a support license ensures that the customer gets a fast answer.

A lot of people confuse open source software with „for free“. To put it simply: open source is not for free. We invested a lot of time and money into the development of Next ADI. Furthermore the continuous development and bugfixing must be paid and so on. For this we offer support licenses. Even if the users of Next ADI do not need a support license we are hoping that they will nevertheless purchase a license to support the ongoing development.
The support licenses does also imply that we are not feeling bound to give contemporary answers to unofficially support requests in the WordPress forum. Purchasing a support license ensures that the customer gets a fast answer.

Another thing we had to learn is to say „No“ to specific feature or support requests. First of all we only do implement features if the customer is paying for it or we see a broader usage of this feature. At second we had clearly defined in the beginning which support requests we do answer. We are really glad about this decision because some support requests can only be answered by the local Active Directory administrator or requires us too much time of analysis to answer. These questions mostly depends on configuration details of the AD environment and are not specific to Next ADI.

Make documentation continuous

Next ADI is not the traditional plug-in you are actively working in your daily use. It is as technical as a plug-in with this topic could be. It was clear at the exact moment we started the project that we need a detailed documentation. After evaluating different approaches we decided to go with daux.io and a custom GitHub repository. Also a Jenkins project to make our documentation continuous. Every change in the documentation is verified by reviewing pull requests. After the pull request has been accepted Jenkins builds the whole documentation. Jenkins then uploads the documentaiton to https://www.active-directory-wp.com/docs and verifies the existence of any assets and the absence of any broken links.
This continuous process saved us a lot of time and pain.

Forecast

We are very excited to committing new ways with our business by developing a real open source product. We hope you have got some insight in our motivation and actions. The next release will include SSO support for NTLM and a frist draft of API hooks. In the long term we are thinking about a better user experience.  Some video tutorials for the installation process and first configuration will be added, too. If you got any questions drop us a line at info[at]neos-it[dot]de.