Clean code development is only my starting point…
Clean code is great to avoid painting yourself into a corner during coding. I’m all for it. But even meticulously following conventions for good names, bowing to the SOLID principles and a strong will to classical TDD can keep you only so much on a productive path. It’s all just aspects of a bigger picture.
Hence my approach to high longterm productivity goes beyond what’s commonly called “clean code”. And even “Agility” is only a starting point for me. I think to truly reap the benefits of these paradigms you have to transcend them. Let’s forget about all the buzzwords and look to first principles and at what’s to be achieved.
What I’m offering is what I’ve learned in decades of coding and reflecting on coding and working with developers in the trenches all over the world.
My promise to you: I’m only teaching what I’m convinced of from my own experience. I’m teaching what I myself am doing (or would do). Details about the technical aspects of my approach can be found 🌐in my books.
To achieve high longterm productivity the whole software development process has to be geared towards it. It’s not sufficient to just code in some clean way.
Sustainability is a matter of mindset. It needs all hands on deck all the time from developer to management.
That is why I take into account the whole transformation process from requirements analysis to feedback. Within that, clean code principles and practices are part of just one phase: implementation.
There is no lack of principles, paradigms, practices, heuristics and tools to develop software in general or write clean code in particular. The literature is overflowing with recommendations.
What is missing, though, in my view is a method, i.e. a guideline as to how to start, what to do next, how to continue, when to finish.
That’s what I dare to provide, though: a systematic path through the chaos that software development more often than not can be.
Consistent language, tangible action items, parts which really make up a whole: that’s what characterizes my “clean code framework”.
Sustainable software development is a team effort from start to finish. That means, everyone has to be on the same page regarding ideas, mental models, solution approaches, roles etc. But how can that be achieved?
To me the core technique is visualization. Putting thoughts on paper, giving them a shape, getting them out of single minds in front of all team members boosts productivity and increases quality.
Consistent and systematic visualization is a game changer. But we have to overcome the UML legacy.
Learning the skills necessary for high longterm productivity is not so much a matter of finding resources, even free or cheap ones. Google, Amazon, Udemy, Plurasight are all happy to help.
No, the true problem of learning is being able to ask questions, getting feedback, being challenged, and not being left off the hook. The more so since sustainable software development is about a mindset and habits which unfortunately often is felt to be in contradiction with business needs.
That’s why I think personal interaction is so important when a team decides to start down this path: interaction between team members as well as interaction with a guide through the maze of all the principles and practices.