La parole est aux speakers : Noback Matthias

Publié le

Jusqu’au Forum PHP 2024, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

Les conférences

Welcome to the Age of Static Analysis and Automated Refactoring

Programmers live a dangerous life. It's so easy to make mistakes and mess things up, so we like to limit the scope of our changes. There may be large parts of a code base that we don't dare to touch at all. It makes us somewhat conservative when it comes to large upgrades or refactorings.

If only we could have a tool that has our back when we make changes that influence remote parts of a code base, or that can even make those changes for us. One that tells us about mistakes immediately after we make them. And maybe even one that fixes our problems, without the risk of making a mistake.

Actually, since a few years such tools exist. In this talk, I'll explain why you should use them, what its use cases are, and what amazing things are to be expected from them in the near future.

Ballroom Hopper / HJK
11/10/2024
10:30-11:10
How to Eliminate Waste in your Development Process

It looks like we're productive when we sit behind the keyboard and type code all day, joining the occasional meeting to shuffle some post-its. But somewhere in the process we are wasting a lot of time and energy, because it still feels like we're slow to deliver. We drag unfinished tasks from sprint to sprint, we keep increasing the number of "story points", we hide stakeholder value in branches that are "almost ready to be merged", we are fixing merge conflicts on a daily basis, and have a pipeline that tends to fail after 30 minutes.

If you feel like giving up already, hang on! There's a set of practices that will bring back some light in the lives of developers. I'm thinking Mob Programming, Mikado Method, Continuous Delivery, TDD. Let's see how they fit together and how they can prevent a lot of waste in all of our software development processes.

Ballroom Hopper / HJK
10/10/2024
15:40-16:20

With a langage that changes a lot like PHP, what’s the importance of static analysis in the ecosystem?

PHP is a dynamically typed language, and through the years we have experienced what this means: it’s easy to learn the language, to play with it, and be productive. But in the long term it becomes a problem; without a type system, we’ll always be wondering: what type of value is in this variable? Can I use it to call that function? Lots of errors have been accidentally introduced in code bases everywhere because a type-related mistake was made. In recent years, PHP has continuously evolved to be more strict about types, and to offer the programmer more options if they want. But there’s a limit to that. PHP will never have a full-blown strict type system, including support for – say – generics, because it will make the runtime too slow. It’s also not what we need: most type checks are just « too much » at runtime; just by inspecting (parsing) the code, we can be certain that a given variable is always of a certain type. This is what static analysis offers us, and it will help us evolve the quality of our work far beyond what PHP itself can ever offer. Of course, things will become even more interesting when we also look at automated refactoring, which is based on static analysis. I’ll make sure to cover this fascinating topic in my talk of course.

With your experience as a consultant, what’s the biggest time waister in our developpement process?

There are a lot of things that come to mind, which I’ll address at the conference, but a lot of it is related to a lack of an empirical approach, as I’d like to call it. As an example: I see programmers write a lot of code without running it. It’s very strange, they are just trying things, adding lines that may or may not be needed, introduce classes, controllers, configuration, while « running the code in their head ». Of course, when they finally run the software, the code lacks some important parts, the code is broken, or equally bad: the code was not needed after all, or is dead code. Now there’s expensive debugging and rework needed to push through and finally finish the task. A huge waste of time. If only the programmer would have worked in smaller steps, with pre-defined outcomes, and of course, using a test-first approach… This kind of waste is also visible in larger refactoring projects, where programmers keep making changes for months until finallly something can be merged, after which it *always* turns out things are missing, broken, unused, untested. It’s incredibly sad, while it’s easy to prevent (I’ll give away the solution in my talk!).

You’ve written numerous books, given a lots of talks alongside your day job. Do you have any tips on how to be that productive?

In the beginning, time pressure did the trick: my first book was written during the evenings, and needed to be highly focused. I was able to collect ideas during the day job, and could quickly write them down later. I also blogged regularly about Symfony-related tips. This was « accidental marketing » and worked out well. My later books actually took a lot more time to write, and I did this mostly between consultancy jobs. Again, it felt like very precious time that needed to be spent well because there was no income to cover it. A book may or may not sell well, after all. When I work on projects with limited time available, I use a Time-Timer, often set for 20 minutes. I define small goals, and an approach for reaching them. If it didn’t work in 20 minutes, I evaluate, often trying a different approach in the next round. I’m not sure if this is a recipe for productivity that works for others though, but it works for me at least.

Une conférence présentée par

Matthias NOBACK
Matthias NOBACK
Matthias Noback is a professional web developer since 2003. He lives in Zeist, The Netherlands, with his girlfriend, son, and daughter. Matthias has his own web development, training and consultancy company called Noback's Office. He has a strong focus on backend development and architecture, always looking for better ways to design software. Since 2011 he's been blogging about all sorts of programming-related topics on matthiasnoback.nl. He's published several programming books as well, like the "Object Design Style Guide", "Rector - The Power of Automated Refactoring", and "Recipes for Decoupling".

Autres intervenants