Best practices for a collaborative software development culture