Como escolher uma biblioteca/framework?

No desenvolvimento de projetos de software, saber quando recorrer a uma biblioteca/framework e como optar por uma entre muitas, não é tão óbvio quanto parece. Neste artigo decidi sintetizar o processo. Tentarei abstrair-me da linguagem/runtime (PHP, Java, .NET, etc.) em causa, visto que os conceitos são transversais.