Romello Goodman, a software engineer at The New York Times, writing at Increment: Like a sourdough starter passed through the hands of many bakers — some novices, some experienced — a codebase reflects how teammates communicate with one another. It’s a snapshot of our thinking and our best attempts at codifying norms and assumptions. It’s a conversation in which each person contributes and is in conversation with those who came before them. With each new feature or bug report, we understand our code better. We identify areas where new logic doesn’t quite fit with existing logic. We’re constantly in touch with our own past decisions and those of our coworkers. We’re working together, trying to harmonize and match one another’s thinking patterns and assumptions. We trust one another to make decisions for the good of the team and the organization. Every piece of new code adds to the culture and cultivates our shared understanding.
If code is sourdough, we have an opportunity to better appreciate the histories and context that have gone into it. In software, we tend to think of legacy code as something that should be thrown away or rewritten, often conflating a codebase’s age with its health and viability. But code doesn’t age in a vacuum. If sourdough can be passed down from person to person over decades, then so can code. The preservation of decisions and experience is tied to the preservation of our codebase. Even when the code itself is no longer being updated, documentation around the logic or the underlying platform and adjacent technologies can keep a codebase and its culture vibrant. You can then pass that culture on for another team to bake with. It might just taste better than you’d expect.
Read more of this story at Slashdot.