I’m happy to report that the fifth article in the new Open Source Expanded column of IEEE Computer has been published.
How to select open source components
Open Source Software, Licenses, Documentation, Computer Bugs, Software Project Management
Diomidis Spinellis, Athens University of Economy and Business
Computer vol. 52, no. 12 (December 2019), pp. 103-106
Abstract: With millions of open source projects available on forges such as GitHub, it may be difficult to select those that best match your requirements. Examining each project’s product and development process can help you confidently select the open source projects required for your work.
Today I gave my JValue Open Data Service talk at USM (University of Sciences, Malaysia, at Penang). I am grateful for the opportunity and the recording.
Abstract: Open data has the potential to create significant practical value for its users through open innovation. Yet, to realize this value, we need an open ecosystem, next to open data, that allows app developers to create that value. In this talk I present my view of this open ecosystem of open data and how it should be structured. I then present the JValue Open Data Service (ODS), an open source software under development at my research group, that provides a key piece of this ecosystem. The goal of the JValue ODS project is to enable open innovation through app developers.
Self-enlightened contributions to open source projects are (code) contributions that come about because a company chooses to contribute. The opposite is forced open sourcing, which typically happens when a reciprocal license like the GPLv2 forces a company to lay open some source code.
I’m proud to report that we are finally providing our license compliance seminar to the general public: License-compliant Delivery of Software Products That Use Open Source Software (both a seminar and a handbook). Feel free to contact me if you are interested.
Someone on Twitter asked this question and people loved to weigh in. Most answered: “No, just get an old $200 laptop.” While not wrong, this answer misses the point. Coding, here, apparently means reading and writing code. For that, indeed, any cheap computer will do. However, being able to read and write code does not mean you will be able to build and ship systems, which is what customers pay for.
The other day I ran into one of the oldest software engineering tropes in the book: That software engineering should be more like work in a factory, and that developers are best equated to assembly line workers who put together a software product by assembling components to a specification. I wasn’t sure whether I should be amused or irritated. In any case, this nonsensical idea has long been debunked by Peter Naur, before it even took roots in later work by others. In Naur’s words, programming is (best viewed as) theory building, and this gets to the heart of the matter.
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.
Open Source Expanded is the name of a new column (open-ended article series) that I’m editing for IEEE Computer Magazine. Expect a new article on open source and how it is changing the world every two months!
The first article on the innovations of open source was just published, kicking of the column. I could not negotiate an open license, however, all articles will be free to read and download.