Technology, process, and culture in software development