Before anything else, work out what the harness actually has to do. List every input, output and connection it needs to carry. This is the foundation for every step that follows, so it's worth being methodical. The easiest place to miss something is right here.
I like to start with a notebook and pencil while looking at the engine I'm wiring, working through the sensors and actuators in a systematic order so nothing slips through. Some familiarity with the specific engine helps, because most have a couple of traps. A knock sensor tucked under the intake manifold, a vacuum solenoid that controls intake runner flaps and quietly affects torque, factory single-wire sensors that earth through their own body and turn out to be noise-prone — these are the details that are painful to discover after the harness is built. Note what you are not wiring too: delete the emissions hardware you are removing, and skip the redundant factory sensors you have replaced with something better.
Tally inputs and outputs against your ECU
Once the list is complete, total up the inputs and outputs and compare them against your ECU's spec sheet. This is how you confirm the unit can actually do the job before you design around it. Add up the injector drives, ignition drives and analog inputs you need, and check the unit has the capability with a little headroom to spare. EZ Wire keeps the datasheets for many ECUs, PDMs and sensors on hand as you build, so the specs are right there while you work. It is still worth confirming the pinout with the manufacturer, as it can change between revisions of a product and a small difference here is expensive to discover later.
Go one step further and note everything each input or output needs to function, not just the signal wire. An injector needs a switched drive and a 12 volt supply. A pressure sensor needs a regulated 5 volt feed and a sensor ground alongside its analog signal. Capturing these now is what lets you spec a bulkhead connector with the right number of positions later — miss them and you will run out of cavities.
Choose a wire gauge for each circuit
Every wire needs to be a gauge that comfortably carries the current its circuit draws. That choice is also tied to your connector contacts, since a given contact size suits a particular range of wire gauges — so the connector and the conductor really get chosen together. Where a single conductor cannot carry the load on its own, the answer is to run conductors in parallel.
That has a knock-on effect worth catching now: each parallel conductor needs its own position in the connector. A high-current feed might need two or three conductors, and so two or three positions rather than one. Spotting that while you're choosing a connector is easy; discovering it after the connector is populated is not.
Plan breakouts and the CAN bus
Map out the branches and breakouts on the ECU side too — passthrough wiring to the dash, an ethernet link for a laptop, the power-supply interface to your PDM, the CAN connector, and so on. Each of these influences how many positions and branches you need.
The CAN bus deserves particular care. On a complex vehicle there can be a lot of devices sharing one bus — a dash, the ECU, a lambda controller, power-distribution modules, a keypad and more — so plan the route the bus takes through the harness carefully, and account for any terminating resistors it needs. Working this out at the design stage tells you how many positions and branches each device adds before you commit to a connector.