Interview with André Rømcke, Lead Engineer for eZ Publish CMS

By Ivo Lukač -

In the second interview here on Netgen Blog our guest is André Rømcke. He is the Lead Engineer for eZ Publish CMS and one of the main people behind the new verison 5.

"eZ Publish 4.x is maybe the open source CMS out there with most features, so we might never have the same feature set in the core of 5.x as it represents a slight change of focus from quantity to quality" - AR

By the way check the first interview with Aleksandar Farstad here.

NG: Hello André and welcome to our blog. Lets start with the time when you first joined eZ Systems. How did you end up in eZ and what was your first role?

AR: I joined eZ Systems as a consultant in the summer of 2006 after having used eZ Publish for a year for several websites related to my student union and some private freelance projects. I did not have much prior experience with PHP, but I had plenty with html, css, javascript (and ASP[.Net]), which was a combination eZ did not have that many fluent people in.

NG: From your short bio we can see that you are a bachelor in economics. What brought you to finish economics and work in IT? Do you think the combination gives you some edge?

AR: Since the age of 14-15 I have always had an deep interest in web technologies, back then checking out the source code of for instance 3dfx website to steal some of their "dhtml"* effects for my own private websites. Over some years I lost interest, but before and during my studies this hobby was taking more and more of my spare time and interest again, leading me to start my own individual enterprise and eventually to stop studying after 3 years and come work for eZ.
I think the combination can be very interesting, as it makes it possible to see both technical, business and market needs. These needs map to what is referred to as the technology, business and customer perspective in classic software project management teachings, which is IMHO just as important today with Agile development methodologies like Scrum and Kanban, the two variants we have deployed internally.
(* fast forward to 2006 and this was referred to as "ajax")

NG: You are currently the Lead Engineer for eZ Publish. How do you fit in the eZ Engineering team and what are your responsibilities?

AR: I fit in the sense that I have, in the past, been highly involved in certain key aspects of eZ Publish like Online Editor, eZXML, eZINI, ezjscore, (..), pushed the envelope on performance and been involved in Public API efforts since the beginning in early 2011. In my consulting background I was also doing project management which is now the case with my role as Scrum/Kanban master & technical project / release manager within Engineering. And on top of that my background has made me usually quite pragmatic, preferring KISS solutions, witch sometimes simplifies problems solving in the team a bit. But as am I luckily working with quite a lot of skilled co workers, I have over the years learnt a lot surrounding OOP and design patterns leading me to prefer de coupled object oriented clean code. So for me KISS does not mean cutting corners and write bad code, it simply means fully understanding out what the problem is without over complicating it, then solving just that problem and nothing more.

NG: Your community profile on share.ez.no shows quite a lot of engagement. How do you find time for helping people on forums, etc? Do you feel it is part of your job or you do it completely in your free time?

AR: For quite a while I did both, I felt it was somewhat part of my job, and did it as well as quite some development in my spare time. Nowadays I'm not as active, there are several reasons for that. Those worth mentioning are: #1 being that I think I can contribute much more in my role by making sure our 5.x product is as rock solid and documented as possible, #2 change our innovation process to become transparent and open. And #3 I was about to go crazy because of lack of a proper FAQ in the community :) These are some of the things we are currently working on, so within the next months I hope we can open up JIRA and Confluence for a fully open innovation process that includes everyone and allows everyone to contribute in every step of the process. But it involves lots of changes, so it has taken quite some time and will continue to take even more before everything is in place.

NG: As an economics bachelor how do you see the dual nature of eZ Ecosystem: from eZ Systems as a company to eZ community and the open source model?

AR: I see it as a symbiosis where both sides benefit from the other, if done right. In my view the API should be exactly the same so that extensions written for community project work on the enterprise edition as well as the other way around, this implies a common API versioning. Both variants can then bundle different set of extensions/bundles which makes them differ in branding and feature set. This was not possible with 4.x as there was no single public api, just a whole lot of different low level api's spread all over the kernel as well as in extensions.
IMHO if both sides agree that enterprise level features belong to the enterprise edition, then both sides will win. eZ Systems in that they can have a model that is proven, a large talent and potential customer pool in a vibrant community, and noticeable market presence thanks to the community version. Community benefits in that they continue to have a company which puts considerable efforts into moving the project forward and wanting to improve it in all aspects, and a company that creates a market for them to do business in, both as consulting as well as eZ Market solutions. This is already the case, but with 5.x it is now technically possible for eZ Systems to offer advance scalability solutions and for instance Oracle driver as enterprise feature, without affecting the extensions and websites written on top of the cms.  Such solutions can also be written by partners and be placed on eZ Market, providing interesting features not offered by eZ.

