We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Language Games - Eli Holderness - NDC Oslo 2024
Discover how language games shape software development, from clean code to DDD. Learn core principles for better communication between humans and computers in dev teams.
-
Language is fundamentally a game with rules, and understanding these rules is key to effective communication in software development
-
Context gives language meaning - the more shared context between parties, the better the communication. This applies to both human-human and human-computer interactions
-
Clean code principles align with Grice’s Maxims of communication:
- Be informative (quantity)
- Be truthful
- Be relevant
- Be clear/perspicuous
-
Domain Driven Design helps establish shared language between stakeholders and developers, reducing translation layers and miscommunication
-
When building software, we’re creating language games with both:
- The computer (through programming languages)
- Other team members (through documentation, meetings, tickets)
-
Effective communication requires understanding that:
- We can never be 100% certain two people have the same concept in mind
- Signs (words/code) and concepts they represent aren’t intrinsically linked
- Translation layers exist between concept and expression
-
Code should be written with communication in mind since it will be read more than written
-
Context reuse (established patterns, shared terminology) makes communication more efficient
-
Stakeholder requirements need careful translation between business concepts and technical implementation
-
Communication is inherently difficult but can be improved through conscious effort and understanding these principles