Taking over a module left unfinished by another contractor
A half-finished module, a developer who no longer replies, a store that’s waiting: the question isn’t «can you finish it», but «what is actually in this code», and nobody can answer that without reading it.
What I collect before saying anything
I ask for three things: the complete module code as deployed, read access to the store it runs on, and a description of what it was meant to do. The third is nearly always missing, and it is the most useful: without it, you cannot tell deliberate behaviour from a bug. A half-built feature looks a great deal like a broken one.
I then check what was delivered beyond the module folder: class overrides dropped elsewhere, tables added to the database, scheduled jobs on the server, API keys stored somewhere. An unfinished module has usually left pieces outside its own folder, and those are what cause trouble later.
The four points that decide between finishing and rewriting
-
Is the architecture the platform’s own
A module that respects the install lifecycle, the hook points and the platform conventions can be finished. One that writes straight into core tables, bypassing the intended objects, gets rewritten, because every upgrade will call it into question.
-
Is the code readable
Consistent naming, display separated from processing, no blocks copied ten times over. This isn’t about elegance: it decides whether a fix takes an hour or a day.
-
What does it do with data
Unescaped queries, data stored without constraints, no error handling at all: those three signals alone often justify a rewrite, whatever the apparent progress.
-
How much is genuinely done
A module that renders a screen is not a module that works. I test real cases before believing the stated progress.
Finishing sometimes costs more than starting again
It’s counter-intuitive and I still say it regularly: picking up code you didn’t write means first understanding all of it, including the parts you will never touch. On a modest module, that reading time can exceed the time to write a clean version. When that is the case, I say so, with the reasons, and you decide.
Conversely, when the base is sound, taking over is much faster than starting again: the functional choices are made, the specifics of your business are already captured in the code, and what remains is finishing and hardening. I meet both situations, about equally often.
Either way, a takeover ends the same way: a module you could hand to someone else. Complete sources, identified dependencies, a written installation procedure. Precisely what was missing at the start.
Related pages
-
Maintenance and managed support
What must be in place afterwards so a module doesn’t become orphaned again.
-
Auditing a store’s module estate
The full inventory when several builds have followed one another without continuity.
-
What really drives the price of a custom module
Why a takeover isn’t priced like a fresh build.
-
Urgent e-commerce troubleshooting
If the store is blocked in production while the takeover is being organised.
- 2019 e-commerce developer since
- 3 platforms: PrestaShop, WooCommerce, Shopify
- 3 working languages: FR, EN, TR
- 100 % direct contact with the developer
No middleman: the person who replies is the one who works on the code.
Describe your need in one minute
A few targeted questions so I can reply with an estimate rather than another questionnaire.