Namegames: Solving the hardest parts of Computer Science
The hardest problems in CS are in naming. Let's take a cue from communication studies and apply Semiotics to our software systems. Then we'll look at how DDD helps us develop modular software systems that are built to evolve with the business.
the business pivots Old concepts need to be supported, but are no longer currently applicable. Draft up a plan to deprecate old classes, modules, concepts.
another team joins the fray Not everyone has the same conceptual model; drift occurs in naming and concepts Consistently talk about naming in architecture meetings and code reviews
an employee leaves She knows things about the system nobody else does Anticipate her departure and collaboratively update the glossary & other documentation
Applying semiotics to software Meaning in software systems is constructed through a business- cultural lens Therefore: view your system as a federation of cultures. Develop an independent, documented vocabulary for each business context.
Align software to the business Clean systems map directly to business contexts Therefore: Update systems to cleanly use domain language. Modularize systems to independently operate in each business unit.
Proactively manage change Change threatens to topple systems by introducing ambiguity Therefore: develop practices of updating documentation, sharing information and continually having conversations