CaseStudy/Html2Wiki

From Freephile Wiki

Hi, my name is Greg Rundlett.[1] I was born and grew up in Rhode Island originally and have lived in the Boston Massachusetts area after attending the University of Rhode Island and also the Universite d'Orleans in France. In school I thought I'd be a doctor and thought it important to speak multiple languages so I dual-majored in Biology and French. I became a stock broker for Dean Witter Morgan Stanley after graduation. I trained at the former World Trade Center in fact, so it's a bit surreal to be back now in New York City. About 7 years later and with the advent of the internet I finally found my true calling in technology. One of the early companies I worked for was a venture-funded startup that used wiki technology and Perl on the backend to make content authoring easier for non-technical users by translating wiki markup into HTML. This was 20 years ago; before markdown or MediaWiki etc. So, I'm self-taught in technology and these experiences have shaped my perspective in the value of Free Software.

I believe in free knowledge. I believe in Free Software. I'm a longtime GPL advocate. But the GPL, despite being 30 years old, is still fighting an uphill battle against multiple forces. MediaWiki, the software, is one of the most popular free software projects in the world. Thankfully, MediaWiki is one shining example of a GPL project that is "winning". And for many good reasons. There is probably no better free software project to contribute to. A few years ago, I started a consulting company to focus on Enterprise Quality Free Software solutions. One client, a major billion dollar software company, had thousands of pages of technical documentation locked up in a proprietary system where finished HTML was the most "workable" format they could extract from the system for publishing to their users. They had already decided to adopt MediaWiki as their new documentation platform. And so they hired me to create a custom extension that would import all that HTML documentation, transforming it into MediaWiki format. This talk is about what was that experience like and how did I get them to release the code under the GPL?

Why did I want to make this talk? Because I think it's the little guy who wants most to stand up for the freedom enshrined in the GPL while major enterprises generally have lawyers who want to minimize the 'risk' of making things free. In short, I want to make it easier for GPL advocates and MediaWiki consultants to do their work while simultaneously maximizing the benefits of that work. And it's not just the legal aspect that can be intimidating or unfamiliar. So I hope to shed some light on the general aspects of working with enterprise clients that MediaWiki hackers, extension developers and small business consultants may not be familiar with.

When you contract with a small client, you write up a simple agreement and you get right to work. The enterprise market is different. And by the way, there were similar differences between the retail side and the institutional side of Wall Street for those familiar with Financial Services. A small ticket retail investor might make a trade after a few phone calls. An institutional investor will make a deal after anywhere from 6 months to 3 years of grooming. There is more than one contact and decision maker. When consulting for enterprise clients, there will likely be a contract management and purchasing office. They are separate from the business unit or manager who wants to hire you. After you get some inquiry from a prospective client (the business manager with money to spend), your first order of business is to become an "approved vendor" for that organization. This means signing what's called a "Master Services Agreement" or MSA This might also be called an "Independent Contractor Services Agreement" (ICSA). Under that umbrella, there will also be either a "Statement of Work" (SOW) or Purchase Order (PO). It most likely means getting Insurance if you don't already have it.

Before I get into that, let's just touch on payment terms. As a consultant you probably want to get paid right away whereas the client might have standard terms that say something like net 30 after invoice and invoice only after acceptance. I know I like to get paid immediately with net 14 being "a long time". Unfortunately, payment terms may not be negotiable, depending on how flexible their accounting procedures are. You can and should ask to be clear. The hiring business unit is not going to be concerned with payment terms so it's something that gets addressed with the contracting office. Managing cash flow is important to any size company, so make sure that you address the payment terms and your cash reserves accordingly.

As the name implies, the Master Services Agreement spells out the general conditions under which you will operate as a vendor. It's standard legal boilerplate for all vendors and customizing it will likely not happen. The MSA will say stuff like the enterprise owns all copyright and patents and also that the consultant will warranty the product. These are at odds with the GPL copyleft paradigm, patent covenants, and the general disclaimer on all software that says there is NO warranty. You shouldn't sweat those major differences.

Under the MSA there will be a "Statement of Work" SOW that describes the actual project and further defines the terms of engagement; especially deliverables, timelines, pay rates and specific staffing. The key takeaway from this talk is that you should include language in the SOW that specifically brings up the GPL nature of the project and the disclaimer on warranty. You should make it clear that your work on an extension will actually be MORE valuable and LESS risky to the client if you are allowed to retain copyright (allowing you to release the code as GPL on mediawiki or github). The client will have a non-exclusive, royalty-free, worldwide right to the work product.

For insurance, you might find that the client's MSA asks for all kinds of insurance.

  • Worker's Compensation
  • Employer's Liability
  • General Liability
  • Auto Liability
  • Excess Liability
  • Professional Errors and Omissions
  • Network Security Liability

In discussions with the Contract Management Office, you might point out that Auto Liability doesn't really apply since you have no commercial vehicles and/or will not be traveling in conjunction with the scope of work. Insurance is certainly an area where the client company has some discretion over what they will or won't accept. In one case, I had the client just waive all insurance requirements given that the size of the contract was $30,000. That said, you can get both a General Liability and Professional Liability insurance policy for around $1,000 / year so that's probably something you should have.

One thing that I'd like to see is more MediaWiki consultants working together to share their war stories and experiences. The market is large and largely untapped. A rising tide floats all boats which is to say that when more people are winning with MediaWiki, it propels more enterprise demand. I'm not competing with WikiWorks or HalloWelt, we're all in this together competing against Microsoft and IBM

In closing, I'll offer some advice that I heard once: Don't sweat the small stuff. Make the big stuff small stuff. And don't sweat that either.