Hay muchas consideraciones para elegir una tecnología para usar. Al evaluar un proyecto y determinar lo que voy a usar para resolver el problema, generalmente miro:
- Requerimientos del proyecto. ¿Estoy creando software para un banco, donde la fiabilidad es más importante que cualquier otra cosa? ¿O estoy creando un sitio web para el consumidor, donde la velocidad es más importante? Definir el proyecto primero.
- Habilidad personal Otro factor importante para mí es con lo que me siento cómodo. Creo que la mayoría de los proyectos se pueden implementar en la mayoría de los idiomas / ecosistemas disponibles. Python, Ruby, Perl, PHP y Java tienen ecosistemas robustos y todos pueden usarse para casi cualquier proyecto.
- Habilidad de equipo. Si ya soy parte de un equipo, entonces esta consideración supera mis propias habilidades. Si somos cuatro y tres de nosotros somos expertos en Python, entonces probablemente implementaremos el proyecto en Python (a falta de otras preocupaciones importantes).
- Apoyo local Esto es algo a tener en cuenta: si no se encuentra en Silicon Valley, es posible que le preocupe la cantidad de personas en el área local que usan la tecnología que está viendo. Cuando se trata de despegar, tener personas con las que puedas tomar un café para discutir el diseño y la implementación es una gran ayuda.
- Soporte de entorno de host. Esto es menos relevante para una nueva startup donde el campo está abierto de par en par. Sin embargo, si su equipo solo está familiarizado con Google App Engine o Heroku (o tiene una razón para usar uno de ellos, como nadie que sepa cómo configurar realmente Apache), esos dictarán su solución hasta cierto punto.
- Integración de infraestructura. Si está construyendo sobre Hadoop / Hbase, puede considerar Java ya que en eso está escrito la plataforma. Si está firmemente a favor de algo más, considere unificar los idiomas que usa. Cuantos menos idiomas se implementen en su organización, más baja será la barra para solucionar problemas en todos los ámbitos.
- Atractivo para los desarrolladores. Si su negocio está creciendo, tiene que contratar. Esta es una preocupación menor en mi libro, ya que cualquier buen ingeniero será capaz de aprender un nuevo idioma con bastante rapidez, pero aún es uno a tener en cuenta. Si eres una casa de Java, no atraerás a un cierto grupo de personas que simplemente no quieren volver a tocar Java.
- Licencias Esto es algo a tener en cuenta si está buscando una tecnología en particular: algunas bibliotecas tienen licencias restrictivas, lo que significa que es posible que no pueda hacer lo que quiere con ellas. Sin embargo, en la práctica, no he visto que esto entre en juego muy a menudo.
Como puede ver, personalmente pongo mucho peso en cuestiones de experiencia y capacidad para obtener ayuda. Cuando se habla de fundar una startup, una gran parte de su ventaja será iterar de manera rápida y decisiva. Si está atrapado con tecnología que no conoce y no puede obtener ayuda, se está poniendo en desventaja. Nunca es una gran idea en los negocios, peor aún para una startup.
- Cómo comenzar mi propia empresa de consultoría educativa
- ¿Qué debería gastar una startup en un video?
- ¿Cuánto debería valorar mi startup para la financiación inicial?
- ¿Cuáles son algunos buenos consejos para ofrecer equidad a las primeras contrataciones de una startup?
- ¿Deben las startups lanzarse con un dominio .com?