9. Challenge Accepted. with Tobias Ouwejan, Lead Architect at SAP

Tobias Ouwejan found his way from a services company to SAP, where he built Spartacus - a Headless frontend for SAP CX (Hybris). This is a great story where you can learn how to build a startup within a huge enterprise. Why Headless is a game changer for eCommerce? How did the eCommerce market change from the software point of view in the recent years? We also discuss future plans and the goals for the Spartacus project to achieve in the upcoming years.

Piotr Karwatka: [00:00:43] Hello everyone. In the Challenge Accepted. series of our podcast, we are presenting you, people who are not afraid of questioning the status quo. In this episode, we are going to talk about shifting the development, partying contending with DSW standards to get ahead of the market.

My guess is Tobias Ouwejan. Thank you for accepting my invitation!

Tobias Ouwejan: It's an honor. And I'm actually looking forward to that.

Piotr Karwatka: Awesome! Maybe, we start with your background. So if you can tell us a little bit more about yourself and to what actually the Spartacus project is,that would be great.

Tobias Ouwejan: [00:01:20] Yeah, sure. So I'm Tobias. I live in the Netherlands with my family and I guess I'm, passionate about software development. And especially from then, it's been a long time. I started totally different,different career. But I, I have been always super excited about front-end technology and this is why I started Spartacus as a few years back. Spartacus is a front end framework. It's all about a decoupled JavaScript, storefront,and what you can use to build your store front for SAP commerce cloud.

Piotr Karwatka: [00:01:52] Perfect. Thank you for this introduction. I'm going to ask you a lot more questions about Spartacus in a moment, but first, let me ask you, how did you career in the software development started.

Tobias Ouwejan: [00:02:08] Actually I started as a graphical designer. And originally this was really about print. I mean, this was like mid-nineties.Print was really big by then. Right. And, I was advocated as a graphic designer. I have two parents who are both artists. I was kind of, I had to go in this direction anyway. It wasn't a choice for me, but then I'm working at these agencies actually started to discover digital, all kinds of digital. My first job was crazy. I worked as a super small company. And whatever our customers wanted us to do, we were doing it. Like we were exploring the early web. We were exploring technologies, like, Macromedia director. I'm not even sure if you know flash.

We were even making games and CD-ROMs, and like 3d animations and 3d graphics, and then tried to put it on the web. And I was very excited. We didn't make a lot of money actually. It was just more about creating fun and cool things. But I think this set for me career pretty well because, I got this kind of, nature to just dive in things and to learn new things and. Being a web developer. I'm still doing that and nothing has changed.

Tobias Ouwejan: [00:03:26] So it took a bit before I moved to a larger corporate and then I was more in the role of architects or PM. And in fact, during that time with agencies, I became a developer, you could say, but it was never my former role. It was more my kind of side projects and customers would just ask me to,to build some, some agency work.

Piotr Karwatka: [00:03:51] That's that's interesting. So, so you started out kind of interactive agency work, right?Being focused on UI graphics, interactions. Like slowly progressing into more development roles. Right. But how did you get to Hybris before Hybris is now SAP commerce cloud, but before it was Hybris, how did you get to e-commerce?

Tobias Ouwejan: [00:04:23] It's definitely different. I mean, it took a bit of time.So at one point in time, I, got a new job at a smaller company and formerly I would become the kind of, project manager for database publishing projects. And this is where I could really, leverage both of my skills from, from the graphical business, understanding what a sprint is and how would you produce something automatically in print. I could leverage my technical skills ‘cause I had done some, some database publishing workflow projects with, XML to book, for example. And I could also leverage my project management skills. But actually,the first project was all about a customer who needed a commerce solution at the end.

And they also needed this, this print automation,but while we're doing this, this, project, and that was basically, it was very,very waterfall at that point in time. But I was building the functional specs with the customer and the commerce piece pops up all the time.

