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

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 usar un servicio de hospedaje ordinario?"

     

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

etc.

Es posible que haya como máximo el 1% de los casos en los que la elección es relevante, y existe una razón real y objetiva para utilizar una sobre otra, según las métricas y los estudios precisos. En todos los demás casos, no importa en absoluto. Es totalmente 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 sabes una cosa y no otra, la respuesta a esas preguntas es fácil:

  

“Puede escribir la aplicación en C # o en Java, ambas probablemente sean equivalentes en su caso. Tenga en cuenta que soy un desarrollador de C #, por lo que si elige Java, no podré trabajar en su proyecto y tendrá que encontrar otro freelancer ".

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

En este caso, ¿cómo explicar al cliente que la pregunta que hace está sujeta a flamewar y no tiene consecuencias reales en su proyecto?

En otras palabras, ¿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 ser poco profesional o 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 dado, se me pidió que activara si el hospedaje de Windows Azure sería más barato que el hospedaje de la misma aplicación en un proveedor de hospedaje ASP.NET conocido. El costo revelado es 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, ni requisitos, nada de nada. Solo una idea. Se le pregunta si Java es mejor que C # para esta aplicación. ¿Qué respondes?

    
pregunta Arseni Mourzenko 04.04.2012 - 22:27
fuente

7 respuestas

36
  

¿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 ser poco profesional o no preocuparse por el proyecto?

Bueno. Usted dice eso:

En cuanto a los requisitos para este proyecto, la tecnología X y la tecnología Y se adaptan por igual a la tarea, por lo que las consideraciones técnicas no entran en ella.

Es más fácil encontrar personas con talento que conozcan la tecnología elegida (o el dominio del problema), por lo que fue seleccionada.

O, para los fines de este proyecto, utilizar 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í como: con el fin de llegar de Europa a los EE. UU., Puede utilizar un Boeing 747 o un Airbus 380. ¿Importa cuál? No para el cliente, siempre y cuando lleguen allí y las tecnologías se adapten por igual a los requisitos :)

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

    
respondido por el Oded 04.04.2012 - 22:35
fuente
7

Creo que su premisa, que la decisión es en gran medida arbitraria, merece ser cuestionada. Estoy de acuerdo en que no desea terminar en una parálisis de análisis donde tiene meses de reuniones de comités, pero vale la pena considerarlo. Vista 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 el futuro de una empresa, y el rol del desarrollador es 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 B-trees contra los de Oracle, o la sintaxis de PHP versus la de ASP.NET , por supuesto, están abiertos a un gran debate religioso entre los programadores y realmente se reducirá a su gusto. Dado que un consultor similar a ti mismo podría fácilmente 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 determinada hará un buen trabajo de todos modos. Por lo tanto, los problemas más importantes para el negocio no son las minucias del idioma, sino las preguntas de nivel superior, tales como:

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

  • ¿Cuál es el alcance y la duración 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.

  • ¿A qué tipo de desarrolladores atraerá la tecnología? Para Java, es más probable que los obtenga con experiencia empresarial. Para PHP, puede obtener más tipos de diseñador de crossover o administrador del sistema. Para Node.js , obtendrás 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? Suponiendo que los desarrolladores tienen que estar físicamente presentes, ciertos entornos locales tienen ecosistemas particulares. En una ciudad llena de nuevas empresas, habrá una gran cantidad de Ruby on Rails y desarrolladores de PHP, en una ciudad llena de gobiernos departamentos, habrá una gran cantidad de Java / MS, etc. La gran mayoría de los lenguajes de programación en el mundo se deben descartar simplemente sobre esta base.

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

    
respondido por el mahemoff 04.04.2012 - 23:11
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
  • Compatibilidad
  • Herramientas
  • Ya está en uso (implementado)
  • Facilidad de desarrollo
  • Familiaridad con el desarrollo

Etc.

Dependiendo de la cantidad de elementos en su matriz, uno debe obtener una puntuación rápidamente y determina la posibilidad de usar esa tecnología en comparación con la otra. En algunos casos, MySQL tal vez sea mejor, en otros Oracle.

    
respondido por el Jon Raynor 04.04.2012 - 23:07
fuente
4

Explícalo en términos que ellos entiendan: dinero. Puede decirles que seleccionó X sobre Y porque, aunque ambos hubieran sido adecuados para el proyecto, usted está más familiarizado con X que con Y. Por lo tanto, podrá entregar la aplicación a un costo menor cuando usando X que si se escribiera usando Y.

    
respondido por el GrandmasterB 04.04.2012 - 23:32
fuente
2

"¿Prefieres conducir un Ford o un Chevy?" Sería la analogía de conducción que echarí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 respuestas posibles que se podrían 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 simplemente preguntarse: "¿Qué se utilizó para construir mi sitio de comercio electrónico?" aunque prefieren intentar ser impresionantes y lanzar un par de palabras de moda.

    
respondido por el JB King 04.04.2012 - 22:42
fuente
2

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

"Ahora me gano la vida principalmente de la tecnología < foo & gt ;, por lo que no soy completamente imparcial. Sin embargo ..."

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

    
respondido por el Scott C Wilson 06.04.2012 - 13:37
fuente
1

Hay casos raros en los que una tecnología es claramente inferior a otra: "¿Debo desarrollar mi sitio web en Python o Cobol?", pero en su mayoría se trata de caballos para cursos.

Hay una metodología que utilizo 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 limitación que será superada por el nuevo proyecto? Por ejemplo, usan SQLite , pero ahora esperan que 100 usuarios realicen actualizaciones simultáneas.
  3. Si la tecnología actual no es adecuada, elija entre la fuente abierta más popular y el líder del mercado comercial.
  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. Habiendo optado por el código abierto o el comercial, tómese una buena nota con las dos ofertas competidoras más cercanas y vea si están más cerca.

La mayoría de las veces, la elección se detiene en el paso dos. Si el cliente utiliza Acme Widgets , tenga personas con experiencia en el uso de Acme Widgets, tenga un conjunto de estándares, cambie los procedimientos de control y gestión desarrollados 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!

    
respondido por el James Anderson 05.04.2012 - 04:04
fuente

Lea otras preguntas en las etiquetas