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)