Alain Schlesser is a software engineer, currently based in Germany. He has been working on different platforms and programming languages for more than 25 years. He is currently working as a Maintainer at WP-CLI, where he uses his best practices to ensure code quality. Besides this, he is a regular WordPress Core Contributor and helps out the WordPress Community in general. For the rest, let’s read from the man himself!
Mansoor: Hi, Alain! It’s been a great experience to have you for this interview with us. Could you please tell us about yourself? How and when did you start your professional career? What you always wanted to be in your life?
Alain: Hi, and thanks for having me!
I’m Alain Schlesser, a software engineer and consultant from Luxembourg and currently living in Germany. I didn’t always earn my income through software development, so let me briefly give you a bit of context on how I ended up in my current line of work.
I’ve been fascinated by computers ever since I first laid my eyes on them. I started very simple development in BASIC at the age of 7 and got my first computer (a Commodore C-64) at the age of 9. As I grew older, I felt that my ideal professional career would be in game development. However, at the time, there was no real industry presence in Luxembourg. From the age of 15 onwards, I earned some money with development work for local businesses, but I never really figured out how to make a proper career out of this. From what I was seeing, most IT work ended up being more tech support than development, and so I relegated software development to being a hobby only.
I ended up becoming a government agent instead and worked for quite some time for the Ministry of Justice in Luxembourg, where I was doing a diverse set of administrative work for a high-security prison. Given my background and skillset, I was nevertheless more and more involved with the IT department of the prison and ended up being the liaison between IT staff and management. In that role, I also still did quite a bit of development work for the sole reason of being the only one around that was available to do it. This is how I worked on Oracle DBs, .NET custom apps, Sharepoint intranets, Java on JBoss, SAP, etc. All the “fun” enterprise technologies you can think of, basically.
I became fed up with the political side of working for the government, though, and ended up resigning to start freelancing instead. As the economy around software development was a different one by then, I was positive that I could now make it work for me as a career path. Game development was too risky for me, though. So, in 2014, I left the government job and started working remotely as a web developer.
Mansoor: You have been working with different platforms and programming languages for the last 25+ years. What are your most favorite platform and language? When did you get to know about WordPress? How was your first experience with it?
Alain: I’m not sure I really have a favorite platform. Every platform I spend an extended amount of time on – like BASIC, C/C++, .NET, PHP – was the most sensical option for me, given the context at that time. I currently appreciate focusing on PHP, as I think the language and ecosystem are much better than its reputation, but I don’t shy away from pivoting onto something new if it happens to make sense.
I learned about WordPress when I switched to freelancing as a web developer in 2014. I did not have any particular preference, so I just went with whatever had the biggest market share, as that meant it should be straightforward to find clients.
My first experience with WordPress was horrible. Despite shaking my head at what I read in the WordPress codex and how wrong it seemed to me, I assumed there was a reason for this madness and applied what the official documentation recommended for my first client project. The project ended up being a nightmare to maintain, and I was ashamed of what I had produced. That was the point where I decided for myself just to ignore any WordPress documentation and tutorials and figure it out on my own instead. I’ve never looked back, and after a while, I even started sharing my “alternative” take on how a WordPress project should be built.
Mansoor: WP-CLI helps developers update their website components using the command-line interface. As a Maintainer at WP-CLI.org, what are the best code practices you would recommend to the WordPress developers?
Alain: I could now go on and on about decoupling your code or thinking in the right paradigms. But my number one recommendation to WordPress developers probably has to be the following: stop reinventing the wheel! Whenever you encounter a problem, you need to solve, assume by default that this problem has already been discussed and solved, both academically and practically. Most of these problems are not new, and you can often find solutions that have been tried and tested for decades already.
So, while it’s very important to think critically and to question the status quo, you should do so from a position of knowledge and expertise, preferably from atop the shoulders of those before you.
Mansoor: A minor mistake can break the entire code of a website. How do you make sure that you never get late when it comes to completing a project? What is the development workflow that helps you work smoothly?
Alain: I’m afraid I have not yet discovered the one magic bullet that lets you reliably meet arbitrary deadlines. I guess the only way you can ensure a project is completed on time is by adapting the definition of “done” when you approach the deadline.
Software construction is notoriously hard to properly estimate, and anything non-trivial includes lots of risks and unknowns. All you can really do is to stick to one constant. This can be either the feature set or the release schedule, but not both. And then one will have to be adapted to the other unless you’re very lucky or you happen to work on a project that is so mature that there are seldom any surprises during development.
So, on a less mature project, decide on a release date, and keep the software is working and tested state at each integration. This way, the “completion” is simply that you’ve reached the release date, and you’ll find out at that moment what the feature set of that release happened to turn out as.
Mansoor: WordPress is growing fast, thanks to its community and core contributors that made it possible to become the number 1 CMS on the Internet. What do you think are the strengths and weaknesses of WordPress?
Alain: I think the number one strength of WordPress is the content creation experience. I’d go even so far as to state that WordPress is not a content management system but rather a content creation system, as the actual “management” part of the term CMS is more of an after-thought for WordPress. Where other CMS’ make you jump through hoops when creating content to ensure that everything you create is semantically structured, WordPress prioritizes the content itself at the detriment of the structure. For most content creators, WordPress is the most intuitive way to publish a website, and during the initial phase of a site, that is the only thing that matters.
However, this lack of structure is probably WordPress’s biggest weakness. As the content does not inherently contain such a semantic structure, it ends up being stored in a representation that encodes a large part of WordPress’s technical debt directly into every single post or page you publish. This makes it nearly impossible to smoothly evolve WordPress to modernize its underpinnings and leads to a situation where “modern” projects like Gutenberg are still paying for the design decisions made during PHP 4 times.
A strong semantic structure would allow you to “migrate” your content from one evolution to the next, as the content itself would stand on its own. Instead, we now have our editor be a React single-page app that persists its state as HTML comments into wp_posts.
Mansoor: As a WordPress Core Contributor, what features do you like to see in the upcoming versions of WordPress? What features can keep WordPress ahead of the competition? How do you see the future of WordPress?
Alain: There is a feature project being worked on right now that I had initially created the proposal for, but ultimately handed over for someone else to own and drive, as I lacked the needed bandwidth to make it succeed: WP Notify. I do think this type of improvement is desperately needed today, as the admin backend has become a scary place plastered with ads and nags.
More generally, I think WordPress needs to have more strict and structured APIs instead of the organically grown procedural hooks we have now. A proper interface leads to a more consistent experience and opens up the code for higher-level optimizations and improvements.
I cannot reason much about the future of WordPress at this current moment, as it seems to me there’s a rebalancing happening now to reposition it on the spectrum between an easy page builder and enterprise-grade CMS. Gutenberg is moving it more towards the simpler end of the spectrum, and while I’m sure this benefits many end users, it leaves me wondering what it means for the overall economic aspect of the ecosystem. Making it less attractive for higher-end projects might slowly drain capital out of the marketplace if we’re not careful.
Mansoor: There are thousands of free and premium WordPress themes and plugins available on the Internet. Would you like to recommend some of them to our readers? What features should they consider before installing a theme or plugin?
Alain: I can’t really recommend any particular plugins, as it fully depends on the needs of the particular project.
I’d like to note, though, that plugins and themes need to be considered a dependency – and thus a liability – for the project. So, while they provide a significant head-start for a development project and are part of what makes WordPress so attractive, it is important to carefully weigh the benefits against their long-term implications.
In that regard, you should only consider plugins that have a long track record of good support and consistent updates. That is still no guarantee, which reduces the probability of betting the success of your project on an extension that is abandoned and broken six months down the road.
For high-traffic sites, it is also important to carefully gauge the quality and scalability of the actual implementations. There’s no easy way to gauge the quality of a given plugin, unfortunately, as most of the “quality” metrics I see being tossed around refer to consistent code style, which is mostly an aesthetic consideration and only has an actual impact on the maintainers of the plugin themselves.
Mansoor: You are also an active member and a speaker in the WordPress Community. What is your favorite topic that you like to present in WordCamps? How do you see the role of WordCamps in the growth of WordPress?
Alain: What I love most to talk about is the higher-level concepts of software construction and how they shape the long-term success of your engineering efforts. I don’t get that many opportunities to do so in the context of WordCamps, as the average WordPress audience tends to be less academic.
Lately, I’ve also been more vocal about mental health as it relates to volunteer contributors, as I see a lot of contributors suffering from burnout and other afflictions.
Mansoor: Before we end our interview, could you please share an image of your workplace for our readers? Thank you once again!
Alain: I’ll have to share an older picture for now, as I haven’t been home for six months now. This picture was taken in 2017 and is the most recent one I found in my online photos.
– Alain Schlesser’s Workstation
Start Creating Web Apps on Managed Cloud Servers NowEasy Web App Deployment for Agencies, Developers and E-Commerce Industry.
Passionate about technology, entrepreneurship, and marketing, Mansoor Ahmed Khan is in computing since he knows how to type on a keyboard. His daily life is rocked by his family, projects, and his screen. Probably in this order, he likes to be convinced at least. You can reach out to him at [email protected]