¿Qué responder a un cliente que pregunta cuál de las dos tecnologías equivalentes debe usarse?

14

Como profesional independiente, mis clientes a menudo me preguntan qué deben elegir entre elementos similares, ninguno de los cuales es mejor que otro. Ejemplos:

"¿Necesito que mi sitio web de comercio electrónico esté en PHP o ASP.NET?"

"¿Necesito alojar este servicio web ordinario en la nube o utilizar un servicio de alojamiento ordinario?"

"¿Cuál es mejor para mi nuevo sitio web: MySQL u Oracle?"

etc.

Tal vez exista, como máximo, el 1% de los casos en los que la elección sea relevante, y exista una razón real y objetiva para usar una sobre otra, según las métricas y los estudios precisos. En todos los demás casos, no importa en absoluto. Es totalmente, completamente irrelevante, ya sea porque no hay implicaciones¹, o porque esas implicaciones son demasiado pequeñas para ser tomadas en cuenta², o, finalmente, porque es imposible predecir esas implicaciones³.

Si sabe una cosa y no otra, la respuesta a esas preguntas es fácil:

“Puede escribir la aplicación en C # o Java, siendo ambos probablemente equivalentes en su caso. Tenga en cuenta que soy un desarrollador de C #, por lo que si elige Java, no podría trabajar en su proyecto y necesitaría encontrar otro profesional independiente ".

Cuando conoces ambas tecnologías, no puedes responder eso.

En este caso, ¿cómo explicarle al cliente que la pregunta que hace está sujeta a una guerra de llamas y no tiene consecuencias reales en su proyecto?

En otras palabras, ¿cómo explicar que ha elegido usar una tecnología en lugar de una equivalente por las razones relacionadas con los recursos humanos, sin dar la impresión de no ser profesional o de no preocuparse por el proyecto?


¹ Ejemplo: ¿MySQL es mejor (¿peor?), En términos de rendimiento, en comparación con Oracle, para un sitio web personal al que se accederá, oh, seamos optimistas, ¿dos personas por día?

² Ejemplo: para un proyecto determinado, me pidieron que valorara si el alojamiento de Windows Azure sería más barato que el alojamiento de la misma aplicación en un conocido proveedor de alojamiento ASP.NET. El costo reveló ser exactamente el mismo.

³ Ejemplo: su cliente tiene una idea de una aplicación futura (la idea en sí misma es extremadamente vaga). No hay plan de negocios, no hay requisitos, nada en absoluto. Solo una idea. Se le pregunta si Java es mejor que C # para esta aplicación. Que respondes

Arseni Mourzenko
fuente

Respuestas:

36

¿Cómo explicar que ha elegido utilizar una tecnología en lugar de una equivalente por las razones relacionadas con los recursos humanos, sin dar la impresión de no ser profesional o de no preocuparse por el proyecto?

Bien. Dices solo eso:

En términos de los requisitos para este proyecto, la tecnología X y la tecnología Y son igualmente adecuadas para la tarea, por lo que no se incluyen consideraciones técnicas.

Es más fácil encontrar personas talentosas con conocimiento de la tecnología elegida (o dominio del problema), razón por la cual fue seleccionada.

O, para el propósito de este proyecto, el uso de la tecnología Y será más rentable.

Dígalo como es.


Es posible que desee encontrar una analogía con la que el cliente pueda relacionarse. Algo así: con el fin de llegar de Europa a los EE. UU., Puedes ir en un Boeing 747 o un Airbus 380. ¿Importa cuál? No para el cliente, siempre y cuando lleguen allí y las tecnologías sean igualmente adecuadas para los requisitos :)

¿Cuál fue seleccionado? Cualquiera que sea la aerolínea opera ...

Oded
fuente
13
+1 Par de errores tipográficos: Boing 747 suena divertido. Me estoy imaginando un palito gigante ...
MarkJ
44
+1 para Boing 747 (Bueno, y la parte de "gente talentosa") - Estaba pensando en esos castillos inflables que se ven ocasionalmente en las fiestas de cumpleaños de los niños
Izkata
1
Si yo fuera el cliente, podría responder "No tengo idea, pero me gustaría pensar que el piloto sí".
psr
7

Creo que su premisa, que la decisión es en gran medida arbitraria, merece ser cuestionada. Estoy de acuerdo en que no quiere terminar en parálisis de análisis donde tiene meses de reuniones de comité, pero vale la pena considerarlo. Visto desde un alto nivel, la elección de tecnología rara vez es arbitraria. Es clave para la estrategia comercial, ya que influye fuertemente en dónde una empresa puede ir en el futuro, y es el rol del desarrollador guiar a la compañía a través del proceso de decisión.

