3 ms·
I think there's a lot of utility in trying to achieve some conceptual consistency across a large codebase worked on by many people. Most organizations of even 1
by q845712 6y ago
I think there's a lot of utility in trying to achieve some conceptual consistency across a large codebase worked on by many people. Most organizations of even 12+ developers wind up with an internal informal "pattern language" that you learn while onboarding, and it can be wildly helpful if that's explicitly acknowledged as an area of knowledge to help new teammates acquire.
To me a lot of the tension comes from the "endless september" nature of software, that over the last 20 years we just keep absorbing more and more new-ish folks who come in with vastly varying levels of formal and informal education.
I'm tempted to describe one mindset as "catalogers" in contrast to other mindsets that might be called "explorers", "consensus builders", "hackers", "do-ers", etc. (not a complete list nor entirely disjoint categories -- i'm a lousy cataloger!)
I think part of this endless Design Patterns discussion is that some, myself included, would like to push back when "design patterns" starts to become "a standard and nearly exhaustive catalog that the whole field uses with uniform meanings."
- Smaug123 6y agoIn case you hadn't heard of Simon Wardley's "pioneers, town planners, settlers" model, it seems relevant to your third paragraph (https://blog.gardeviance.org/2015/03/on-pioneers-settlers-town-planners-and.html https://blog.gardeviance.org/2015/03/on-pioneers-settlers-to...).
- q845712 6y agoThat's interesting - thanks! I think "catalogers" as I'm thinking of them are by nature not quite pioneers, since the fundamental move of cataloging is to describe and categorize what already exists, but might often be settlers, in the sense that a good career move for a cataloger is to be the first to apply a new process to gain insight into new distinctions or categories. In that sense I would see GoF themselves acting as "settlers" in their Design Patterns book, which I tend to view as a catalog project. However books like "Refactoring", and "Working effectively With Legacy Code" also turn into partial cataloging projects, but those might overlap more with "town planner" in that they're really leveraging some mature technologies and looking for system-level economic savings of readability/changeability/maintainability. So I guess I'd continue to argue that it's a "mindset" as much as "a type of person"; "Working Effectively With Legacy Code" isn't _only_ a catalog, but there's parts of it that come from a catalog mindset. Regardless, I hadn't seen the above mapping you linked and I appreciate it!
- sa46 6y agoAlso related from Coding Horror in 2004: https://blog.codinghorror.com/commandos-infantry-and-police/ https://blog.codinghorror.com/commandos-infantry-and-police/