I just got my second-ever siege ... one season after the first.
The best war gaming advice I've ever received was from Donald Rumsfeld:
"You go to war with the army you have, not the one you might wish to have at some future date."
My first siege was, from an engineering perspective, a disaster. Every enemy casualty was at the hands of my soldiers. To rectify this I decided I'd go with a complete redesign, build a moat with heavily-trapped twisting catwalk well before the main gate, then the enemy would be sure to hit the traps. The "big plan" wasn't even begun when the second siege came.
This second siege took me completely by surprise, but remembering Rumsfeld's words I had reworked my "old" preparations in parallel, those ill-conceived defenses that failed to kill a single goblin, just in case I got sieged before the "new" defenses were ready.
I built walls around the outer edges of the fortifications so the enemy would have to enter the kill-zone to fire.
I built statues along the outer wall of the inner edge fortifications so the enemy couldn't walk up to them and use them to fire into the fort.
I built more traps, even though they would be useless for the "big plan" with the moat and catwalk.
I stationed my soldiers so the enemy couldn't get a clear line of fire until they entered the kill zone, requiring them to pass over several traps.
My engineer was putting the finishing touches on one final trap then decided to just start walking south, toward the first wave of goblins, for no reason. His job showed "Loading Stone-Fall Trap", but there were stones all over the place. I drafted him (and my leader, taking over his job, correctly loaded the trap with nearby stones, go figure) and stationed him near the entrance to coax him inside, but he just kept walking south until he and the goblins eventually met and the goblins killed him. I guess he figured it was his time.
The enemy troops surged into the kill zone in 3 separate waves, traps popping off left and right. Any enemy not immediately killed by a trap was immobilized and easy for the Marksdwarves to pick off. The carnage was incredible; the kill zone was filled with a semicircular pile of bodies like debris left by a high tide.
This siege I was introduced to the animal-loving "troll" species. They really, really don't like cats. My troops mostly stayed put, although there was one incident during the first wave when 2 out-of-ammo Marksdwarves rushed outside (against orders) into the kill zone, but the dogs and cats were slaughtered by trolls and goblins, trolls being hardest on the cats.
When goblins come in waves their morale is tied to their wave. When the morale broke on the first wave, the southern, they fled eastward, and in my zeal to pursue one of my Marksdwarves almost didn't make it back inside for the second wave.
The second wave had the trolls out front as shock troops. This wave slaughtered several dogs and some cats, just because they came from the west and my animals happened to be roaming that way. When the enemy hit the traps they got utterly pasted. I now know when an enemy hits a trap faraway enemies don't instantly know the trap is there: the first wave took some trap hits, too, but the second wave hit some of those same traps. I suspect that even an enemy standing right next to a trap that goes off also doesn't become aware of it, because I think I saw two adjacent trolls hit the same trap.
The third wave I didn't even see. I had my pursuit forces out running down the fleeing second wave, again to the east, put all my workers back on task, and let them outside, and I noticed a job cancellation message that seemed a little suspicious.
By some stroke of luck all my remaining war dogs converged on this "northern force" and delayed them long enough for my pursuit squads to divert and attack. Thanks to the traps thinning out the first two waves most of my Marksdwarves had ammo so were able to gun down the northern force while they were pinned down by the dogs. The dogs took a terrible beating, but they did their jobs and saved me from my own inattentiveness.
2 sieges in 2 seasons with 2 casualties and 2 sets of lessons learned, but it was Rumsfeld's lesson that was most important: "You go to war with the army you have, not the one you might wish to have at some future date."