Why composability is the single most important requirement in software