Architecture and code organisation
We look at how responsibility is divided between modules, how tightly they are coupled, how much logic is duplicated, and which places are hardest to build on.
Among other things we check
- whether changing one area means touching several seemingly unrelated ones
- where the platform code has been modified beyond what is reasonable
- whether the structure of the solution matches the current sales model
- which parts may stand in the way of updates and further work
Kind of evidenceCode extracts, a map of dependencies between modules and a list of overrides against the platform standard.
Modules, extensions and dependencies
We check where third-party components come from, how current they are and what they do. We assess conflicts, overrides, duplicated functionality and any reliance on solutions that are no longer maintained.
The report separates what is needed, what is redundant and what calls for a decision of its own.
Among other things we check
- which extensions do the same job
- which components no longer have vendor support
- where modules override one another
- how far third-party extension code has been edited in place
Kind of evidenceA dependency list with versions, the change history in the repository and the package manager configuration.
Integrations and data flow
The analysis covers how data moves between the store and ERP, PIM, WMS, CRM, payment providers, carriers and other services.
Among other things we check
- which system owns which data
- the direction and frequency of each synchronisation
- error handling and retries
- event logging
- the risk of duplicated or lost data
- the manual work required after an integration failure
Kind of evidenceConnection configuration, data exchange logs and the procedure followed after a failed synchronisation.
Configuration, access and technical security
We verify the settings that bear on the security of the platform, the roles and permissions, how secrets are stored, how current the components are and how far the environments are exposed.
We do not present a technical audit as a penetration test unless that scope has been agreed separately.
Among other things we check
- who has access to the admin panel, the server and the repository
- where keys and credentials are stored
- whether non-production environments are protected from indexing and outside access
- how current the platform and its components are
Kind of evidencePlatform settings, the list of accounts and roles, and the server configuration as far as it is made available.
Environments and change delivery
We check how the environments are split, how a release is prepared, how configuration changes are handled, whether a release can be rolled back and how a change is verified before it goes live.
The point is to establish whether the team can release repeatably and respond when a new version causes a problem.
Among other things we check
- whether an environment matching production exists
- how a change is published and who does it
- whether a release can be rolled back without restoring a backup
- how configuration changes travel between environments
Kind of evidenceThe release pipeline configuration, the deployment history and a description of the steps still done by hand.
Logs, monitoring and incident handling
We look at which events are recorded, who receives alerts and whether the team has the data it needs to reconstruct what happened during a failure.
Missing diagnostic data usually stretches out a fix, because the problem has to be reproduced first instead of going straight to its source.
Among other things we check
- which events reach the logs and how long they are kept
- whether an integration failure is visible without a customer reporting it
- who receives the alert and how quickly
- whether the team can reach the data an incident analysis needs
Kind of evidenceLog samples, the monitoring configuration and the history of recent incidents.
Tests, documentation and maintainability
We check whether the most important processes are covered by tests, whether the documentation matches the current state of the system, and how much knowledge sits with single individuals.
The assessment also covers whether another team could take the code over.
Among other things we check
- which processes automated tests cover
- whether the documentation describes the current state rather than the original one
- how a new developer gets the project running locally
- which areas only one person knows
Kind of evidenceTest coverage in the repository, the project documentation and the instructions for setting up the environment.