Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RailsConf 2017: Why Software Engineers Disagree About Everything by Haseeb Qureshi Why are there are so many disagreements in software? Why don’t we all converge on the same beliefs or technologies? It might sound obvious that people shouldn't agree, but I want to convince you it’s weird that we don't. This talk will be a philosophical exploration of how knowledge converges within subcultures, as I explore this question through the worlds of software, online fraud, and poker.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In his talk at RailsConf 2017, Haseeb Qureshi explores the puzzling question of why software engineers often disagree about various technologies and methodologies. He delves into the field of epistemology, the study of knowledge, to analyze how knowledge is culturally influenced within programming communities. Qureshi discusses the following key points: - **Cultural Disagreement**: Qureshi highlights that beliefs in the software community, such as language preferences (e.g., JavaScript vs. C) and methodologies (e.g., TDD), are often held with strong conviction but are subject to disagreement. - **Knowledge as Cultural**: Drawing on his diverse background, including experiences in poker and combating online fraud, he illustrates that knowledge and belief systems evolve within subcultures, leading to varying insights and conclusions. - **Lack of Convergence**: He argues that unlike other systems that tend to converge on optimal solutions (e.g., strategies in poker), the software field is rife with competing solutions without a clear consensus on the best practices. - **Examples of Convergence in Nature**: Qureshi provides analogies from nature, such as pigeons converging to optimal food sources, to illustrate that in many domains, systems typically converge to optimize efficiency or effectiveness. - **Barriers to Convergence**: He identifies several reasons why software does not converge, including: - **Unstable Terrain**: Rapid changes in technology make it hard to define a stable path. - **High Switching Costs**: Significant investment in time and resources makes it difficult for individuals to switch technologies or methodologies. - **Information Sharing**: Limited transparency or sharing across programming cultures inhibits collective understanding. - **Group Identity**: Strong social identities can create barriers to exploring alternative solutions, leading software engineers to remain within comfortable paradigms. - **Practical Advice**: Qureshi concludes with several recommendations: - **Keep Your Identity Small**: Foster a broader professional identity beyond specific technologies to remain adaptable. - **Explore the Terrain**: Actively seek new experiences and practices that may challenge established norms. - **Have Fun**: Encourage exploration and enjoyment in learning to ease the discomfort of venturing into new areas. Overall, Qureshi aims to deepen the audience's appreciation for the complexity behind software disagreements while advocating for open-mindedness in the evolving tech landscape.
Suggest modifications
Cancel