Don't know if this is the "right" way, but there's how I approached it (harnessed, installed, tested, but not yet flying). I took the AEA class and have some industrial wiring experience, but nothing beyond that.
Start by figuring out the general shape of your harness. I decided:
1) I'd have one central trunk that ran along the bottom of the subpanel
2) Branches would loop up from that to each of the components on the panel. That way, the connectors would dangle down below the panel if I ever needed to work on them in the plane.
3) I'd have small bundles (basically just headset and USB power) that went out the left and right side of my main trunk.
4) I'd have two big bundles that went down right from the center of the trunk to everything aft -- one for stuff that would split and go to the wings, one would go back to the flaps and everything aft of that.
With that general design in mind, I taped a 1" PVC pipe to represent my main trunk on to the subpanel, and then marked off 1" increments from left to right on that. I used a flexible tape measure to then measure how long the branch to each component would be, and recorded the length and what increment on the main trunk that was. Then I could lay that out on my board in tape. I actually did this all from a mockup of the panel (I hadn't even gotten my fuselage kit yet), so was a little nervous about wire lengths, but I had one wire in the entire plane that was too short and needed to be spliced (and that was because I reversed the locations of the trim servo and the magnetometer in my head).
I started by doing the CAN bus for all components, and then just picked one connector and started running every wire out from there -- powers, grounds, signals, etc. Repeat for each connector and you have the whole harness run, then it's just a matter of terminating the connectors, lacing and installing.
Doing it one connector at a time made it easy to make sure I wasn't missing anything. I did have a wirelist (in addition to per-device diagrams), which made it easy to not run duplicate wires -- every wire appeared on my wirelist exactly once, so by the last connector there were no new wires to run; the earlier connectors had gotten them all.
Took about 20 hours over a week to run and terminate all the connectors. Only issues I had were from my own misreading of Garmin's instructions about which protocols were available on which RS-232 ports.