How do our software companies maintain their autonomy?