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.
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. …
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 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.
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…
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…
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. …
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:
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.
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…
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). …
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.
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…