Right. And at the end of the day, doing both, both print automation, and commerce was too expensive for the customer,basically for the project. So, we decided to start with commerce and that's actually where we, where we found, Hybris as a company

Munich at that point in time, we started talking and then we kind of selected this solution, had this platform to build this project, right? So, this was, 2007, I believe 2008 early days.

Piotr Karwatka: [00:05:47] Early days of the platform.

Tobias Ouwejan: [00:05:49] Absolutely. Yeah, I think Hybris was maybe 60 people by then.

PiotrKarwatka: [00:05:53] Wow.actually, okay. You selected for, for the project then you probably managed to work on this project, having some experience, hands-on experience and how you, how you joined the company itself? Hybris?

Tobias Ouwejan: [00:06:08] Yeah. So, I ran a few projects, and then Hybris asked me to join them in 2011 as a consultant. So, it's obviously it was an ecosystem.You had this kind of local team in the Netherlands and they had like the, the,the annual events. And then, so you come across people and I guess I did a few good projects, which wasn't always quite challenging.

Piotr Karwatka: [00:06:34] Awesome.

Tobias Ouwejan: [00:06:36] So the first project was really an interesting one. If you think back, it was at that point in time, there was nothing like a storefront actually, because Hybris was not a platform, it was a framework. So,there was not a standard UI later on, we got this so-called accelerator, which was a kind of a template for the front end. It was not around at that point in time. Also, we were doing B2B, and we did massive customizations to the platform. And we actually deliver this in like free four months. So, it was really fun. Yes.

Yeah, it makes sense. Exactly. So, I think it, this is where, where I've done something right. And that put me on the picture. I guess it's also interesting to note that this, my favorite first project was a complete single based application for this B2B customer. No one was actually asking for that because it was my own pet project, but I was all about, building this very nice experience for the customer. And it was totally different from today. I mean, I'm not even sure if Jason was around for example, but we certainly didn't have an API. Yeah, we're just exposing our HTML and we were done just wrapping the HTML with Javascript.

Piotr Karwatka: [00:07:49] Right. So it was, it was HTML rendered at service side?

Tobias Ouwejan: [00:07:54] No, it was actually clients had renders, so there was also service side. So you had like a full services rendered base, but, as soon as you land at the page, we would download Java script, get the fragments fromthe backend HTML fragments, and would just write them in the DM.

Piotr Karwatka: [00:08:09] Which framework had you used then?

Tobias Ouwejan: [00:08:12] I think it was prototype. As you remember it was around mid 2005 or something. It was pretty popular back then, then jQuery took over.I did some MooTools in between as well, I think. Right?

Piotr Karwatka: [00:08:26] Yeah. So when you joined Hybris, how did your daily job look like? The first projects, what were you doing actually, on a daily basis?  

Tobias Ouwejan: [00:08:39] At that point in time, Hybris consultants would step in for different reasons. So some customers would like you to do some QA of the work being done by partners. That'd be good because Hybris had this partner model where partners would deliver the projects.

Or you would step in as the expert, as, as things become complicated or unknown, right? If there's like new modules in the projects and the partner would not have touched it before I got various reasons. But most assignments that I personally did was all about short assignments basically means, I went to a project maybe for two, three days or two, three weeks. And that's about it. And you help, steering the project too,to a certain direction. And then there was this whole kind of notion of a more formal code reviews, architecture reviews, and all this stuff.

Piotr Karwatka: [00:09:27] Yeah. That's, that's amazing. I guess it was around 2011 or something like this. So, how did the eCommerce market differ from what we have now?

 

Tobias Ouwejan: [00:09:36] Yeah, it's been a lot of change, I would say. I mean, for sure Hybris was a really strong leader. It's gave also, you know, as an employee working there, it was like good vibes, right. A lot of parties, and everything was possible, et cetera. So it's been a really great time. But from a software point of view, it was a monolithic stack, right. which wasn't so much a concern by then, like the notion of not having this deep coupled JavaScript storefronts. For example, for me personally, that was like a bummer. And I didn't like it so much. But there was no one in the market's asking for this,because it's kind of quite normal that you would have to it's this monolithic stack and it was more about, what's the feature. What, what features do you have? And, and do you have all customers, would

