Also useful in a medieval siege: a fire-resistant wooden tower on wheels. Shield the front, load your soldiers in the back, and have them climb up a ladder to the top of the tower. When you push the thing up to the walls of the fortress/castle/city, your soldiers can spill out at the top of the walls instead of climbing them.

Make sure to fireproof the tower very well. One flaming arrow can ruin your entire day.