The Commercial Open Source Pledge

I’m pretty frustrated by some of the discussion around the recent relicensing decisions by commercial open source companies. A fair bit of it seems confused to me, and I think this is mostly due to commentators not understanding the purpose of community for the vendor. So I decided to write a hypothetical pledge for venture-capital backed companies that those can adopt to be clear about their intentions. Then, future behavior doesn’t come as a surprise. Non VC-backed companies may want to tone down the return-on-investment verbiage. With that:

Continue reading “The Commercial Open Source Pledge”

Market Segmentation in the Open Core Model

Life is exciting in commercial open source land. On Tuesday this week, another commercial open source vendor relicensed its product while at the same time disavowing the open core model, which they call a tiered approach to their business. This disavowel piqued my interest, not because the open core model is good or bad, but because the argument seemed confused to me and illustrates how important it is to understand your users and the resulting market segmentation.

Continue reading “Market Segmentation in the Open Core Model”

Agile Methods and the Magic Triangle

In software engineering, the magic triangle is a well-known concept to illustrate the relationship between scope, time, and cost of a software development project. Of the three (scope, time, cost), pick two, and the third will magically follow. (It is determined by the other two.) Scope means features (or delivered functionality), time means duration or deadline, and cost typically means number of developers or, more abstractly, available labor.

Continue reading “Agile Methods and the Magic Triangle”

Position Statement on the Use of ML / KI Techniques in Software Engineering For the adesso Hochschulbeirat

I just submitted the following short position statement on how to work with ML / KI techniques in software engineering. This is a statement on using such techniques for the engineering of software, not in the software itself, which is a (not completely, but mostly) separate issue.

ML / KI techniques can be use in software development to assist the human engineer. Properly applied, they can make engineers more productive by helping them focus on understanding and solving the human problem behind the software to be developed (essential complexity) and by freeing them from getting distracted by technical implementation details (accidental complexity).

Continue reading “Position Statement on the Use of ML / KI Techniques in Software Engineering For the adesso Hochschulbeirat”

From the Bag of Commercial Open Source Tricks: Paying for the Upgrade

On a recent trip to Montreal, I reconnected with Marc Laporte, leader of the WikiSuite project and an old friend and fellow wiki enthusiast. Naturally, we talked about open source business strategies and he pointed me to one way of how commercial open source companies make money: They don’t provide you with a free upgrade path from one version to the next; you only get an upgrade if you pay.

Continue reading “From the Bag of Commercial Open Source Tricks: Paying for the Upgrade”

How to Convince Your Management of the Need for an Open Source Program Office

Here is the simplest eye-opener that I have found in my consulting practice to convince management of the need for an open source program office:

Ask your manager to look at the open source license section under legal notices on their mobile phone. Ask them to scroll down to the end (they’ll never finish). Then point out that your product needs the same but doesn’t have it yet (if it doesn’t).

The reasoning behind this recommendation is that many managers simply don’t understand the extent to which open source is in their products. There is no better demonstration than to show them using a device they use frequently.

Time to Curb Your Open Source Wording

I view open source mostly from an economic perspective. From this point of view, some of the words people use are curious. For example, people like to talk about “giving back” to the community or “donating a project” to the public. These idioms have community building power, like insider speak among those who speak it, but to non-insiders, they are mostly confusing.

I feel pretty certain that these idioms slowed down the growth and adoption of open source. So let me use the two I just picked as an example and translate them.

Continue reading “Time to Curb Your Open Source Wording”

How Software Engineering Teaching and the Legal Department Collide

Any non-trivial university has a legal department, often several (at least one for matters of teaching and one for matters of fundraising). The legal department concerned with teaching has to protect the university from lawsuits by students. By extension, this department protects students from professors who ask too much of them. Often, there may be good reasons for this. Sometimes it gets in the way of effective teaching.

Continue reading “How Software Engineering Teaching and the Legal Department Collide”

Inverted Research Funding

Most people believe that scientists first perform basic (“fundamental”) research and then perform applied research. Basic research delivers the fundamental insights that then get detailed and refined as they hit reality in applied research. Along with this comes the request that basic research funding should be provided by the country (because few companies would ever pay for it) before industry kicks in and supports applied research. Nothing could be further from the situation in my engineering process research.

Continue reading “Inverted Research Funding”