Piotr Karwatka: [00:10:23] Sorry for interrupting you, but you had also all sort of those, accelerators, right?

Tobias Ouwejan: [00:10:29] not even in 2011. So, I remember when I joined, there was no storefront and during my interview, we're actually, we're talking about it.So like, the question that was asking me was saying like, do you think we should have something like, like an accelerator? Okay. Without naming it with,I think the name was invented, but, Didn't it took so long before it was there,actually. So I think in the year I started that initiative was started. So soon enough, we would have to accelerate them. This was actually a template approach. It was a template from that and customers like to use it and they've been using it a lot. And it took, it took a bit of time before we realized that the template approach, had a number of disadvantages.

Piotr Karwatka: [00:11:10] Right.

Tobias Ouwejan: [00:11:11] As I said, decoupled storefronts were not around. And if you look back and look at the today market, there's so many changes, right?Like, the monolithic approach is, I mean, although quite a few funders still have that, we all know we should move away from that. And it should decouple,platforms into smaller pieces, which can adapt, change faster.

Piotr Karwatka: [00:11:31] Can you point out some common pain points merchants,agencies were facing, implementing e-commerce stores. You, you already said about templates.

Tobias Ouwejan: [00:11:41] Yeah. And maybe I would love to talk a little bit more about the template. So why is it so difficult if you have this template-based approach? Because what we do currently with Spartacus is one of the responses to this pain point. So, the, the template-based approach has as a really, has an advantage because basically what you deliver is a kind of ready storefront and you can change from there. So, you get it as an open source template and you can start hacking away, right? You're adding features, you're changing features, et cetera, which is great. And it's super nice. It's fun. It's clearly is that while you're amending the template and adding your features inas a, as a project at the same time, the product team is going to improve the templates in parallel. Yeah.

And, at the time, as and there was like a multitude of additional modules and things that would integrate with the template. The templates would not, not, it wasn't only about, extending features or adding features. It was also integrating all those modules from other teams.

And then let's say the project is one year,two years. It will try to upgrade to the new template and that was quite horrible because that's one web application and the temp.

You only have one piece of code that you need to merge. So, this was really difficult. Other challenges? I mean, for sure we had this kind of false, Java based platform. And so, it's an area where agencies wouldn't be comfortable. So, you have this kind of split between what we today would say back on the front end.But at that point, there was like one partner doing the full project. But then had to outsource things to an agency, for example, or try to merge agency work into it. And especially later on, when agencies were building more mature, JavaScript based solutions came more, more and more painful as the Java guys,wouldn't be so comfortable.

And to do this, obviously you have to tightly coupling with the platform. So, you have like one, one stack that you need to develop and deploy. This results in long deployment cycles. I would say, if you want to add a little tiny feature to the front end and the business asks, would that take, you basically need to, go through full development cycle, including QA Gates and all this stuff. And, and at the end you have other challenges, like, scalability challenges with this monolithic uploads and tight coupling. So, more and more issues.

Piotr Karwatka: [00:14:21] Yeah, that's, that's a well said, In the end all those,obstacles lead to huge, you know, business issues. I mean, moving deadlines and over runing budgets and so on and so on. So maybe if we already discussed the challenges, maybe you could, tell us, about the success factors, you know,positive aspects you, you solve for merchants running shops.

Tobias Ouwejan: [00:14:48] Yeah. I mean, the, the DNA of, of Hybris, basically, it was all about extensibility.  And, and this is, this has been key to the success and maybe nowadays you see more and more commodity around commerce, and maybe extensibility isn't, isn't that important anymore? But I think this is definitely the success which we had.

And because basically if we let's say the product wouldn't have a feature. Yeah. That the partner could build that feature. And, Hybris was extensible from every angle. Basically, it was the data model or an integration or the business logic or what have you. So I would definitely say that that was key to the success.

