How are software teams organized in large companies?