Developer Blog w/ Rob Robbins: Say You, Say We.
An Initial Look Into The Foundations That Make Our Dev Team Tick
Words. I have a problem with words. Specifically, I have a problem with the never ending propagation of new words that developers inject into an evolving project.
Project Language
Projects, you see, collect words into a language.
A good language is absolutely no larger than it needs to be. It is clear, concise, and understood by all who speak it. Does Swivel Finance have a good language? Of course.
But did this language magically appear on its own? No. It took many nerf darts, mean looks, and “changes requested” labels on Pull Requests to shape it. In fact, the aforementioned wellspring of terms that spew forth from the fingertips of over-caffeinated code monkeys does have a solution.
Domain-Driven Design & Ubiquitous Language
Have you heard of Domain-Driven Design? Go ahead and Google it if not. There’s one specific aspect we’re going to focus on: Ubiquitous Language.
Martin Fowler & Eric Evans claim that ubiquitous language refers to, “the practice of building up a common, rigorous language between developers and users.” However, we’ve refined that meaning for our purposes and practices here at Swivel.
Our Ubiquitous Language is the common, rigorous language used by everyone in the organization to communicate with one another about the project itself. Are you talking about an Order? You call it an Order. Everyone does. From the CEO to the janitor. (Well, if we had a janitor, which we don’t, but if we did, they would know what to call it.)
But why?
This obviously has many benefits. First and foremost, having a ubiquitous language helps actors inside the project speak to those outside of it on a common ideological ground.
It also might sound silly to the uninitiated, but ubiquitous language facilitates communication of those inside the project to communicate with each other. Do you think that developers at FooCorp (a nameless corp with no language) are good at talking to sales and marketing? Spoiler: they are not.
Wrap-up
A common language means that: development workflows are more accurate; tickets are actually descriptive; and coding is more efficient, as there is less a chance of some eager coder going off and solving the wrong problem because words were used inaccurately. Oh, and let’s not forget, a common language can aid in curbing the expansion of a project’s vocabulary itself.
There is more to curtailing the ever expanding language problem, as Ubiquitous Language is just a single part of how we go about it.
Another key component, Hexagonal Architecture, helps, but that’s a topic for another day. Want to chat about this, or things like it in the meantime? Hop on our discord and ping myself or a member of the dev team!
— Rob Robbins, Technical Lead
About Swivel Finance
Swivel is the protocol for fixed-rate lending and tokenized cash-flows.
Currently live on Rinkeby and on Mainnet, Swivel provides lenders the most efficient way to lock in a fixed rate as well as trade rates, and liquidity providers the most familiar and effective way to manage their inventory.
Website | Substack | Discord | Twitter | Github | Gitcoin | Careers