Software is built by large teams of people so it involves understanding human nature. Teams that work well together produce successful projects even if the team is inexperienced. Teams that do not work well together but are highly competent tend to fail. Understanding human nature is key to building teams that work.