People in Software Development

The distinction between software engineering and formal computer science lies in the involvement of people in the development process. While topics like algorithms and machine learning can be studied independently of human influence, areas such as usability and estimation are inherently tied to team dynamics. Estimation, in particular, highlights the challenge of predicting project timelines, as no mathematical method can accurately account for the complexities of human collaboration in software projects.