A questão em questão é que as decisões de design orientadas pelo desenvolvedor afetam tanto a capacidade de oferecer uma boa experiência ao usuário quanto a velocidade de desenvolvimento (e, portanto, a agilidade do negócio). E há uma tensão entre essas duas preocupações.

Da perspectiva de um usuário de API, o design de API ideal possui as funções mais gerais possíveis. Por exemplo, se você estiver usando uma API bancária, o ideal é que haja apenas uma função para obter o saldo de um usuário, uma função para alterar o saldo, etc. Se houver dezenas de funções para chamar para obter um banco equilíbrio, fica muito mais fácil chamar o errado!

Da perspectiva de um desenvolvedor, entretanto, a API mais fácil de construir é a mais específico. Isso ocorre porque quanto mais específica for uma função, mais um desenvolvedor poderá otimizar. Por exemplo, a maneira de construir o aplicativo bancário mais rápido possível é fazer com que o back-end do aplicativo envie exatamente as informações corretas que o front-end do aplicativo precisa e nada mais. As APIs internas tendem para o desempenho, o que significa que são projetadas pelo desenvolvedor para facilitar a otimização, e não para facilitar o consumo.