Starting with the PCB or code doesn't matter worth a darn. The PCB can be designed with all the features in mind, if the code isn't be written to support all the hardware features..that's not at all a problem. When a team works on a project, the hardware guys don't wait around for the software...