Software engineering at scale can be just as much a war of attrition against a sometimes insurmountable mountain of frustration as it is a test of raw dev skill. If we are to "raise the bar" for our collective engineering effort, we need to consciously remove as many of these frustrations as possible.
What if we tried to identify as many of these frustrations as possible and build a standards framework to address and avoid them? We could then use this framework to align ourselves and hold each other to a higher standard.
Everything from technical standards – like avoiding imperative, difficult to debug code – to conduct standards – like increasing communication and collaboration – can be documented. We've all been frustrated over inheriting code that is fragile and hard to refactor or joined a new team that doesn't communicate or encourage questions and collaboration.
Let's stop pretending that these frustrations are unavoidable and par for the course. We can do better!