Durante mi experiencia laboral, he desarrollado software por más de 2 décadas. Diez de esos de esos años los dediqué a ser programador hardcore de PHP, y es por ello que quiero compartir mis opiniones sobre qué lenguajes de programación me parecen los más indicados para resolver determinado tipo de problema.
Empecemos con mi favorito, PHP.
PHP es mi lenguaje de programación predilecto porque me permite hacer realidad, de manera muy fácil, cualquier idea que se me venga a la mente. Sin embargo, durante todo el tiempo que estuve aplicándolo, me di cuenta que es muy difícil encontrar programadores que sean buenos en este lenguaje.
Si decidieras formar nuevos talentos que dominen PHP, realmente cuesta mucho tiempo y esfuerzo que un programador nuevo pueda sacarle provecho, ya que aquellos que no cuentan con mucha experiencia en el campo, suelen ser muy propensos a cometer una gran variedad de errores al momento de ejecutarlo.
Y si tu negocio, como el mío, se dedica al desarrollo de software a la medida, entre más tiempo tarde un programador desarrollando o corrigiendo errores, menos rentable eres y los costos del proyecto se elevarán considerablemente.
PHP es un lenguaje de programación que no recomiendo para empresas que van a iniciar su propio equipo de desarrollo, a menos que la persona que esté cargo sea un experto en dicha tecnología. Por otro lado, considera que tampoco es buena idea volverte dependiente de una persona técnica, pues si éste decide retirarse un día y para siempre de tu empresa, perderás garantía de que tu software se siga desarrollando, con calidad, en tu negocio.
Python, el lenguaje que más utilizamos.
Para mi en lo particular, como programador, Python no es ni de cerca mi lenguaje favorito; no obstante, es sumamente fácil de aprender. Si estás interesado en formar programadores desde cero, puedes reclutar estudiantes prácticamente recién egresados de la carrera de informática, sin experiencia en Python, y en tan solo en 2 semanas ya estarán contribuyendo sus primeras líneas de código en los proyectos de desarrollo.
Para una empresa dedicada al desarrollo a la medida, esto es sumamente positivo. Incluso, combinando Python con Postgres como base de datos, resulta una muy buena opción para sistemas administrativos que no manejan información delicada. Este lenguaje lo recomiendo ampliamente para empresas que buscan iniciar sus áreas de desarrollo o para la elaboración de su primer software a la medida, ya que es fácil formar gente nueva para su ejecución, y además, es muy fácil encontrar programadores que sepan usarlo.
NodeJS, el lenguaje más cool.
NodeJS es un lenguaje sumamente flexible y tiene una curva de aprendizaje un poco larga, pero permite hacer cosas muy divertidas en muy poco tiempo. No es lo más cómodo de utilizar para hacer un sistema administrativo donde requieres operaciones como transacciones monetarias, pero es ideal para hacer aplicaciones realtime como juegos, chats, monitoreo, y muchos más ideas innovadoras que se te puedan ocurrir.
La pareja ideal de NodeJS es MongoDB o cualquier base de datos no relacional. Este lenguaje solo lo recomendaría si eres una startup y necesitas innovar rápidamente. Pero no lo recomiendo para sistemas administrativos como contabilidad, facturación, almacenes, finanzas, etc.
Java, el lenguaje más robusto.
Este es mi segundo favorito después de PHP. Java es un lenguaje sumamente sólido, estable y con múltiples herramientas para desarrollos complejos y que manejen información muy delicada. El desarrollo en Java es lento si lo comparamos con los otros lenguajes que mencioné anteriormente, y los programadores que saben usar esta tecnología están muy cotizados porque es un lenguaje netamente corporativo como .NET, lo cual provoca que proyecto de desarrollo se encarezca mucho más.
Oracle es la pareja ideal de Java. Lo recomiendo ampliamente, pero toma en cuenta que los costos de desarrollo son prácticamente el doble que si construyeras con PHP, Python o NodeJS. Vale la pena solo si eres un corporativo donde el tema de presupuesto no es un problema, y si tus preocupaciones del momento son estabilidad, seguridad y escalabilidad. Si encajas en esta descripción, entonces Java es el indicado para ti.
.NET, el lado oscuro del desarrollo.
Sobre este lenguaje, sinceramente no puedo opinar mucho porque pocas veces lo llegué a utilizar, pero si puedo comentar y tengo conocimiento que es competencia directa de Java, ya que ambos son lenguajes netamente corporativos. .NET es un poco menos popular que Java, pero los dos comparten la similitud de ser una tecnología cara, donde sus programadores son igual o más cotizados que los de su competencia.
Lo anterior significa también que los costos de cualquier desarrollo que lo implemente en su proyecto, resultarán ser muy altos. Si tu problema no es el presupuesto, puede ser una buena opción si se acomoda a tus necesidades.
Entonces, ¿qué tecnologías recomiendo a las PyMEs?
“Solo quiero una página web y tener presencia en internet.”
WordPress es la solución que estás buscando. Tendrás un costo de implementación y no de desarrollo, pues estas aplicaciones corren sobre cualquier hosting con precios de $100 pesos mensuales o menos. Además, no requieres de un programador que le brinde mantenimiento y para actualizar los contenidos, ya que tú mismo puedes hacerlo, con el plus de que también se administra fácilmente.
“Quiero un software que me ayude a gestionar mi negocio.”
Aquí van unos algunos ejemplos de problemas que puedes resolver con software.
- Gestión contable.
- Gestión de puntos de ventas.
- Gestión de pedidos y envíos.
- Facturación electrónica.
- Gestión de producción.
- Control de almacenes.
- Manejo de suscripciones.
- Carritos de compras y venta en línea.
- Logística, etc.
Con software puedes resolver problemas puntuales ya que estos programas ayudan a la gestión completa de tu negocio, a los cuales se les conoces como ERP («Enterprise Resource Planning”). Si aún no estás usando software en tu negocio, te sugiero fuertemente que investigues qué software empaquetado existe y cual de ellos está usando tu competencia, además de saber qué ese le está resultando.
Pero, ¿qué es un software empaquetado?
Es aquel que resuelve un problema de forma genérica y vendido a un precio muy accesible. Un muy buen ejemplo de software a la medida es Soft Restaurant, un programa que prácticamente todos los restaurantes de México utilizan porque logra resolver el problema de estos negocios de muy buena forma a un costo sumamente accesible.
¿Y porqué es tan barato el software empaquetado? Primero comencemos aclarando algo: Este tipo de software no es más barato de desarrollar, porque seguramente invirtieron millones de pesos en su elaboración con una plantilla enorme de programadores, quienes también atienden su mantenimiento. La diferencia radica en que Soft Restaurant (por ejemplo) es vendido a un gran número de empresas, logra resolver el problema una sola vez y a un bajo precio para empresas pequeñas que no podrían pagar su propio desarrollo de software.
Si estás interesado en una solución parecida, investiga cuáles son los software empaquetados que existen actualmente y que podrían ajustarse a tus necesidades. Antes de comprar, revisa bien qué funcionalidades o características tiene y cuáles son sus costos ocultos, pues a veces el negocio del software empaquetado está en el soporte y no tanto su venta. Otro punto importante que debo mencionar: No te vayas con el software empaquetado que tenga más botones y opciones. Piensa en la gente que trabaja en tu empresa, quienes pueden no ser muy hábiles para aprender un software.
Mis recomendaciones si buscas adquirir un software empaquetado son:
- Un software sencillo que te resuelva el problema puntualmente.
- Que sus costos de soporte sean accesible.
- Que tenga una buena documentación.
- Que tenga API que permita que otras aplicaciones puedan interactuar con el.
- Que sea un servicio en la nube.
- Que tengan un buen soporte técnico que responda rápido a tus problemas o dudas.
- Que permitan exportar tu información a algún formato que sea legible por otro sistema. Un ejemplo podría ser como Excel o XML, el cual es un formato universal para almacenamiento de información.
Si eres una empresa que actualmente ya está usando software empaquetado pero tienes problemas por que esta herramienta se está volviendo una camisa de fuerza que limita tus operaciones, entonces es tiempo de considerar un desarrollo a la medida.
Ahora bien, es cierto que el desarrollo a la medida no es fácil, y se dice que la mayoría de las veces que una empresa toma la decisión adentrarse a un proyecto de ese tipo, es por que el dolor de muelas es insoportable y piensan que un sistema a la medida es la solución. La verdad es que esto es una verdad a medias.
Si tu dolor de muela es insoportable, es por que tienes muchas cabos sueltos dentro de tu negocio, los cuales necesitas poner en orden. Estos cabos suelen ser invisibles por el poco control que tienes sobre la empresa y sus procesos productivos, ingresos y egresos. Durante el proceso de un desarrollo a la medida, estos problemas se harán visibles y se tendrán que ir resolviendo uno por uno.
En mi experiencia, siempre que llego a cotizar un desarrollo a la medida generalmente escucho esta frase “es algo muy sencillo y simple, no quiero nada complicado”. Nada más alejado de la realidad porque se suele pensar y creer que el problema que tiene una empresa es algo muy puntual que puede resolverse con solo 2 simples formularios que ayudará a recolectar y ordenar toda la información que tienen dispersa, para finalmente “resolver todos sus problemas”.
Al iniciar el proceso de desarrollo es necesario adentrarnos a entender el negocio de nuestro cliente tan bien como lo conocen ellos. Lo interesante del asunto, si es que cuentas con una empresa dedicada al desarrollo de software, es que poseemos una ventaja maravillosa: Al ser agentes externos, carecemos de ceguera de taller y podemos ver de forma más clara y evidente las causas raíz de los problemas que tienen nuestros clientes.
Luego de detectar dichas causas, nos acercamos a nuestro clientes para explicarles que los 2 formularios que nos solicitaron puede que no resuelvan totalmente su problema. Si el cliente lo gusta, podemos realizar dichos formularios, cobrar el desarrollo y salir corriendo con el dinero, pero lo más sano es que primero resuelvan las raíces de sus problemas para entonces sí programar un desarrollo.
Es por eso que es muy importante, al momento de desarrollar un software a la medida, revisar los siguientes puntos:
- Identificar la causas raíz del problema que se busca resolver.
- Resolver un problema a la vez.
- Ser conscientes de lo que implica un desarrollo a la medida, con sus respectivos costos de desarrollo y de mantenimiento.
Pero estos temas los trataré más adelante en otro artículo para entrar en más detalles sobre cuál es el proceso de un desarrollo a la medida.
Hola
Me gustaría saber si me podrían ayudar a desarrollar un software para venta de todos tipos de celulares, Tablet, computadora de mesa, laptop y demás que tenga la opción para hacer crédito
Hola, Juan Ruiz. Hemos respondido a su solicitud, vía email.