3 ms·
I'm excited to see this title. I interviewed Greg Wilson recently and he had a lot to say on this topic, of taking ideas from other fields and improving our abi
by adamgordonbell 3y ago
I'm excited to see this title. I interviewed Greg Wilson recently and he had a lot to say on this topic, of taking ideas from other fields and improving our abilities to read and critique code and architectures.
Here is the chatGPT summary of this one point from the interview, if you're interested:
Integrating Critique Methodologies Across Disciplines: Embrace critique methodologies from architecture, fine arts, and design to elevate software development. This multidisciplinary approach emphasizes the importance of learning from real-world examples, akin to portfolio reviews in fine arts, where developers present and review code as a form of art, focusing on elegance, maintainability, and design patterns.
Studio Class Setting for Software Design: Adopt the studio class critique format from architectural education for software development, creating an environment where developers learn to give and receive constructive feedback. This fosters a culture of continuous improvement, much like iterative design processes in the arts, refining code through feedback loops to achieve functional and aesthetic excellence.
Developing a Language for Software Architecture Critique: Construct a language and a collection of examples for nuanced software architecture discussion, inspired by how architecture and fine arts students analyze works. Incorporate critique vocabulary from the arts to articulate specific aspects of software design and development more clearly, enhancing the depth of evaluation and appreciation for software design.
Promoting Thoughtful, Effective, and Beautiful Code: This interdisciplinary critique approach promotes the development of thoughtful, effective, and beautiful code. By valuing aesthetics in code, much like in fine arts, and encouraging narrative and storytelling around design decisions, developers can achieve a deeper understanding of design decisions and trade-offs, leading to software that is not only functional but also elegant and user-centric.
Greg's approach was education-centric: having students critique each others code in classroom settings and review and read real world code.