Software engineering, design, and psychology
There are times in software projects when a big shift happens in domain representation. This results in changes of project structure, class responsibilities