2021: ManoMano IT Odyssey - Part I

Laurent BRISSE
ManoMano Tech team
Published in
6 min readOct 19, 2020

“Our ambition is to truly transform the way we do e-commerce in our industry. To do so, we must have the best tech teams in Europe. Our pro-European company is the ideal place for tech talents to imagine the new face of e-commerce and to enjoy daily challenges,” explain Philippe de Chanville and Christian Raisson, Founders of ManoMano.”

From the birth of Manomano in 2013, our IT ecosystem has evolved from a monolith developed from scratch by a handful of talented developers to a distributed system interconnecting in-house development and SaaS solutions. If today you ask someone in ManoMano about a current piece of code, it seems that a couple of decades have passed since its writing: it’s all moving so fast… That’s why we want to tell you the story of IT’s journey.

We could have begun with “Once upon a time…” but we prefer to use another metaphor based on a cult and futuristic movie from last century (damn, my year of birth!).

So we have named this series of blog posts the “2021 ManoMano IT Odyssey”, by roughly following the movie’s storyline.

Enjoy reading about how our Manas & Manos are enjoying working together to scale up our IT ecosystem in-line with our hypergrowth.

Laurent — Solution Architecture Lead

The Dawn of Man

Shift The Dawn of Man

Hey I’m Antoine, a Software Architect at Manomano. I joined this wonderful company towards the end of 2016, over 4 years ago now. Today, I’m quickly (or not) going to tell you about the evolution path of our IT ecosystem during this time.

Bassin d’Arcachon — France — 2019 — Laurent
Bassin d’Arcachon — France — 2014 — Laurent

By the end of 2016, the marketplace was running thanks to a homemade, well-designed PHP framework.

The code shared the website, the seller space and our back-office, and was built mostly by our former CTO, a few developers and some brilliant interns.

Over time, a lot of functionalities became messy in terms of code quality, some technical debt appeared, dead code, bugs and so on.

However, the business was great! We were a young start up, we raised €13 millions in March 2016, and we wanted to develop our business. To do this, we needed to improve our IT system and marketplace!

In France with such technology (a homemade PHP framework) it would be hard to hire a lot of developers, and without dev, no code, and no code, no new feature, so no future…

We needed at least to switch to a great, notorious technology / framework in order to separate our backoffice, seller space, and marketplace.

Introducing Symfony and the 9 month marketplace migration

Ballade Ecossaise — France — 2020 — Cyril
Ballade Ecossaise — France — 2020 — Cyril

Ohhhh, it was long but fun, not for everyone though…

At this time Manomano was much smaller than today, we were a team of about 80 with a maximum of 10 developers (mostly fullstack) working towards this migration!

All the team was involved in the project as it was such a big one. Of course we still kept some time to fix major issues or bugs from the previous code, but we totally froze our marketplace evolution during this time.

No product evolution, no or almost no new features, a total freeze for the product team! (Yeah they didn’t like it, but they understood why it was necessary).

But this was necessary, the bugs amounted for each new feature and the regression generated were a nightmare.

The aim of this 9 months migration was to release a new marketplace version, similar to the old one, but in PHP7 with Symfony framework in order to clean our legacy code. We wanted to use a fancier framework which would ease our future development and help us hire lots more developers.

The Monolith

Lago di Tormottaz — Italia — 2020 — Laurent
Lago di Tormottaz — Italia — 2020 — Laurent

Overall we can say that this migration was painful for the product team but went quite well.

Lots of our developers were not very experienced with Symfony, and a lot of us improved and acquired new skills. We didn’t do a lot of fancy stuff, we simply used the Symfony component that could be useful, trying to follow the best practices.

We started introducing a general way to code following some concept like SOLID. We also took on something which was never done before — unit and functional testing, along with a static code analyser such as phpstan.

We provided a developer environment with Vagrant to run our stack (we migrated to Docker soon after). We were using Jenkins for our deployments, of course Git as a versioning system, and we started to define Git flow along with guidelines on how to use it.

But it was never perfect due to several delays — most of the functional tests were abandoned or not done, and unit testing became optional. However, we finally made it! We have migrated all of our marketplace to Symfony 3.3 and PHP 7.1.

The code was much clearer, the business classes were separated from models, we added logs, done numerous tests, and the directory organisation was a lot less messy. We identified lots of database tables / columns which had become redundant.

We could clearly identify some domains which were “a bit” isolated from each other.

It was also the time to refine some business rules and to remove the odd exceptions that you create when you launch your product etc.

The switch to a new technology and the company’s growing notoriety have helped us to hire more experienced people who help all of us to become better developers. By the end of the migration, we were around 30 devs.

The rise of the feature teams

Lac de Gentau — France — 2020 — Antoine
Lac de Gentau — France — 2020 — Antoine

The migration was finally done!

After a couple of weeks of bug hunting and fixes, the product team was waiting for us with tons of projects!

Slowly but surely we were increasing our IT resources, so we started organising our department by feature teams.

A feature team was made from a Product Manager (see also: How we (try to) recruit great Product Managers at ManoMano), a backend and a frontend lead dev, and both back and front developers. We started organising the scrum agile methodology with 2 weeksprints.

At first our managers were acting as scrum masters but very soon it became a rotating role inside each feature team.

We will come back to this point with a dedicated post another time!

Towards microservices with architects

Vallée de la Loire — France — 2020 — Laurent
Vallée de la Loire — France — 2020 — Laurent

The end of 2017 was here, with a brand new code base, organisation, new office and a new fundraiser of €60 million!

More and more key IT jobs started to emerge, the DevOps / SRE team started to grow, and several people evolved to a software architect position in order to guide the teams and define the future vision of Manomano tech!

Product managers started to flood feature teams with projects, which was great. But more and more projects shared between feature teams worked on the same code base, our new Monolith, which of course created issues!

The code and database, even if organised and cleaned in a better way, were still very coupled between domains, so when someone would make a change, almost half of the feature teams had to review the code and so on…

We needed to find a way for the teams to work only on their domain in order to be fully independent!

The solution was to start a Microservice architecture.

But this story will be a part of another post!

--

--

Laurent BRISSE
ManoMano Tech team

In ManoMano, I manage a team of solution architects dispatched in 3 locations: Barcelona, Bordeaux and Paris.