O que responder a um cliente que pergunta qual das duas tecnologias equivalentes deve ser usada?

14

Como freelancer, meus clientes geralmente me perguntam o que eles devem escolher entre elementos semelhantes, nenhum dos quais sendo melhor que outro. Exemplos:

"Preciso que meu site de comércio eletrônico esteja em PHP ou ASP.NET?"

"Preciso hospedar esse serviço da Web comum na nuvem ou usar um serviço de hospedagem comum?"

"Qual é o melhor para o meu novo site: MySQL ou Oracle?"

etc.

Talvez haja no máximo 1% dos casos em que a escolha seja relevante e haja um motivo real e objetivo de usar um ao outro, com base em métricas e estudos precisos. Em todos os outros casos, isso não importa. É totalmente, completamente irrelevante, ou porque não há implicações¹ ou porque essas implicações são pequenas demais para serem consideradas2 ou, finalmente, porque é impossível prever essas implicações³.

Se você sabe uma coisa e não outra, a resposta para essas perguntas é fácil:

“Você pode escrever o aplicativo em C # ou Java, sendo ambos provavelmente equivalentes no seu caso. Observe que sou desenvolvedor de C #, portanto, se você escolher Java, não seria capaz de trabalhar no seu projeto e você precisaria encontrar outro freelancer. ”

Quando você conhece as duas tecnologias, não pode responder a isso.

Nesse caso, como explicar ao cliente que a pergunta que ele faz está sujeita à guerra de chamas e não tem consequências reais em seu projeto?

Em outras palavras, como explicar que você optou por usar uma tecnologia em vez de uma equivalente pelas razões relacionadas aos recursos humanos, sem dar a impressão de não ser profissional ou não se importar com o projeto?


¹ Exemplo: O MySQL é melhor (pior?), Em termos de desempenho, em comparação com o Oracle, para um site pessoal que será acessado por, oh, vamos ser otimistas, duas pessoas por dia?

² Exemplo: para um determinado projeto, fui solicitado a definir se a hospedagem do Windows Azure seria mais barata que a hospedagem do mesmo aplicativo em um provedor de hospedagem ASP.NET conhecido. O custo revelou-se exatamente o mesmo.

³ Exemplo: seu cliente tem uma idéia de uma aplicação futura (a ideia em si é extremamente vaga). Não há plano de negócios, requisitos, nada. Apenas uma ideia. Você é perguntado se Java é melhor que C # para este aplicativo. O que você responde?

Arseni Mourzenko
fonte

Respostas:

36

como explicar que você optou por usar uma tecnologia em vez de uma equivalente pelas razões relacionadas aos recursos humanos, sem dar a impressão de não ser profissional ou não se importar com o projeto?

Bem. Você diz exatamente isso:

Em termos dos requisitos para este projeto, a tecnologia X e a tecnologia Y são igualmente adequadas para a tarefa, portanto, considerações técnicas não são necessárias.

É mais fácil encontrar pessoas talentosas com conhecimento da tecnologia escolhida (ou domínio do problema), e é por isso que foi selecionada.

Ou - para os fins deste projeto, o uso da tecnologia Y será mais econômico.

Diga como é.


Você pode encontrar uma analogia com a qual o cliente possa se relacionar. Algo como - com o objetivo de ir da Europa para os EUA, você pode entrar em um Boeing 747 ou Airbus 380. Importa qual? Não para o cliente, desde que eles cheguem lá e as tecnologias sejam igualmente adequadas aos requisitos :)

Qual foi selecionado? Qualquer que seja a empresa aérea ...

Oded
fonte
13
+1 Alguns erros de digitação - Boing 747 parece divertido. Eu estou imaginando um pula-pula gigante ...
MarkJ
4
+1 para Boing 747 (Bem, e as "pessoas talentosas" parte) - Eu estava pensando desses castelos infláveis ocasionalmente vistos em festas de aniversário infantis
Izkata
1
Se eu fosse o cliente, poderia responder "Não faço ideia - mas gostaria de pensar que o piloto sim".
Psr #
7

Eu acho que sua premissa, de que a decisão é amplamente arbitrária, vale a pena questionar. Concordo que você não quer acabar em paralisia de análise em que tem meses de reuniões do comitê, mas vale a pena considerar. Visto de alto nível, a escolha da tecnologia raramente é arbitrária. É fundamental para a estratégia de negócios, pois influencia fortemente onde uma empresa pode ir no futuro, e é papel do desenvolvedor guiar a empresa no processo de decisão.

As especificidades da tecnologia, como o uso de árvores B no MySQL e as da Oracle ou a sintaxe do PHP em relação ao ASP.NET , são obviamente abertas a muitos debates religiosos entre os programadores e serão realmente do seu próprio gosto. Como um consultor semelhante a você pode facilmente ter uma opinião radicalmente diferente, essas coisas são realmente bastante arbitrárias. E está bem estabelecido que qualquer desenvolvedor que seja competente em uma determinada tecnologia fará um bom trabalho de qualquer maneira. Portanto, os problemas mais importantes para os negócios não são minúcias de idiomas, mas questões de nível superior, como:

  • Qual é o cenário de implantação? Certas tecnologias se prestam a uma abordagem mais prática, especialmente se houver serviços de hospedagem em nuvem como o Heroku . Algumas empresas vão gostar disso, outras precisarão se hospedar, ter uma presença mais forte de administradores de sistema etc.

  • Qual é a vida útil e o escopo do projeto? O PHP, por exemplo, é sem dúvida mais fácil que o Java para iniciar um projeto, mas é mais difícil de escalar e manter por muitos anos.

  • Que tipos de desenvolvedores a tecnologia atrairá? Para Java, é mais provável que você obtenha pessoas com experiência corporativa. Para PHP, você pode obter mais tipos de designer de crossover ou administrador de sistema. Para o Node.js , você terá mais desenvolvedores experimentais e de front-end, para Haskell, uma multidão acadêmica, etc. Todos os estereótipos que conheço, mas isso dá à empresa algumas pistas. Cada um desses grupos tem suas próprias culturas, expectativas sobre pagamento e ambiente de trabalho e maneiras de trabalhar entre si e com o restante da organização.

  • Qual a disponibilidade dos desenvolvedores? Supondo que os desenvolvedores precisem estar fisicamente presentes, certos locais têm ecossistemas específicos. Em uma cidade cheia de startups, haverá muitos desenvolvedores de Ruby on Rails e PHP, em uma cidade cheia de departamentos governamentais, haverá muitos Java / MS, etc. A grande maioria das linguagens de programação no mundo deve ser descartado simplesmente nesta base.

