machines, people, and processes in an inextricably interconnected and interdependent system” which never goes without “conflict, negotiation, disputes over professional authority, and the conflation of social, political, and technological agendas. Software is perhaps the ultimate heterogeneous technology. It exists simultaneously as an idea, language, technology, and practice.