NG: eZ Publish 5 will be released by the end of the year. How are things going in that respect? What are your current priorities regarding the release?

AR: Things are going good, we have clear aims now in what we would like to deliver, and I think it is feasible. First up is an Alpha at the end of August, it will contain a first look at eZ Publish 5.x with a snapshot of our current progress on getting demo design working on top of Public API and Symfony stack. Hopefully with confluence containing some initial documentation on how to extend the system and build FieldTypes.  The Alpha should also contain most of the "legacy fallback" features we have talked about in the past, making it possible to run existing 4.x site smoothly on 5.x. A month later we will release a Beta, and it should be future complete, which means all field types (data types) needed by demo design should work, and so should REST API v2 which is the other main priority of 5.0. By this time we would have hopefully finished our internal projects needed to make JIRA and Confluence fully open, which would then mark the introduction of an open innovation process.

NG: Recently eZ announced that eZ Publish 5 will rely a lot on Symfony 2 PHP framework. Can you tell us a bit more on what were the main reasons to go in that direction? What parts of the Symfony framework will be heavily used by the new kernel?

AR: The discussions about using other frameworks have always been present, but after eZ Components was moved to Apache, and lost it's pace there, it opened the door in a much bigger degree to instead take a best of breed approach. And after selecting Twig for template engine back in February, it became much more easy to also take Symfony for it's controller, view, routing and form handling instead of spending efforts on making something from scratch or updating ezcMVCTools to be able to natively handle hierarchical views. Hierarchical views being one of the many things we wanted in the new stack to reduce code duplication. You can think of it as a system native version of eZ Publish 4.x's {node_view_gui()}.So as mentioned, Symfony is currently used as the web stack, the model is provided by Public API. We might end up using some of it in Public API as well, for instance ServiceContainer, but from my perspective I want to avoid deep coupling as much as possible and unfortunately use of the Symfony2 ServiceContainer currently encourages exactly that. Deep coupling is wrong for several reasons, two reasons for making sure we abstract dependencies being: #1 it makes testing harder as it will depend on the external project, and #2 I see Public API as having a longer life span then what Symfony2[/<Insert any framework>] will most likely have.

NG: The version 5 release will bring the new major release, but it will not replace the old version fully (old version will be bundled in for backwards compatibility anyway). When do you think  version 5 will have almost all features that version 4 has now?

AR: eZ Publish 4.x is maybe the open source CMS out there with most features, so we might never have the same feature set in the core of 5.x as it represents a slight change of focus from quantity to quality. One the same page, my views on the open innovation process is that it should be unified for all features being developed for eZ Publish 5.x, hence that we in the future can make sure all new features go through a process of requirements collection-, design- and implementation-phase that everyone can contribute on. This in turn will increase quality in what we deliver, and for those features we don't prioritize to deliver, there is, as before, a golden chance for community or eZ Market partners to fill the gap with extensions.

NG: Where do you see the eZ Ecosystem (eZ Systems, eZ Publish, eZ Community) in 5 years? Do you see yourself as an important part of it?

AR: Difficult question, but I think if we manage to all agree on a vision for eZ Publish 5.x and get everyone on board of a unified open innovation process, which includes everyone, then I think we can potentially accelerate the interest in eZ Publish, both in the open source realm and the enterprise realm a lot. For me 5.x is _the_ possibility to undo mistakes of the past, unlock the potential that many of us feel live in the concept of the eZ Publish content model and gear up for a architecture that can serve us for the next 5-10 years and potentially beyond, if properly maintained and kept up to date with technologies and trends.

NG: How do you spend your time when not dealing with eZ*?

AR: I think I kind of always deal with eZ things, if it is on the top of Huayna Picchu on Machu Picchu, on the beach in Paje, Zanzibar, at the gym, with my folks or out with friends in Oslo or Cologne. I always end up stopping up once in a while and writing down ideas, answering mails or somehow communicating with co workers. It's the pitfall of choosing a carrier within something which also happens to be your personal interest. But indirectly, I think I managed to answer the question there, even if not too verbose ;)

NG: Thank you for your time!

Comments

This site uses cookies. Some of these cookies are essential, while others help us improve your experience by providing insights into how the site is being used. For more detailed information on the cookies we use, please check our Privacy Policy.