Nice article, thanks for sharing.<p>In addition to the great information you've provided, we identify features/decisions/choices that require spikes based on assessment that they are high risk and/or we have low confidence in our estimate. In addition, we sometimes use spikes to break xxx-large estimates into smaller pieces.<p>That way, until a project/plan/item has low (enough) risk, and high (enough) confidence, it needs more spikes.<p>We've found this model is a great way of identifying what needs spiking, and when a spike is 'done'. And, it also helps to ensure spikes don't end up consuming too much time.<p>Hope this is useful.