Writing software together

I like this post by Georgy Marchuk on a minimal JavaScript setup but I especially like this bit where Georgy describes the difficulty of writing software as a group:

The success of a development team starts with an agreement. An agreement of how things are done. Without an agreement, code would get messy, and the software unsustainable quite quickly, even for relatively small projects. Therefore, a lot (if not most) of the power of a framework lies within this agreement. The ability to define conventions and common patterns that everyone adheres to. That idea is applicable to any framework, JavaScript or not. Those "rules" are essential to development and bring teams maintainability at any size, reusability of code, and the ability to share work with a community in a form anyone will understand.

I think this comment is what I was half-remembering the other day when I wrote that “every interface is an argument.” You can see it in the design of an interface—how an organization works and how much people inside that org disagree with one another.

Are there inconsistencies in the position of elements? In the typesetting? In the colors that they use? Are certain parts of an app better than others? Does this app have poor performance when you scroll, when you click, or when you load something?

The important thing to note is that these issues are rarely due to incompetence—there can be hundreds of wonderfully talented people working at a company and the thing that they make together might still have these flaws. Rather than incompetence, these issues reveal serious communication flaws in an organization. And so our job as design systems folk isn’t necessarily to fix those bugs with the design or code as much as it is to tackle the very issues that caused them; miscommunication en masse.