I see a lot of uninformed posts online that misunderstand the benefits of Full-Stack Development vs Frontend/Backend Development. Know that only Software Engineers who have the full context of the value being delivered to customers end-to-end will be able to deliver max value to businesses while simplifying the Software Design and Code maximally across the Frontend and Backend!
Anyone thinking "specialization" is useful in this case is like someone thinking that specialization in pressing the gas pedal vs the break pedal is important when driving a car even though that obviously over-complicates how to drive a car with multiple people unnecessarily as it overthinks the complexity of pressing a gas pedal vs a break pedal! It's true that specialization is useful sometimes, but this is certainly NOT one of those cases. One must take into account the complexity of work to decide on whether specialization is useful or not. Frontend Development in its essence isn't complicated enough to warrant specialization that is different from Backend Development. Remember that Software Engineers build Desktop Applications as having both the Frontend and Backend in the same application. Web Development isn't that different. In the end, users have to interact through a User Interface and pull data from a Database. Some people use Frontend libraries that are too over-engineered/over-complicated like React and Angular though, and then use them as an excuse for misplaced "specialization" while lazily coasting at lower productivity by unnecessarily focusing on Frontend Development alone while their fellow Backend Developers coast at lower productivity by unnecessarily focusing on Backend Development alone.
I have worked at several Software Development companies that employed Full-Stack Development as a unique approach that gave them a unique business competitive advantage as Developers like me and others were able to do the work of clients at much higher productivity and with much better realization of customer requirements because we had a Full-Stack perspective. And, we were as SKILLED at Frontend Development as we were SKILLED at Backend Development; in fact, more skilled than our consulting clients' Frontend Developers and Backend Developers despite them being specialized and us being Full-Stack Developers!
From different jobs I held throughout the years, I have experience in both the Full-Stack Development approach and the split Frontend Development and Backend Development approach (on both sides of it). In 100% of my experiences with companies that split Frontend Development from Backend Development, Frontend Developers ended up overthinking and over-engineering the Frontend while Backend Developers ended up overthinking and over-engineering the Backend, so we ended up with about double the workload that would have been needed had development been done by Full-Stack Software Engineers for both the Frontend and Backend. That's why we end up with crazy-complicated React.js and TypeScript codebases that contradict and break all Ruby/Rails principles! So, never accept BS excuses for "specialization" between Frontend and Backend! They're all misguided and come from laziness and acceptance of terrible over-engineered/over-complicated technologies like React and TypeScript.
Software Developers who cannot put a stake in the ground regarding Full-Stack Development vs Frontend/Backend Development just to be "nice" to some devs they know while being unnice to their paying customers are exactly the kind of spineless pushovers that allow ridiculously over-engineered and over-bloated codebases to happen! They're the kind of Software Developers that must be fired first and NEVER hired in the first place!
In summary, always do Full-Stack Development to avoid overthinking/over-engineering your codebases and to ensure delivering the best business value to customers end-to-end!
No comments:
Post a Comment