THEME SOFTWARE ENGINEERING
CRACKING THE CODE TO CRAFTSMANSHIP
With the growing reliance on software in an increasingly high-tech world, it’s more important than ever to master the art of software engineering. Trainers Robert Deckers and Bart Vanderbeke have taken it upon themselves to turn developers into craftsmen. Nieke Roos
“A
colleague once told me about one of his former project managers, who, upon realizing that the estimates didn’t align with his timeline, just cut them in half to make them fit. I find it unheard of, not only that you’d do such a thing as a project manager but also that people stand for that kind of behavior. You don’t have to scold him, but you can open your mouth. Instead, at the end of the project, when everything has gone haywire, everyone complains about how this has happened to them.” Inspired by Google executive Fred Kofman and his book “Conscious business,” Bart Vanderbeke calls on software engineers to stop playing the victim. “It’s unacceptable and unhealthy,” he claims. “You’re the craftsman. When someone tells you that you need to do something in half the time, or skip the design, or refrain from reviews, you say no – constructively. Software engineers are scarce, so you’re in a comfort-
“The real complexity is in the non-functional” able position, certainly no position to self-victimize. Don’t hide behind ‘management.’ As a software craftsman, using a term coined by Kofman, you’re ‘unconditionally responsible’ for everything you do or don’t do.” 36
4
At NXP in Leuven, Vanderbeke leads a team of fifteen software engineers, working on 2.5 GHz radio applications for personal health – think hearing aids, headphones and earplugs. “Tiny systems containing tiny software stacks,” he notes. “But even if you have a codebase of 100k or 200k, like us, software craftsmanship is of paramount importance. Building the hardware takes about a year, followed by maybe five years of software enhancement. I’ve developed a series of lectures to help my colleagues bring out their inner craftsman.”
The non-functional
A kindred spirit, Robert Deckers, too, aims to increase software craftsmanship, but with a focus on architecture – “the most difficult trick of the trade,” as he calls it. “It already starts with the question: what is software architecture? You can find hundreds of books that try to give an answer. While some are bad, terrible even, most of them are meaningful, but they all tell a different story.” This was one of two triggers that led him to dive into the subject, develop his own view, write his own book and bestow his insights upon others. The second trigger was the realization that in traditional methodologies, there’s too much focus on the functional requirements, whereas the non-functionals are the hardest to get to grips with and therefore take up the most time. “Way back when I was an OOTI trainee at Eindhoven University of Tech-
Descending down the management funnel, the focus narrows and the risk for conflict grows.
nology, I was the software architect for a copier,” reminisces Deckers. “After two months of design, the anomalous system behavior started to rear its ugly head and I realized that we had to do error handling as well – while obvious to someone with 20 years of experience, it hadn’t crossed my newbie mind. When we were finished, to my big surprise, no less than 85 percent of all our code