On the relevance of Software Engineering for the development of ML-based software systems

We are studying the emerging discipline of Machine Learning Engineering by investigating best practices for developing software systems that include ML components. In this article, we share the research motivation and approach, some initial results, and an invitation to help us by taking our 7-minute online survey on ML Engineering best practices.

Image for post
Image for post
Photo by Franck V. on Unsplash

Machine Learning is key to the new wave of AI

Artificial Intelligence (AI) is undeniably experiencing a new wave of attention, energy, and sky-high expectations. …

On regulation of algorithms

Image for post
Image for post

And I don’t mean in the obvious way that the adjective “artificial” leads to philosophical thought and debate about the essence of intelligence and therefore the essence of human nature. No news there. Just ask Daniel Dennett, or any philosopher of the mind.

I mean that AI made us think again about the ethics and politics of computerized systems.

Recently, I have noticed several voices call to “regulate algorithms”.

Taken at face value, this phrase makes no sense. An algorithm is a recipe: a sequence of steps to solve a class of problems in a deterministic way. …

An awesome 😎 reading list

Image for post
Image for post
The awesome Livraria Lello in Porto. Photo by Ivo Rainha on Unsplash.

An ever-increasing number of organizations are developing applications that involve machine learning components. The complexity and diversity of these applications calls for software engineering techniques to ensure that they are built in a robust and future-proof manner.

Do traditional software engineering practices apply equally to the development of applications with ML components, or do these practices need to be adapted to cater for particular ML characteristics?

To investigate this question, we have reviewed both scientific literature and popular publications to identify software engineering best practices that are recommended or used by teams that develop machine learning applications.

Awesome literature

Before diving into…

Product development starts with building a product roadmap, I was told. But what is the right way to do that? Here’s what I discovered about product roadmaps when building one.

Image for post
Image for post
Photo by slon_dot_pics from Pexels

I just delivered a Product Roadmap.

I was appointed Chief Product Officer at SIG last September and gathered a small Product team. Mostly first-timers at this game, including myself. Our mission: provide the functional design of a new platform to propel our organisation into a new level of growth.

“Start by building a Product Roadmap”, I was told.

Ok. Can do. But what does that mean exactly?

What kind of stuff needs to go onto a roadmap, actually? How far into the future should it extend? How much detail should it provide? In what form should we cast the content…

Our benchmark of development best practices shows piece-meal improvement

Image for post
Image for post
Following best practices or typing away blindly?

Deployment automation is quickly gaining ground. Backlog grooming is being perfected further. Code quality control and automated testing are improving, but still not fully adopted by most teams. These are just 3 of the lessons we learned from the yearly re-calibration of our development best practices benchmark.

Read on for some interesting stats and what they tell us about where software development is heading. Bonus at the end: a quick self-assessment to benchmark your own team.

What are development best practices?

For over 15 years, my colleagues and I at the Software Improvement Group (SIG) have been in the business…

These hackathon teams prove it can be done

Image for post
Image for post

Last weekend 63 teams gathered in the old Sugar Factory in the Dutch city of Groningen for the world’s largest Blockchain hackathon. Here is what we learned from these teams about writing high-quality code under time pressure.

Quality under pressure?

Anyone can code. There are no formal entry criteria. An inquisitive mind and a laptop is all you need.

But writing quality code can be hard. Each programming problem can be solved in many different ways, some clean and straightforward, many muddled and messy. …

A different code quality philosophy

Image for post
Image for post

Should you measure and control code quality? According to a poll conducted by O’Reilly Media and my colleagues at the Software Improvement Group, virtually all developers say YES! Here’s a number of compelling reasons:

  • Happiness: Better code and happy developers go together. It’s more fun to work on code that is good. In fact, bad code quality and coding practice were identified as the number 3 cause of developer unhappiness. In case developer happiness is not sufficient as an intrinsic reason, think of the increased productivity and retention that will follow.

Some lessons from the world’s largest Blockchain hackathon

Image for post
Image for post
Robin Knaapen of team DC Cicero shows off their 10 out of 10 score on code quality at the worlds largest Blockchain hackathon. Image courtesy of Drenthe College.

Last weekend, the world’s largest Blockchain hackathon took place in The Netherlands. During 54 hours, 350 participants, organised into 55 teams, competed in five tracks, on one grid, and with zero time to lose.

Also, these teams took responsibility for the quality of the code they were hacking together by executing 2000 code quality checks.

Here is how we made those 2000 checks possible, and how we made sure they helped to accelerate the teams.

An appreciative approach to judging

The hackathon organisers decided to take what they call an “appreciative” approach to the judging process. In their words:

we will NOT have a beauty…

Because our society needs solutions that are innovative and sustainable.

I’m not a great programmer; I’m just a good programmer with great habits. — Kent Beck

Quality of code may not guarantee the success of a project, but it can definitively be its main, though invisible, cause of failure. — Mario Fusco

The Blockchain Hackathon

In the second weekend of February, 50 teams will compete in the Dutch Blockchain Hackathon (update: that was 2017, but a second edition of the hackathon will be held April 5–8, 2018, and here’s some lessons from the first-edition). …

Image for post
Image for post

On visibility and navigation by risk and return

If you came here for the silver bullet to get rid of your legacy code base in one painless flash — sorry, that’s not how life works in this universe.

I’m just gonna give you an outline, a template, some abstract guidance. Necessarily so, because situations differ starkly and details matter. And your legacy mountain will not melt away by itself. Anyone promising you a one-size fits-all solution is being naive or disingenuous.

Escape from Legacy Mountain

Recently, Dion Hinchcliffe and I discussed some of the pernicious issues underlying the IT industry’s legacy problems. These include lack of visibility, structural underinvestment, and immature software…

Joost Visser

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store