Los detalles específicos de la tecnología, como el uso de MySQL de árboles B frente a los de Oracle, o la sintaxis de PHP frente a la de ASP.NET , por supuesto, están abiertos a un gran debate religioso entre los programadores y realmente se reducirán a su propio gusto. Dado que un consultor similar a usted mismo podría tener una opinión radicalmente diferente, esas cosas son bastante arbitrarias. Y está bastante bien establecido que cualquier desarrollador que sea competente en una tecnología dada hará un buen trabajo de todos modos. Entonces, los temas más importantes para el negocio no son las minucias del idioma, sino preguntas de nivel superior como:

  • ¿Cuál es el escenario de implementación? Ciertas tecnologías se prestan a un enfoque más directo, especialmente si existen servicios de alojamiento en la nube como Heroku . A algunas compañías les gustará eso, otras necesitarán hospedarse, tener una mayor presencia de administradores de sistemas, etc.

  • ¿Cuál es la duración y el alcance del proyecto? PHP, por ejemplo, es posiblemente más fácil que Java para iniciar un proyecto, pero es más difícil de escalar y mantener durante muchos años.

  • ¿Qué tipo de desarrolladores atraerá la tecnología? Para Java, es más probable que obtenga personas con experiencia empresarial. Para PHP, puede obtener más tipos de diseñador cruzado o tipos de administrador del sistema. Para Node.js , obtendrá más desarrolladores front-end y experimentales, para Haskell, una multitud académica, etc. Todos los estereotipos que conozco, pero le dan al negocio algunas pistas. Cada uno de estos grupos tiene sus propias culturas, expectativas sobre los pagos y el entorno laboral, y formas de trabajar entre ellos y con el resto de la organización.

  • ¿Cuál es la disponibilidad de los desarrolladores? Asumiendo que los desarrolladores tienen que estar físicamente presentes, ciertos lugares tienen ecosistemas particulares. En una ciudad llena de startups, habrá muchos desarrolladores de Ruby on Rails y PHP, en una ciudad llena de departamentos gubernamentales, habrá muchos Java / MS, etc. La gran mayoría de los lenguajes de programación en el mundo deben descartarse simplemente sobre esta base.

Esos son sólo algunos ejemplos. Los factores más importantes dependerán de la situación, pero el punto principal aquí es que las empresas necesitan adoptar conscientemente las tecnologías que se ajustan a su estrategia, cultura y circunstancias.

mahemoff
fuente
4

Le daría al cliente una matriz de comparación objetiva sobre la viabilidad de usar esa tecnología. Por ejemplo:

"¿Cuál es mejor para mi nuevo sitio web: MySQL u Oracle?"

En tu matriz:

  • Costo
  • En uso doméstico
  • Escalabilidad
  • Experiencia / familiaridad
  • Soportabilidad
  • Estampación
  • Ya en uso (desplegado)
  • Facilidad de desarrollo
  • Familiaridad de desarrollo

Etc.

Dependiendo de cuántos elementos en su matriz, uno debe obtener rápidamente una puntuación y determinar la viabilidad de usar esa tecnología en comparación con la otra. En algunos casos, MySQL puede ser mejor, en otros Oracle.

Jon Raynor
fuente
4

Explíquelo en términos que entiendan: dinero. Puede decirles que eligió X sobre Y porque, aunque ambos hubieran sido adecuados para el proyecto, está más familiarizado con X que con Y. De este modo, podrá entregar la aplicación a un costo menor cuando usando X que si fue escrito usando Y.

Gran maestro B
fuente
1
Sí, no hay nada malo en que esta sea la respuesta. Si conoce C # mejor que Java, es lógico que sea más productivo con C #.
Andy
2

"¿Prefieres conducir un Ford o un Chevy?" sería la analogía de manejo que descartaría para ver si pueden captar la idea de que la pregunta no va a ninguna parte. Una pregunta similar podría ser: "¿Cuál es mejor una hamburguesa o una pizza?" donde sin agregar más restricciones, la pregunta tiene una variedad de posibles respuestas que uno podría dar.

La otra forma de ver esto es preguntando por qué es importante saber esto y, dependiendo de qué material adicional se pueda encontrar al aclarar la pregunta, esto puede conducir a una mejor respuesta. Algunas personas pueden preguntarse: "¿Qué se utilizó para construir mi sitio de comercio electrónico?" aunque preferirían ser impresionantes e incluir un par de palabras de moda.

JB King
fuente
8
Los ejemplos de Ford / Chevy y Hamburger / Pizza parecen no responder / frívolos. Estaría irritado por tales respuestas.
Robert Harvey
44
Y la respuesta es siempre Pizza;)
Izkata
2
@Izkata: ... comido en un Ford.
FrustratedWithFormsDesigner
2
Tenga cuidado, Ford vs. Chevy puede ser un debate religioso en algunas partes. Un hombre puede salir lastimado.
Wyatt Barnett el
2

Muchas buenas respuestas ya, pero una cosa que noté no se ha mencionado: esta es una excelente oportunidad para una divulgación completa de su parte. Por ejemplo,

"Ahora me gano la vida principalmente de la tecnología <foo>, así que no soy completamente imparcial. Sin embargo ..."

Realmente creo que ganas credibilidad con este tipo de declaración.

Scott C Wilson
fuente
1

Hay casos raros en los que una tecnología es claramente inferior a otra: "¿Debería desarrollar mi sitio web en Python o Cobol?", Pero sobre todo es una cuestión de caballos para los cursos.

Hay una metodología que uso para decidir qué tecnología se adapta a un cliente:

  1. ¿Qué usan actualmente? Más de lo mismo suele ser mejor que algo nuevo.
  2. ¿La tecnología actual tiene alguna restricción que será superada por el nuevo proyecto? Por ejemplo, usan SQLite , pero ahora esperan que 100 usuarios realicen actualizaciones concurrentes.
  3. Si la tecnología actual no es adecuada, elija entre el código abierto más popular y el líder comercial del mercado.
  4. ¿Es el líder del mercado significativamente mejor que la oferta de código abierto y hay diferencias significativas para el proyecto actual?
  5. Después de haber optado por el código abierto o comercial, tome un buen gusto en las dos ofertas competidoras más cercanas y vea si encajan mejor.

La mayoría de las veces la elección se detiene en el paso dos. Si el cliente usa Acme Widgets , tiene personas con experiencia en el uso de Acme Widgets, tiene un conjunto de estándares, control de cambios y procedimientos de gestión creados alrededor de Acme Widgets y Acme Widgets pueden hacer el trabajo, entonces Acme Widgets es el camino a seguir, incluso si ¡Ezee DohDahs es técnicamente mejor para esta tarea!

James Anderson
fuente