This is an analysis of the mental life a team of software engineers can have as a cognitive entity in itself, distinguishable from the engineers who participate in the team. Literature in cognitive science, philosophy, and software development is cited to support the analysis and provide examples.
I present a pattern for deciding when to try for an original solution to a problem instead of applying an available Design Pattern. The practice of using software design patterns is of course frequently very useful. You come upon a problem where there are antagonistic forces at play and the pattern gives you a way to resolve them by following practices… (More)