key role played by software development companies