Not that a software developer couldn't be a CTO, its just that they have less of a focus on: - Costs. Infrastructure (hosting etc.) - Disaster Recovery - if a plan isn't in place, getting one done! Then periodically testing the DR plan - Managing the Service Desk (issue raised / closed / turn around time)
(I may be reading too much into your question) but I think you are missing a step. Something along the lines of Team Lead / Developer Manager / Project Management / Software Architect.
Any developer WITHOUT several years experience in this type of role first is just kidding themselves of a CTO role.