How UML is Actually Used (if it is Used)

When I started our software architecture course about eight years ago, I was happy to find out about a book series on the architecture of open source applications. I was thrilled: Not only code, but architecture descriptions! I expected great material for my course. Sadly, I had to realize that none of the chapters in this book series used UML, a staple of most academic software architecture courses.

Does this mean UML is not used in practice? Of course not. It is just not used in open source projects. This doesn’t imply that UML doesn’t have its uses. However, they may not be what tool vendors are telling you.

Continue reading “How UML is Actually Used (if it is Used)”

Amazon’s Announcement About Corretto and Java’s Future

Ever since Oracle got their hands on Java (by way of acquiring Sun Microsystems), it has worked hard on making money of it. As far as I can tell, it has been as unsuccessful at this as the prior owner, Sun. Compared to Sun, Oracle upped the ante by way of suing Google over Dalvik, making it harder to get JDK certification, etc. The main lever Oracle has is the ownership of the Java trademark.

Like many I assumed that Java is dying a slow death now, eventually to be replaced by the next successful initiative. Scala, Go, and others are attempts at that, though (not yet) successful ones.

Continue reading “Amazon’s Announcement About Corretto and Java’s Future”

Cargo Cult Startup Incubators

The continued creation of me-too startup incubators reminds me of the (South Seas’) cargo cult. Richard Feynman tells the story this way: The cargo cult people were natives of the South Seas who, during the world war, benefited from Western civilizations bringing cargo to their land. After the war ended, and the cargo stopped coming, the natives built wooden artifacts that looked like planes in an attempt to bring back the good old days of free supplies. Obviously, it didn’t work.

Continue reading “Cargo Cult Startup Incubators”

Internal Component Marketplaces vs. Transfer Pricing of Inner Source

I was recently asked why I argue against company-internal marketplaces for software components yet emphasize the need for pricing components that cross company boundaries within the same holding company (also known as transfer pricing). The answer is simple: Setting up an internal marketplace is a managerial choice and pricing the movement of code (IP) across company boundaries is a taxable event that you need to deal with: It is not a choice.

Let me take it in steps.

Continue reading “Internal Component Marketplaces vs. Transfer Pricing of Inner Source”

On The State of Using vs. Contributing to Open Source

Digital Ocean just published a survey of developers that indicates how companies are getting more comfortable with using open source, but remain much less comfortable with contributing to open source. Matt Asay and Chris Aniszczyk picked up on this, suggesting that open source will become more sustainable if we get those contribution numbers up. What is it that is keeping companies from letting their developers contribute?

Here is a representative experience from some recent consulting activity of mine. I asked:

So what about your open source policy?

The first manager answered:

Uh, I don’t think we have one.

The second manager:

Not true, our policy is not to do it.

The third one, somewhat puzzled:

Uhm, what about this Eclipse plug-in we are developing?

Continue reading “On The State of Using vs. Contributing to Open Source”

Data Structures vs. Functions in the Age of Microservices

The old wisdom of “data structures over functions” has stood the test of time for probably 50 years now. It states that long-term, a system is better built on sound data structures than functions. While functions may hide clumsy data structures for a while, when faced with evolution and new user needs, poor data structures will come back to haunt you and will eventually bring down the system.

Continue reading “Data Structures vs. Functions in the Age of Microservices”

Open Source License Compliance in Free Mobile Apps

Open source license compliance is not for the faint of heart. Among many things, a company needs to tell the recipients of a distribution which open source software is used in their products. In the case of mobile apps, free or not, the user is the recipient and the app is the distribution. Downloading an app from the app store makes me a user. Lets see what we can learn about open source using an example app.

The following four screenshots show how I made my way from finding an app through installing and starting it. I could not find any information about the distributed open source code along the way.

Continue reading “Open Source License Compliance in Free Mobile Apps”