Now, I'm not going to recommend that for your next React component, but it makes me pretty confident that my family will keep their feet dry. So, my apologies for this diversion into real world engineering, but I think there are some insights that we can take away from this barrier.
So, for instance, it doesn't actually fully close, which you can kind of make out here. There's a small gap between both arms, because you don't really want to crash into each other, because who knows what damage that would do. But, you know, it makes you think about achieving 100% code coverage, right? They don't even care about keeping all the water out. They just have to keep almost all the water out.
So, code, as a profession, and I'm guilty of this myself, we can be terribly focused on code, new APIs, new frameworks, fretting about tech debt. And this can be fun and it keeps us busy and makes us look like we're doing stuff. So, at Monolith, I'm a product engineer. And instead of talking more about engineering, I think we should talk a bit about product.
So, we build products to serve our customer. So, for Monolith, that's individuals. For the Storm Search Bearer, that's 2 million individuals and businesses and a good chunk of the Dutch economy. Like building these barriers, building product is a multidisciplinary effort. Design, marketing, research, support, operations, both like DevOps, technical operations, company operations. Compliance, whether it's GDPR or in our case, certain financial regulations. Quality assurance. That's a lot. So what do we as software developers contribute to all this? Endlessly refining code or figuring out how to test the edges of edge cases can be a fun challenge, but does it serve the customer? Does it deliver value?
Building great products requires iteration, reflection, and making trade-offs. You have to determine your constraints like not moving an entire village. You have to make assumptions, test them, learn, make more assumptions, and so on and so forth. And this is required of everybody, not just developers. It's a high-wire balancing act. And luckily we can often afford to make mistakes in public. We just call them bugs. Testing assumptions doesn't always require you to write code. In fact, if you assume that writing code is the most expensive part of the process, then we should test as many assumptions as possible with the fewest lines of code as possible. At other times, it's most effective to write a bunch of spaghetti code, put it live, learn from what happens, and then change it again. Speed over quality so you can learn more quickly and deliver more value faster. And with apologies to my Italian coworkers for insinuating that spaghetti does not have quality.
Comments