score:15
According to the narration in this book and that one, Hannibal did not start the war prematurely. The mistake might have been to start the war at all, but the timing was not bad in itself: Hannibal had at his disposal a substantial army of hardened veterans, while Rome did not.
A lot of reasons have been advanced, explaining the ultimate failure of Hannibal despite his undoubted military genius; here are the main ones:
A lack of navy: this forced Hannibal to walk to Italy, hence to cross the Alps and lose half his troops (more deserters than deaths, though).
Poor political support from Carthage: Hannibal never got reinforcements worth that name, and was chronically undermanned. From a high strategy view, the main asset of Rome was a virtually unlimited supply of new soldiers.
The strategical miscalculation about the status of Rome's alliances: Hannibal wanted to pry loose these alliances to force Rome to sue for peace. In fact, Rome's allies, in particular Latin cities, turned out to be way more attached to Rome than what Hannibal expected.
Similarly, Hannibal underestimated the commitment of the Senate. With its republican system of elected consuls for one-year terms, Romans had a "no surrender" attitude.
Hannibal's refusal to march on Rome in the aftermath of Cannae has been regularly pointed out as his biggest mistake, although the underlying reason was for fundamental: Hannibal was not equipped for siege warfare, and did not actually possess the know-how.
Waiting for one or a few years would not have improved that situation. Within a few years, Hannibal might have built a navy, but this would most probably have been noticed by Rome, and deprived Hannibal from the advantage of surprise. You don't get competence in siege warfare by training but by attacking cities; extra years in Spain would not have granted that experience. Crucially, each passing year would have dwindled Hannibal's army of veterans: most were mercenaries that were expensive to maintain in peace time (when there is no loot, you need gold to keep them around), and even old age would have cleared his ranks. Meanwhile, Rome would have been free to engage in other battles elsewhere (e.g. in Greece or Illyria) and gain experience. In antique battles, the experience of individual soldiers was a huge advantage, more important for the outcome than the raw head count.