The surprising silos that create inefficiency in software organizations
Every technology organization has silos that prevent it to succeed. There is a lack of a holistic approach when it comes to engineering great products.
Every technology organization has silos that prevent it to succeed. There is a lack of a holistic approach when it comes to engineering great products.
Specialization is a problem. Others have addressed the issue as well, writing in a wider context about why the world needs generalists?
Specialists are people that come to work thinking their job is to do SQL, or React.js or GoLang or Node.js, while in fact, the job of every software developer or designer is the same — creating successful products and services that produce meaningful outcomes for the organization and the end-user.
While larger organizations need specialists, the majority of software teams are relatively small and the specialization is more of a smell than a best practice.
By emphasizing a strong division of responsibilities, we get focus and mastery in a narrow area, but we also naturally lose the cohesion between product managers, developers, designers etc. to build amazing products, which is the very purpose of our craft.
Software engineering is a holistic process that encompasses product management, project management, UX/UI design, architecture, programming, testing and deployment / devops
Are you confident you are a great software engineer? Or, are you just a specialist in a narrow area, ignoring the rest? Do you think it’s not your job to think about the user or the business?
Traditional hierarchical organizations are most susceptible to this problem, but even modern technology startups build silos where there should be none.
An example of very subtle silos is having a Front-End team or a Back-End team. The worst silo out there is having a DevOps team.
You can be a React.js Ninja, but that doesn’t mean you are a great software engineer that contributes to the outcomes of the organization in a meaningful way.
But wait, isn’t it good to have teams focused on one thing only so they can execute to perfection? Not necessarily.
In the quest for mastery, developers and designers try to specialize in one area, but then they easily forget the importance of a holistic process where the whole team works in unison to produce value for the end-user.
Your job is not to create complex solutions. Your job is not mastery of technology XYZ. Your job is not coding. Your job is not front-end.
Your job is software engineering and creating value for other people — the business and the end-users in a cross-functional team.
To read more on the topic, read my previous article below.
Originally published on Medium.
Discussion
No comments yet. Start the conversation.