Estes são apenas alguns exemplos. Quais fatores são mais importantes dependerão da situação, mas o ponto principal aqui é que as empresas precisam adotar conscientemente as tecnologias que se encaixam em sua estratégia, cultura e circunstâncias.

mahemoff
fonte
4

Eu daria ao cliente uma matriz de comparação objetiva sobre a viabilidade de usar essa tecnologia. Por exemplo:

"Qual é o melhor para o meu novo site: MySQL ou Oracle?"

Na sua matriz:

  • Custo
  • Uso Doméstico
  • Escalabilidade
  • Experiência / Familiaridade
  • Capacidade de suporte
  • Ferramentas
  • Já em uso (implantado)
  • Facilidade de Desenvolvimento
  • Familiaridade com o desenvolvimento

Etc.

Dependendo de quantos itens em sua matriz, um deve chegar rapidamente à pontuação e determinar a viabilidade de usar essa tecnologia em relação à outra. Em alguns casos, o MySQL talvez seja melhor, em outros, o Oracle.

Jon Raynor
fonte
4

Explique-o em termos que eles entendem - dinheiro. Você pode dizer a eles que escolheu X sobre Y porque, mesmo que ambos fossem adequados para o projeto, você está mais familiarizado com X que Y. E, portanto, poderá entregar o aplicativo a um custo menor quando usando X do que se tivesse sido escrito usando Y.

GrandmasterB
fonte
1
Sim, nada de errado com esta sendo a resposta. Se você conhece C # melhor que Java, é lógico que você seria mais produtivo com C #.
5133 Andy
2

"Você prefere dirigir um Ford ou um Chevy?" seria a analogia motriz que eu jogaria fora para ver se eles conseguem entender a ideia de que a pergunta não está indo a lugar algum. Uma pergunta semelhante poderia ser: "Qual é melhor um hambúrguer ou uma pizza?" onde, sem adicionar mais restrições, a pergunta tem várias respostas possíveis.

A outra maneira de ver isso é perguntar por que isso é importante e, dependendo do material adicional que pode ser encontrado, esclarecendo a pergunta, isso pode levar a uma resposta melhor. Algumas pessoas podem se perguntar: "O que foi usado para criar meu site de comércio eletrônico?" embora eles prefiram tentar ser impressionantes e apresentar algumas palavras de efeito.

JB King
fonte
8
Os exemplos Ford / Chevy e Hamburger / Pizza parecem não responder / irreverentes. Eu ficaria irritado com essas respostas.
31512 Robert
4
E a resposta é sempre Pizza;)
Izkata 04/04
2
@ Izkata: ... comido em um Ford.
FrustratedWithFormsDesigner
2
Cuidado, Ford vs. Chevy pode ser um debate religioso em algumas partes. Um homem pode se machucar.
Wyatt Barnett
2

Já existem muitas respostas boas, mas uma coisa que notei não foi mencionada: esta é uma excelente oportunidade para divulgação completa de sua parte. Por exemplo,

"Agora eu vivo principalmente da tecnologia, então não sou totalmente imparcial. No entanto ..."

Eu realmente acho que você ganha credibilidade por esse tipo de afirmação.

Scott C Wilson
fonte
1

Existem casos raros em que uma tecnologia é claramente inferior a outra - "Devo desenvolver meu site em Python ou Cobol?", Mas principalmente é uma questão de cavalos para cursos.

Existe uma metodologia que eu uso para decidir qual tecnologia combina com um cliente:

  1. O que eles usam atualmente? Mais do mesmo geralmente é melhor do que algo novo.
  2. A tecnologia atual possui alguma restrição que será excedida pelo novo projeto? Por exemplo, eles usam SQLite , mas agora esperam que 100 usuários façam atualizações simultâneas.
  3. Se a tecnologia atual não for adequada, escolha entre o código-fonte aberto mais popular e o líder do mercado comercial.
  4. O líder de mercado é significativamente melhor do que a oferta de código aberto e existem diferenças significativas para o projeto atual?
  5. Tendo optado por código aberto ou comercial, dê uma boa olhada nas duas ofertas concorrentes mais próximas e veja se elas são mais adequadas.

Na maioria das vezes, a escolha é interrompida na etapa dois. Se o cliente usa os Acme Widgets , possui pessoas com experiência no uso de Widgets da Acme, possui um conjunto de padrões, altera os procedimentos de controle e gerenciamento criados em torno dos Acme Widgets e da Acme Widgets, mas os Acme Widgets são o caminho a seguir - mesmo que Ezee DohDahs é tecnicamente melhor para esta tarefa!

James Anderson
fonte