In this conversation with Helmut Hummel, the TYPO3 Security Team Lead at the TYPO3 Developer Days 2018, we touch on how contribution, client work, and new feature development go hand-in-hand in this open source CMS community.
The TYPO3 community holds a series of specialist events throughout the year, allowing various groups to come together, renew connections and make plans for improvements to the CMS. These events include the User Experience Week, TYPO3 Con, Marketing Sprints, TYPO3 University Day, and more. The TYPO3 Developer Days is an annual developer-oriented event. Held most recently in June in Düsseldorf this event brought developers together with TYPO3 core developers to share and learn technical insights, and talk about the direction of the project.
I had the great pleasure of speaking with Helmut Hummel and captured some of our conversations on camera. Helmut is the TYPO3 CMS Security Team Lead, a TYPO3 Core Team developer, and freelance software architect, consultant, and developer. In Düsseldorf, he gave a talk about his passion for automation, presenting a Composer-distribution of TYPO3 and how it helps optimize development workflow, “Create Your perfect TYPO3 Distribution”.
“Creating websites since forever, using and improving TYPO3 since version 3.8. My motto: if I use software that is open source and I'm capable of improving it, I'll do so.”
Helmut shared a story that gets to the heart of what I think of as doing Open Source right. “Right” in this case means building contribution into how things get done, delivering new features for a client, and ensuring a better CMS with a sustainable future for everyone.
Helmut explains: “I was asked to work for a big agency, which also does TYPO3 projects. And one part of my work was implementing a customer request. The customer wanted to be able to define custom crop areas for images,” not just a single, universal crop area, “but in mobile, I have different areas that should be shown and on desktop other areas.” So he was asked to extend TYPO3’s core image editing functionality, giving editors even more flexibility and control over responsive pages and images. “This customer needed to define different areas for different device sizes. They also wanted the UX, the user experience, for this tool to be improved.”
“The agency designer made a first draft of the UI and then they asked me if I am willing to implement that. Another employee of this agency did a lot of conceptual, technical work, which I used, combining the technical concept and the design to actually implement this for the customer.”
“From the beginning of this project, the goal was not only to implement a tool for them, but to get it back into TYPO3 itself.”
TYPO3 CMS follows semantic versioning and new features can be added during major release cycles. This new feature was implemented and tested in Sprint Releases starting with version 8.1 and was merged—made a fully-fledged part of the CMS—in TYPO3 8.7.
“What I find really nice with this project was both the agency and the customer understood that they needed something and it would be beneficial to have it back into the main product.” Contributing features back into the main project enables further improvement and to some extent outsources the risk of maintaining proprietary software.
“It took a very long time to implement that and I tried to implement it as carefully as possible … once it was merged into the core, many people looked at it.” As Linus’s Law posits “Given enough eyeballs, all bugs are shallow”. Helmut continued, “So it was exactly like that. It was merged and people looked at it,” and had plenty of suggestions to improve the feature. “I tried to help out as quickly as possible, but also other people just handed in pull-requests,” functional improvements ready to be merged into the project, “and in the end, the product won and the customer won as well because they didn’t have to pay for all the extra work and bug fixes done by the community.”
“In the end, the product won and the customer won.”
Helmut got paid to improve the tool that everyone’s using and because everyone involved recognized that that was useful, they made their own contributions as well, furthering and multiplying everyone’s efforts. There are still some rough edges that need improvement, but the community is coming through there, too. “We focused, in this project, on the backend editing part, but there’s still a missing piece for the frontend rendering. We left that out … But tooling around that has already appeared as well. There’s a great extension which helps you use the information and have perfect responsive image rendering out of that.”
When I asked Helmut what people should know about TYPO3 CMS that they probably don’t know, he turned on its head: “What most people think about TYPO3 because of its age, is that the code is very dated.” TYPO3 was created in 1997 and open sourced in 2001. “But in fact, we put a lot of effort into modernizing it. Currently, we’re even making the effort to split this big blob of THIS-IS-THE-TYPO3-CMS into smaller, nice ‘lego’ pieces, so you can say, ‘I only need this piece and that piece,’ so we’re modernizing it,” making it more modular, the core follows many PHP-FIG PSR standards, requires PHP7 … “We re-use widely-used components like Symfony, Symfony Console, and we are going to extend that to make TYPO3 part of the bigger PHP community and trying to contribute back to the whole PHP ecosystem.”
TYPO3 continues to modernize and improve user experience, directly through supported contributions. It’s a long-term investment that is great for the technology, great for the business, and great for the open source community.