Despite years of work, no re-usable clinical terminology has yet been demonstrated in widespread use. This paper puts forward ten reasons why developing such terminologies is hard. All stem from underestimating the change entailed in using terminology in software for 'patient centred' systems rather than for its traditional functions of statistical and financial reporting. Firstly, the increase in scale and complexity are enormous. Secondly, the resulting scale exceeds what can be managed manually with the rigour required by software, but building appropriate rigorous representations on the necessary scale is, in itself, a hard problem. Thirdly, 'clinical pragmatics'--practical data entry, presentation and retrieval for clinical tasks--must be taken into account, so that the intrinsic differences between the needs of users and the needs of software are addressed. This implies that validation of clinical terminologies must include validation in use as implemented in software.