I would collapse the senior engineer and architect roles into a single role and only hire people capable of doing both.
Owning the modules requires understanding the overall architecture and how the module’s API needs to fit into it, when a new module is required, when the architecture needs to change, and how to pragmatically migrate from one design to another in a live system.
All of that is easier if everyone is capable of operating at any level from overall architecture to micro optimizations.
I think we (developers) need to get over that. Code was always the means to an end, which is providing a product to solve a problem, not the end itself.
Owning the modules requires understanding the overall architecture and how the module’s API needs to fit into it, when a new module is required, when the architecture needs to change, and how to pragmatically migrate from one design to another in a live system.
All of that is easier if everyone is capable of operating at any level from overall architecture to micro optimizations.
reply