Piotr Karwatka: [00:15:34] Perfect. Perfect. So, the whole ecosystem was working on,on one project's success, right? Because you can find the ready-made module extensions. But if, even if you haven't found it, you always, could have you created your own using extensibility features of the platform.

So, we are getting to the Spartacus project, which is, you know, is the core of our discussion today. So, I already asked you about the challenges, success factors, but maybe let us know more how this idea of this, the couple front-end originated.

Tobias Ouwejan: [00:16:12] Okay. Yeah. I told you that I worked as a consultant,right? And I was, actually I was ending up as a global, and as in a global role in the consulting team and it was driving best practices and we were driving this by doing a lot of innovation projects with consultants around the world. So, we would have nice budgets for consultants to work for maybe five days on like some funky integration. Anything was possible. And we would just ask in return for a write-up in a document and to get repo. So, consultants were also quite amazed with this because they could do really nice things for a few days.And this was really great, a nice time, but, I, I was missing the code myself abit. And I said to my colleague who joined me in that role saying, well, maybe we should do some innovation assaults as well. And this actually where I built the initial prototype of Spartacus and with that, I was trying to address all those pain points we just discussed like, it's about this new UX patterns, like single page application from the start, the ability to add PWA features. Having this decoupled architecture, so you can, scale it separately. You can deploy it separately and then at that point in time, I wasn't even thinking about opensource to be honest, but soon after that, we start moving into the direction of open source and it wasn't like Spartacus became something that's agencies could actually work on directly. And we were starting to make it in such a way that through our library, our set of light dish, rather than a template based application.

Piotr Karwatka: [00:17:53] So totally different approach than the previous accelerator. And also fairly complex, right?

Tobias Ouwejan: [00:17:59] Because you're addressing so many different things.  And if you look at the java script applications, it's, it's almost again a monolith, right? Like this statement,there's not layer, which is kind of your database and you have like modules.And so you're actually addressing soon enough the same problems as 10 years ago.

Piotr Karwatka: [00:18:19] Nice. So, you were working as consultant and you use your R&D time to, do a POC of this, you know, front-end right?

Tobias Ouwejan: [00:18:28] Well, I mean, I was in his global role back then, so I didn't do direct consulting anymore. And it wasn't just my job actually to drive innovation. And, and this was, I guess, two things right. In, the consulting team, you want to share your, your knowledge, but we also were keen to, to provide feedback to the product team. Right. So, I actually had the opportunity to then, do a presentation of Spartacus at our global summit in Barcelona. And this is where, had the product team, asked me to do this one,because they felt definitely that this was the direction for the storefront.

Piotr Karwatka: [00:19:05] Nice. So can I say that you pitched this project, and actually in the end, you know, the, the company, figured out that it's worth investing in? So you move a little bit, your role from professional services into product business, right?

Tobias Ouwejan: [00:19:23] Yeah. Pretty much

Piotr Karwatka: [00:19:23] How was this change for you?

Tobias Ouwejan: [00:19:28] It was great. I mean, I like change! So I'm always excited if something's changing it's because this gives you new opportunities.  I mean, I definitely want to do this because Spartacus what's my baby, right? Yeah. I already gave it away to the product team saying, okay, you can use this as a starting point or you can use it as an inspiration or what have you. And then the park team actually asked me to join as, as an architect and to build up this product. Allright. And so it's your baby, right? So you care about it, then you want to build it out, then you want to, and you also, at the, when I build it, I had like, a lot of dreams about it.

Piotr Karwatka: [00:20:06] Right. And a lot of ideas and so many things

Tobias Ouwejan: [00:20:09] I didn't do because the prototype was just a few weeks of work.

So, there was so much I could think of. I was super excited. And also, I wasn't used to staying in the same company for that long time. And so changing role was quite important for me then. If you are so long in the same company you want to do, another gig every now and then.

(...)