What Is Software Development? Types, Process and Partner Selection Guide