When individual developers can be substituted for one another without impacting productivity or project outcomes:
✅ You have a homogeneous team culture; everyone works in the office and no hybrid/remote work
✅ Your dev team uses mature mainstream technologies (top TIOBE languages like Python/TypeScript/Java, relational databases like Postgres for persistence, etc.)
✅ Your teams' domains are pretty similar: developers working on one domain understand terms and acronyms from another domain
✅ You have a well-structured hiring process, and you are sure of the cultural fit
✅ You have a low churn rate: institutional knowledge is high within the engineering organization
✅ All of your engineers are experienced ones: seniors and higher
✅ You have a decent test coverage for your codebase
✅ You are sure that you have the ubiquitous language in the organization: your QA folks understand business folks and vice versa if needed
When can not be interchanged:
⛔️ You are a highly dynamic startup before product market fit
⛔️ Your organization is growing in headcount
⛔️ You have more than two programming languages for the backend, more than two for frontend, you use a young (less than 16 years old) non-SQL database or several different ones
⛔️ Your engineers follow different schools of thought: some people like objected-oriented, some functional programming
⛔️ You have vague test coverage and are not sure about the quality gates
⛔️ You have a geographically distributed team, hybrid or remote mode
⛔️ You have developers in the team who have no experience with your current programming language nevertheless of seniority
⛔️ You have two types of developers: core and provided by outsourcing or outstaffing service
⛔️ Your business works with a domain with high essential complexity
Top comments (0)