The emergence of knowledge exchange: an agent-based model of a software market