Think Build Implement Repeat
London, UK +44 7367 067226
WhatsApp FOLLOW f in X
Python & Django

Assessing an Application You Did Not Build

Last updated:

Five questions

  1. Is it exposed? Permissions, production settings, dependencies
  2. Is it current? Django and Python versions, dependency currency
  3. Is it tested? Not coverage, but whether the important parts are covered
  4. Is it maintainable? Could another developer work on it
  5. What does a typical change cost?
The last question is the commercially important one. An application where a simple change takes three days is expensive regardless of how it scores on anything else.

Security specifically

  • Record-level permissions on every view, list and export
  • Production settings — debug, hosts, cookies, HTTPS
  • Where media files are stored and how they are served
  • Raw SQL, marked-safe output and CSRF exemptions
  • Dependencies with known vulnerabilities

Practical signals

SignalIndicates
Runs locally in a daySetup documented
Deployments repeatableA process exists
Tests passThey are maintained
Migrations consistentEnvironments in step
Settings from the environmentEnvironments separable

What an audit should produce

A prioritised list: urgent, important, cosmetic, with an effort estimate against each. Written so a non-technical owner can decide what to fund.

Not a list of style deviations, which is what many audits produce and which nobody can act on.

When to commission one

  1. Before acquiring a business that depends on it
  2. When taking over from another supplier
  3. When changes take longer than they used to
  4. Before deciding between fixing and rebuilding
  5. After any security incident

Frequently asked questions

How long does an audit take?

Two to five days for a typical business application, depending on size and documentation.

What does it cost?

Usually a few thousand pounds. Against a rebuild decision or an acquisition, it is inexpensive certainty.

Will it find everything?

It will find the significant things. An audit is proportionate, not exhaustive.

Can you audit code you did not write?

That is what an audit is. We do it regularly and give a straight assessment either way.

Keep reading

Inheriting or acquiring a system?

An audit is a few days against a decision you will live with for years. Happy to run one.

Book a free 30-minute call Get a project estimate WhatsApp us

Related services

What we build for problems like this one

Custom Software DevelopmentWeb DevelopmentMachine Learning