¿Cómo crear un buen departamento de programación en tu empresa?

Una de las preguntas más inquietantes e importantes a la que cada empresa que se dedica a programar y vender software hoy en día le tiene que buscar una respuesta es cómo construir un gran equipo interno de desarrolladores, es decir, cómo crear un buen departamento de programación en la empresa. En este artículo explicaré cómo lo hacen las empresas de software en las que he trabajado y que les ha funcionado.

La mejor manera de crear un buen producto es contratando un buen equipo para la tarea, obviamente. Sin embargo, reunir a un buen equipo y asegurarse de que funcionan bien entre sí es un proceso largo, que toma muchísimo tiempo. Perder tiempo no es un lujo que una empresa se pueda permitir, por lo que minimizar el tiempo necesario para construir un gran equipo de desarrollo de software en cualquier empresa debe ser una prioridad.

Superada la fase inicial, en la que los programadores de la empresa suelen ser los propios fundadores de las mismas, o un empresario que contrata a un equipo externo dedicado a la programación de su idea de producto de software, hay que consolidar el proyecto y para ello muchas start-ups y programadores autónomos apuestan por construir un departamento de programación.

Antes de ponernos a montar un departamento de programación para la empresa debemos tener en cuenta las ventajas y los inconvenientes de tener un departamento de programación interno.

Ventajas e inconvenientes de montar un equipo de desarrollo

Lo ideal para cualquier empresa de software es tener su propio equipo de programadores, que implica que los fundadores (sean ellos mismos programadores o emprendedores que han creado un software haciendo uso de desarrolladores externos) tiene que saber delegar y también elegir el momento perfecto para hacerlo.

¿Cuándo se debe empezar a montar un departamento de programación? Sinceramente, lo mejor es que se haga SOLO cuando el producto ya se ha lanzado y el proyecto es sostenible. En ese momento la empresa será capaz de hacer frente a los costes que conlleva montar un departamento de desarrollo, ya sea por vía de la financiación o por los ingresos generados. Hay que tener en cuenta que:

  • Los desarrolladores internos están en nómina. Ya estén a pleno rendimiento añadiéndole mayor valor al producto o dedicándole su tiempo a garantizar que el producto funciona de manera estable por medio de mantenimientos, tienen que cobrar sus nóminas mes a mes.
  • Los desarrolladores internos y los analistas de software son piezas fundamentales a la hora de hacer equipo, fijar los flujos y procedimientos de trabajo, y de darle vida a la cultura de la empresa. Es un proceso largo de muchos años y cualquier error o equivocación en la base del proyecto puede ser muy costoso a largo plazo.
  • Las incorporaciones al equipo de desarrollo deben hacerse de una en una, y esto no es una tarea sencilla. Esto implica que algunas partes del producto o algunas iteraciones en su evolución se tienen que posponer hasta que no se contrate al especialista más indicado. Se puede ir tirando con un la ayuda de externos, pero lo óptimo es que todos los puestos claves estén cubiertos por miembros de la empresa.
  • Lo más normal es que se contrate a un único especialista para cubrir cada parte del flujo de trabajo. Si un especialista se va de vacaciones, deja el puesto o se ve obligado a coger un baja, su parte correspondiente del proceso de desarrollo se detiene. La substitución mediante externos puede ser una solución temporal, pero la redundancia en los puestos clave resulta fundamental para tener cubiertos los flujos en todo momento. Esto conlleva pagar dos sueldos, lógicamente. Una solución intermedia es tener algún miembro del equipo todoterreno, que pueda cubrir huecos sin tanta brillantez pero de forma resolutiva.

Sin embargo, la creación de equipos de desarrollo de software internos tiene un impacto positivo en la evolución de cualquier empresa de software que quiere crecer por muchas razones:

  • Experiencia continuada y conocimiento en profundidad del producto que se está programando. El equipo de programación que trabaja en el producto de software en el día a día lo conoce mejor que cualquier externo y puede evaluar mejor el estado actual de los problemas. Además puede aportar a la hora de tomar decisiones sobre la evolución del producto.
  • Cultura de empresa y plena disponibilidad. La plantilla desarrolla respeto y actitud positiva hacia la empresa si se les trata bien. Esto hace que el hecho de tener que meter horas y gestionar las incidencias fuera del horario laboral fijado sea más fácil si se de el caso.
  • La acumulación de destrezas aporta valor añadido. Si tu equipo de desarrollo está lo suficientemente motivado termina invirtiendo tiempo en adquirir nuevos conocimientos y destrezas de programación que los convierte en profesionales más valiosos. Lo normal es que también pidan un aumento de sueldo, sí, pero tener un equipo de desarrollo motivado a bordo es en sí mismo un gran activo. Un equipo de tales características puede aportar valor tanto a los clientes como a la propia empresa, haciéndola más atractiva a la hora de conseguir financiación y también a la hora de conseguir nuevas contrataciones.

Con todo esto no quiero desanimarte a la hora de crear un equipo de programación interno, simplemente aconsejar que solo se debe hacer cuando la empresa sea capaz de mantenerlo en el tiempo. Hasta entonces, es mejor que los socios fundadores sigan programando o contando con la ayuda de equipos externos.

3 consejos para crear un departamento de programación en la empresa

A continuación voy a enumerar y explicar 3 consejos que he visto que aplican las empresas de desarrollo de software en las que he trabajado. Hay otras cosas que son importantes, pero en mi opinión estos tres consejos son imprescindibles, independientemente de que haya otros factores que también hay que tener en cuenta, y que también se pueden aplicar a empresas de otros sectores que buscan crecer.

#1 Se necesita a un experto para contratar a un experto

Si tienes una pequeña empresa de software incipiente, quizás no puedes permitirte usar servicios de headhunters, pero en verdad no te hace falta si inviertes un poco de esfuerzo en buscar una figura que supla ese papel.

Como fundador de una empresa de software, puede que tengas una idea muy clara del problema real que tu software busca solucionar y que sepas de programación y bastante, pero NO se espera de ti que seas un hombre-orquesta que sepas de desarrollo front-end, de desarrollo back-end, de pruebas de unidad, de desarrollo para móviles iOS/Android y todas las demás facetas dentro del ciclo de desarrollo. Por ello, necesitas la ayuda de expertos.

Los expertos en cualquier campo necesitan estar visibles. Suelen mostrarse activos en blogs, en foros, en grupos de programación o en meetups y eventos del estilo. Es bueno tenerlos de mano para intentar obtener su ayuda o asesoramiento. Lo normal es que colaboren por el tipo de perfil que son.

Muchos de ellos te pueden dar la pista para que encuentres al candidato ideal, o incluso postularse ellos mismos para el cargo. Pero la información más importante que podemos obtener de ellos son los detalles del perfil que necesitamos en relación con la pila tecnológica que debe saber gestionar, como debe interactuar con otros perfiles de programación. Además, incluso puedes negociar con dicho experto que te ayude a la hora de hacer las entrevistas y evaluar a los candidatos a nivel técnico.

La opinión de un externo de confianza es muy importante a la hora de tomar cualquier decisión de este tipo.

#2 Evalúa a los candidatos con pruebas de programación

Una vez que cuentas con al ayuda de algún experto de confianza, puedes empezar a poner los medios para intentar que tu equipo de desarrollo tenga el nivel que necesitas.

Es indispensable encontrar un buen jefe de programación. Los buenos programadores que saben liderar suelen conocer bien cuales son sus fortalezas y sus debilidades y no se asustan ante tareas complejas ni les intimida la sana competencia dentro del propio equipo de programación. Además, si se establece un buen ambiento de trabajo, sabrán evaluar con buen juicio la complejidad de las tareas y delegar al miembro del equipo mejor cualificado para llevar a cabo la misma.

Tanto para encontrar un buen líder para el departamento como para escoger al resto del equipo, en muchas empresas que están empezando usan la figura del experto que hemos citado arriba para crear pruebas de programación que sirvan para evaluar las destrezas de los candidatos. La idea es que tenga cierta complejidad técnica, especialmente en el caso del prospecto a líder del departamento, ya que el perfil que buscamos en este caso tiene que estar curtido en la resolución de problemas. Tiene que programar como un veterano, independientemente de la edad que tenga. Con este tipo de pruebas puedes hacer un corte que te permita seleccionar a los tres mejores para realizar una entrevista personal. En mi opinión el mejor candidato llegados a esta fase será el que tenga las mejores habilidades blandas, es decir, un buen comunicador, un líder con confianza en si mismo, y un ejecutor diligente que sea capaz de supervisar el trabajo con eficiencia.

Un buen líder de un departamento de programación debe tener las siguientes habilidades blandas:

  • Comunicación: la habilidad blanda más importante para un desarrollador. Tiene que saber cómo expresarse y tener buenas habilidades comunicativas para poder hablar con el equipo y sus compañeros de manera efectiva, sin malentendidos, con asertividad y empatía.
  • Pensamiento crítico: en una revisión de código, esta es la habilidad que se busca. Cuestionarlo todo e ir tras las respuestas,
  • Adaptación: la tecnología cambia cada día. Nuevos frameworks, nuevos productos, nuevos compañeros en el equipo de desarrollo… ¡Todo es nuevo cíclicamente! Tiene que saber readaptarse estudiando nuevos lenguajes de programación, nuevas bibliotecas y estar siempre preparado para los cambios.

#3 Monta el equipo y empieza a trabajar

Si la evolución del producto de software de tu empresa no es demasiada compleja, la contratación de un par de programadores especialistas junto con un perfil de diseño será suficiente para formar la columna vertebral del equipo. Si el proyecto es desafiante y complejo, tendrás que pasar un poco más de tiempo contratando a más perfiles para añadir más músculo. Ten en cuenta que un jefe de programación fuerte tenderá a querer contratar ejecutantes fáciles de gestionar aunque técnicamente tengan margen de mejora, y esto es bueno para tu proyecto empresarial cuando se empieza. Repita los pasos 2 a 3 hasta que te sientas seguro de que el equipo que has construido es capaz de lidiar con el trabajo diario.

Conclusiones finales

Parece que ya estás listo para arrancar, ¿no? Sin embargo, hay ciertas complicaciones obvias que mencionamos al describir las diferencias entre la contratación de un equipo dedicado de desarrolladores de software y la construcción de un equipo de este tipo desde cero en la casa.

Las dificultades incluyen (pero no se limitan) a la necesidad de pagar los salarios desde el primer día, el hecho de que el producto no puede se puede completar si algún especialista no está contratado todavía y el riesgo de frenar o detener el progreso general si alguno de los miembros del equipo decide dejar la empresa.

Ten todo esto en cuenta antes de dar el paso, y luego disfruta del viaje.

 

Este artículo ¿Cómo crear un buen departamento de programación en tu empresa? es original de Velneo.

5 formas de agilizar tus proyectos de desarrollo de software

¿Tienes una empresa de software? ¿Trabajas en un departamento de informática de una empresa? ¿Programas software de gestión y empresarial? Si cualquiera de los supuestos anteriores son tu caso, lo que quizás te produzca más satisfacción en tu trabajo es solucionar los problemas de tus clientes mediante tus desarrollos de software. Para poder centrarte en el cliente solucionar sus problemas tienes que poder hacerlo.

No siempre se puede. La tecnología en sí misma suele ser compleja y nos pasamos muchas horas delante de un ordenador solucionando problemas de tecnología que no están directamente relacionados con los problemas del cliente. Configuraciones, integraciones, entornos, lenguajes, movilidad… Hoy en día las exigencias son muchas, y las herramientas de desarrollo y sus ecosistemas nos pueden llegar a abrumar.

Lo más importante hoy en día es saber discernir el polvo de la paja y saber elegir qué tecnología es la idónea para cada tipo de proyecto de desarrollo siguiendo el siguiente criterio: elegir la tecnología que te permita centrarte más en el cliente y en la resolución de sus problemas empresariales.

En este artículo vamos a explicar 5 formas de agilizar tus proyectos de desarrollo de software empresarial para que te puedas centrar más en resolver los problemas de tus clientes.

#1 Reduce los tiempos de desarrollo

El tiempo es la madre del cordero. Si necesitas más tiempo para programar, menos tiempo tienes para analizar los flujos de valor de tus clientes, y al final tu software será de peor calidad, por muy bien que hayas estructurado el código y demás aspectos internos del software.

Busca una herramienta que te permita transformar tu manera de programar aplicaciones empresariales, que te asista en la parte técnica sin engorros y que te permita plasmar los análisis de forma sencilla. Además de permitirte hacer mejores análisis, a medio plazo vas a poder conseguir más rentabilidad en la implantación y en los mantenimientos puesto que cualquier modificación en el software será más fácil de hacer si desde el principio has elegido la herramienta adecuada.

#2 Céntrate en tus clientes

Una vez que hayas elegido una plataforma de desarrollo que te ahorre dedicarle tiempo a problemas técnicos que no están directamente relacionados con tus clientes, puedes usar el tiempo para analizar y solucionar sus problemas. Programar detrás de una pantalla solo es parte del proceso. Tienes que generar valor, ser creativo, y ganarte el reconocimiento de tus clientes.

Si tienes un entorno de desarrollo que te cubre las espaldas, puedes dedicarle tu energía a lo importante, a satisfacer a tus clientes y a los usuarios, y a mejorar el software iterando sin grandes complicaciones. Otra ventaja de poder centrarte en tus clientes es que evitarás errores graves en el desarrollo que te ahorrará semanas de trabajo ya que si tienes tiempo para dedicarle al análisis y a entender bien los flujos de valor de tus clientes, las probabilidades de equivocarse y tener que introducir grandes cambios en el software en el futuro serán bajas. 

#3 Cloud, movilidad y multiplataforma

¿Despliegue local o en cloud? ¿Multidispostivo? ¿Multiplataforma? Te tiene que dar igual. Hay tecnologías que te permiten programar una vez y que el software se pueda ejecutar en múltiples dispositivos o sistemas operativos, o en cloud o en local sin tener que invertir trabajo en ello. Es importante elegir una tecnología que te permita darle salida a la multitud de requerimientos de tus clientes sin complicaciones.

#4 Busca rentabilidad inmediata

Hay entornos de desarrollo que ofrecen ofrece código empresarial abierto y personalizable, lo que también te ayuda a dedicarle menos tiempo a programar las cosas estándar y centrarte en las peculiaridades de la empresa del cliente. Así puedes ganar en productividad, implantando módulos estándar del tipo compras, ventas, almacén y contabilidad y luego ir iterando para adaptarlo a las necesidades específicas de tus clientes. 

De esta forma también puedes financiar tus proyectos de desarrollo a corto plazo y hacer los análisis en profundidad con la tranquilidad de tener ingresos.

#5 Busca apoyo directo del fabricante de la herramienta

Debido a la gran competencia que hay entre los fabricantes de herramientas de desarrollo, muchas de estas empresas han optado por establecer una relación directa y personal con los clientes para diferenciarse de la competencia. Si trabajas con un entorno de programación que te ofrece la posibilidad de poder coger el teléfono y hablar directamente con ellos en caso de que tengas una incidencia con tus clientes, te sientes más apoyado y de cara al cliente tienes más garantías de éxito a la hora de solucionar incidencias.

Por otro lado muchos fabricantes también ofrecen ya formación, asesoramiento técnico, consultoría, apoyo comercial. 

#6 Consejo extra

Si buscas una herramienta que cumpla los 5 requisitos enumerados arriba, no busques más, ya la tienes.

Este artículo 5 formas de agilizar tus proyectos de desarrollo de software es original de Velneo.

Seminario de Novedades de Velneo 23

El próximo jueves, 26 de abril, de 16:00 a 17:30 (zona horaria CEST) te invitamos a participar en un seminario online en el que te mostraremos las principales novedades de la nueva versión 23 de Velneo.

Porque nuestro compromiso es hacerte la vida más fácil como desarrollador de aplicaciones empresariales, queremos compartir contigo todo el trabajo que hemos realizado durante estos meses y qué mejor forma de hacerlo que en vivo, con todos vosotros y de la mano del equipo de Velneo.

¡No te lo pierdas, te esperamos!

Regístrate ahora: plazas limitadas

Este artículo Seminario de Novedades de Velneo 23 es original de Velneo.

5 formas de enseñar la metodología ágil a tu equipo de desarrollo

La metodología ágil

¿Qué es la metodología ágil? ¿Cómo se usa la metodología ágil de forma eficaz? La metodología ágil es una forma iterativa de enfocar la gestión de proyectos. En vez de usar un enfoque de “fase única”, las metodologías ágiles se adaptan a requerimientos cambiantes.

En software, desarrollo ágil exige retroalimentación o feedback por parte de clientes-usuarios y de equipos multi-funcionales para tener éxito. La metodología ágil es un enfoque en tiempo real a la gestión de proyectos que ayuda a gestionar el proceso de programación a medida que se va desarrollando, de forma progresiva a medida que va evolucionando.  Con la metodología ágil creas, incorporas retroalimentación a, pruebas y gestionas tus proyectos, todo ello de manera simultánea.

Según un estudio de mercado llevado a cabo por el Instituto de Gestión de Proyectos en 2015, las organizaciones que siguen metodologías ágiles rinden mejor que aquellas que no lo hacen. Por ejemplo:

  • alcanzan el 75% de sus objetivos mientras que las empresas no-ágiles alcanzan el 56%
  • el 65% de proyectos terminados en plazo frente al 40% de organizaciones no ágiles
  • tiene un crecimiento en términos de facturación un 37% más rápido
  • las organizaciones ágiles generan un 30% más de beneficios

Parece obvio que el hecho de utilizar metodologías ágiles tiene sus ventajas, y los que más se benefician de esta forma de enfocar la gestión de proyectos son los equipos de desarrollo.

Si ya estás convencido y preparado para aprender cómo enseñarle la metodología ágil a tu equipo de progarmadores, sigue leyendo las siguientes 5 formas de enseñar la metodología ágil a tu equipo de desarrollo. Es mejor seguir estasf formas que quererlo imponerlo por la fuerza y sin hacer pedagogía del mismo. Estos métodos para implantarlo en tu equipo o departamento de programación sí funcionan.

A. Crea tareas y ejercicios usando el Manifiesto Ágil

El primer paso que podemos dar para introducir a tu equipo de programación en las metodologías ágiles es mostrarles el Manifiesto Ágil. Se fundamenta en 12 principios básicos:

  1. Nuestra principal prioridad es satisfacer al cliente a través de la entrega temprana y continua de software con valor.
  2. Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.
  3. Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al período de tiempo más corto posible.
  4. Los responsables del negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto.
  5. Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan, y confiarles la ejecución del trabajo.
  6. El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus miembros es la conversación cara a cara.
  7. El software funcionando es la medida principal de progreso.
  8. Los procesos ágiles promueven el desarrollo sostenido. Los promotores, desarrolladores y usuarios debemos mantener un ritmo constante de forma indefinida.
  9. La atención continua a la excelencia técnica y al buen diseño mejora la agilidad.
  10. La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.
  11. Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados.
  12. A intervalos regulares, el equipo reflexiona sobre cómo ser más efectivo para, a continuación, ajustar y perfeccionar su comportamiento en consecuencia.

Puedes enseñar estos principios a través de ejercicios y tareas como los que hay en Growing Agile.

El énfasis de estos ejercicios está mas en descubrir y aprender cosas uno por sí mismo, en lugar de simplemente enseñar.

Por ejemplo, comienza preguntando a tu equipo sobre el manifiesto ágil enumerado arriba. Que discutan los principios entre ellos. Luego, haz una sesión de tormenta de ideas con tu equipo para enumerar los principios que serán efectivos en las discusiones grupales. A continuación, puedes darles una tarea escrita para aplicar los principios a sus estilos actuales de desarrollo de software. El objetivo de estas tareas es adoptar y memorizar los principios.

Una gran manera de enseñar lo básico, especialmente para equipos de tecnología recién formados, es crear un simple ejercicio de rellenar los espacios como se ve en el diagrama de abajo.

B. Centra la formación en hacer cosas de en la práctica y no en la teoría

La metodología ágil como mejor se aprende es con casos reales. Hay diferentes formas de aplicar la metodología ágil como con Scrum, XP, Crystal, y Kanban, que quizás los miembros de tu equipo conozcan en un plano teórico ya que es un tema muy de moda, pero lo ideal es poder aprender sobre ello en la práctica con ejemplos reales. La formación “en vivo” con casos reales es recomendable para aquellos que tengan un nivel intermedio y avanzado en metodologías ágiles. Sigue , a modo de guía, los siguientes pasos para ayudarle a tu equipo de programación aprender ágil con ejemplos reales:

  1. Inicia un proyecto basado en tu metodología actual, como Scrum o XP
  2. Define el alcance y las metas del proyecto
  3. Marca las pautas de los requisitos del proyecto
  4. Desarrolla una funcionalidad de software
  5. Integra la función con los métodos ágiles
  6. Prueba la función
  7. Si la prueba es satisfactoria, pasa a la funcionalidad siguiente y repite los pasos 4-6
  8. Registra los errores si la prueba no tiene éxito e introduce cambios hasta que la funcionalidad funcione
  9. Reprioriza los objetivos del proyecto basándote en la retroalimentación del cliente
  10. Libera la funcionalidad al mercado, una vez que incorpores el feedback del cliente
  11. Pasa al siguiente producto y repite los pasos 4-10 hasta que se finalice el proyecto

(Sugerencia: puedes utilizar un software de gestión de proyectos ágil para conseguir aplicar este sistema correctamente la primera vez.)

Los pasos listados arriba son una muestra básica de cómo hacer formación en real con metodologías ágiles. El truco básicamente consiste eb aplicar ágil a tu proyecto actual. La formación con un proyecto en desarrollo es una gran forma de transferir conocimiento en vez de simplemente enseñarlo sin practicarlo.

3. Cursos online de certificaciones Scrum y Kanban

Una de las mejores formas de implementar Ágil es hacer que el equipo haga cursos de certificación online. Esta forma de hacerlo puede ser un poco más caro que hacer formación presencial en la empresa para todos a la vez, pero es mejor a la hora de ahorrar esfuerzos a los responsables de equipo y además permite que cada uno se gestione mejor el tiempo y los esfuerzos. Un curso recomendable sobre metodologías ágiles es el impartido online por Javier Garzás.

4. Pon el énfasis en “nosotros”, no en el “yo”

La colaboración tiene que estar en el centro de la implementación de metodologías ágiles para que el proceso funcione como es debido. Esto se debe a que las partes más importantes de la metodología ágil son el cliente y equipos multi-funcionales. Tiene que existir una comunicación efectiva e inclusión para que puedan proporcionar iteraciones válidas para crear el producto final.

Durante la formación en metodologías ágiles hay que insistir mucho en los marcos de colaboración. Incluye casos de uso en las sesiones formativas con proyectos reales para remarcar cómo los clientes pueden colaborar en el producto final.

Debes centrartee en crear un entorno colaborativo y centrado en el usuario. El primer paso es reorganizar la dinámica del equipo para crear oportunidades de colaboración. Que los miembros de su equipo técnico trabajen juntos en pares, tanto programando como haciendo pruebas.

5. Contrata a un “coach” ágil

Antes de contratar a un coach ágil es importante conocer tu presupuesto y tu cronología. Coordina proyectos en real con los que tu equipo técnico esté trabajando usando métodologías ágiles. Un entrenador ágil debe usar ejemplos de desarrollo en real de proyectos existentes para hacer que la capacitación sea más relevante para tu equipo.

Hay dos estilos de coaching ágil: uno basado en push y otro basado en pull.

El coaching basado en pull inconscientemente compromete a los miembros del equipo a adaptar los principios y los valores dando retroalimentación consistente y alentadora. Este método facilita el aprendizaje con una mínima implicación por parte del coach. La técnica de coaching basada en push es cuando el coach juega un papel directo en la impartición del conocimiento.

¿Quieres saber más sobre metologías ágiles?

Este artículo es simplemente una modesta introducción en cómo empezar a formar a tu equipo de desarrollo de software en metodologías ágiles.

Si quieres saber más sobre metodologías ágiles te recomendamos este libro y que visites el blog de Javier Garzás, que ha impartido varias sesiones de formación de metodologías ágiles en nuestra empresa y por el cual sentimos aprecio profesional y personal.

Este artículo 5 formas de enseñar la metodología ágil a tu equipo de desarrollo es original de Velneo.

11 consejos para gestionar mejor el tiempo desarrollando software

gestión de tiempo programadores

La cantidad de destrezas y habilidades que tiene que tener un desarrollador de software es interminable. Pero los desarrolladores que verdaderamente llaman la atención de los empleadores, son los que han aprendido a dominar la gestión del tiempo.

Saber como gestionar bien el tiempo no es fácil, y se necesita auto-disciplina para utilizar el tiempo de la forma más valiosa, fiable y eficiente posible. Esto es aplicable a los profesionales de cualquier industria, y cuanto mayor sea tu posición y más desafiantes tus tareas, más importante resulta tener una gestión de tiempo óptima.

En la empresa de software en la que trabajo, siempre hay miles de cosas pasando a la vez. Los responsables de desarrollo de software deben saber mantenerse a flote para triunfar, y lo mismo sucede con cualquier desarrollador o miembro del equipo de programación.

En este artículo repasaremos 11 consejos para gestionar mejor el tiempo desarrollando software, para ganar en rentabilidad empresarial y en felicidad personal.

#1 Fija un plan

La planificación lo es todo en la vida. Siempre hablamos de esto a la hora de crear software: el 80% de tu energía se va en investigar y analizar, y el 20% en hacer el trabajo real. El tiempo que le dediques a la planificación no consume tanto tiempo, es igual de importante que toda la investigación y el análisis que haces a la hora de desarrollar software.

Hay muchas personas que se planifican el tiempo a primera hora de la mañana, viendo qué tareas importantes tienen que completar ese día. Otra opción más eficiente es planificar el día la tarde anterior antes de dejar la oficina, así al día siguiente cuando llegues ya puedes poner toda tu energía en hacer las cosas, sin dedicarle esfuerzo a planificarlas.

Lleva una agenda física, una hoja de cálculo, un software tipo to-do-list, el medio da lo mismo. Gestiona las inevitables interrupciones con sentido, y solo atiende a lo urgente: una reunión de emergencia con un cliente o un asunto personal que no puede esperar, pero vuelve a tu lista de tareas lo antes posible y pon toda tu energía en completarla.

#2 Ponle prioridad a tus tareas

Ahora que ya te has puesto el día anterior a enumerar las tareas, fija la prioridad de las mismas siguiendo un criterio de dificultad. Normalmente el día anterior ya puedes ordenarlas por orden de dificultad, poniendo la más difícil en primer lugar. Yo siempre intento hacer 5 tareas diarias que van bajando en dificultad a medida que avanza el día. Si arrancas el día haciendo primero las cosas sencillas lo normal es que no llegues con la suficiente energía para afrontar las tareas más arduas luego y al final las acabas posponiendo…

Si eres una persona que alcanza el pico de energía por la tarde (son menos pero existen…), ordena tus tareas acorde a tu ritmo. Pero para el resto de los mortales, que solemos estar más frescos por las mañanas, lo mejor es acometer las tareas más difíciles pronto en el día. Siguiendo esta norma serás capaz de duplicar tu productividad en muy poco tiempo. ¡Inténtalo y verás!

#3 Divide las tareas grandes en sub-tareas

Si tienes que hacer algo que toma muchas horas o quizás días de trabajo, como tener que programar un algoritmo que te va a tomar 30 horas, lo mejor es dividir la tarea en micro-tareas y destinarle una hora o dos cada día a ese proyecto. Así, tu mente no se agota y evitará que tengas un sentimiento de fracaso si no eres capaz de rematar la tarea en esas 30 horas seguidas. Lo normal es que dedicándole 30 horas en 15 días en tramos de 2 horas, termines la actividad con éxito ya que son horas de máxima energía y concentración.

#4 Delega cuando sea necesario

No te engañes, si alguien en tu equipo puede hacer una tarea mejor y en menor tiempo que tú, pídeles que la hagan. Todos tenemos destrezas que nos diferencian, y cuando todo el mundo trabaja al unísono, las cosas ruedan mucho más fácil. Asegúrate de que los demás cuenten contigo para que desarrolles tus habilidades que te hacen diferencial.  Este consejo no solo te hará gestionar mejor el tiempo a ti, sino también el de la empresa.

#5 Planifica periodos de ruptura

Este consejo es muy importante. Planifica periodos que te permitan romper con la actividad para leer emails o mensajes instantáneos. Y si eres responsable, usa este periodo para celebrar reuniones exprés (7-10 minuto máximo). A no ser que algo sea extremadamente importante, puede esperar a tratarse en este periodo disruptivo. En los demás momentos elimina las notificaciones, cierra el email y demás para no tener la tentación de ir a verlo.

Muchas personas se fijan dos periodos de ruptura al día, uno a media mañana y uno a media tarde, para contestar emails y dudas de los compañeros. Por lo general solo me toma 15 minutos de media cada periodo que le dedico a esto, así que piensa cuánto tiempo se pierde si permites que te rompan el ritmo de trabajo en cualquier momento sin estos periodos de ruptura.

aplicaciones, empresa, a medida

#6 Planifica un tiempo de parada diario

También es recomendable reservarse un poco de tiempo para uno mismo durante la jornada laboral, ya sea salir a dar un paseo de 10 minutos al aire libre o desconectar de la pantalla del ordenador para ojear un libro o una revista. Siempre me planifico tiempos de parada, nunca me salto la comida a no ser que tenga que cumplir con un plazo imposible, o si tengo una reunión con cliente procuro hacerla a la hora de comer para asegurarme de que salgo un rato de la oficina.

#7 Rehuye de hacer multi-tareas

Muchas personas se vanaglorian de su capacidad de hacer varias tareas a la vez, pero cuando la mente salta de un tema a otro, toma unos 15 minutos volver a enfocarse plenamente de nuevo en la tarea que estabas haciendo.

Hacer multi-tareas nubla la concentración ya que se pierde mucha energía al volver a enfocarte en las tareas. Es mejor mantenerse focalizado en una única tarea durante el tiempo que le has asignado, y luego pasa a la siguiente.

#8 Trabaja tu disciplina

Trabaja tu disciplina todos los días. Esto incluye temas no relacionados con el trabajo que te ayudarán a estar más sano y ser más productivo. Por ejemplo, procura por lo menos comer sano y dormir lo suficiente, ya que te ayudarán a controlar el estrés.

Mantente alejado de las distracciones, redes sociales y plataformas de venta online por citar dos roba-tiempos, pueden restarle mucho tiempo a tu trabajo, destrozando tu productividad.

# 9 Prepara las reuniones con antelación

Revisa las actas, lleva preparadas tus intervenciones y no te salgas de los puntos del día. Si todos lo hiciéramos, las reuniones tendrían mejor reputación y todo el mundo acudiría feliz. Si llevas tu parte preparada le haces un favor a todo el mundo. Piensa que las reuniones de una hora entre ocho personas son ocho horas de trabajo real que se van por la borda.

 # 10 Comunica tu forma de organizarte

Si tus compañeros saben que tienes un plan para gestionar mejor tu tiempo , que tienes momentos para atender preguntas, momentos para ir a reuniones y momentos de concentración total, y que son importantes para ti, verás como el propio entorno te ayuda en el proceso y evita hacerte perder el tiempo. Pero para ello todos tienen que ser plenamente conscientes de tu plan, y tus horas. Al principio cuesta, pero si eres constante al final todos se adaptan ya que a nadie le gusta tener la sensación de estar molestando o distrayendo a un compañero.

# 11 Sé feliz

Sé feliz, no productivo. Esto quiere decir que el principal motivo que hay detrás de gestionar bien el tiempo es tu bienestar personal. Trabajar vas a tener que trabajar igual, a no ser que te toque la lotería o algo por el estilo, y ya que estás, organízate, completa tus tareas, y gana tiempo para ti. Evidentemente tu empresa lo va a agradecer, pero la felicidad de tener más tiempo para uno es algo no tiene precio.

El éxito se puede medir de muchas maneras, desde crear un software líder del séctor hasta tener una empresa de desarrollo que facture millones de euros, pero la mayoría de estos casos de éxito van ligadas a una gran gestión del tiempo. Si quieres que bajen tus niveles de estrés y ver una mejora en tu rendimiento, usa estos consejos y síguelos con rigor.

Este artículo 11 consejos para gestionar mejor el tiempo desarrollando software es original de Velneo.

¿Eres desarrollador? No te pagan por escribir código


No te pagan por escribir código. Ser un desarrollador de software es mucho más que simplemente escribir código. Con la ascenso de las startups, se ha consolidado una cultura de los denominados “soft skills” (habilidades blandas) en la industria del software y que ha venido para quedarse.

En primer lugar, necesitamos definir habilidades duras. Las habilidades duras son, principalmente, las habilidades técnicas de tu puesto de trabajo. Los desarrolladores de software deben saber cómo codificar, y eso es una habilidad difícil.

Por otro lado, las habilidades blandas son atributos relacionados principalmente con el área social. Cada habilidad blanda está relacionada de alguna manera con una de las habilidades duras de tu trabajo.

Estas son las habilidades blandas que debe tener un buen desarrollador de software:

  • Comunicación: la habilidad blanda más importante para un desarrollador. Tienes que saber cómo expresarte y tener buenas habilidades comunicativas para poder hablar con tu equipo y tus compañeros de manera efectiva, sin malentendidos, con asertividad y empatía.
  • Pensamiento crítico: en una revisión de código, esta es la habilidad que se busca. Cuestionarlo todo e ir tras las respuestas,
  • Adaptación: la tecnología cambia cada día. Nuevos frameworks, nuevos productos, nuevos compañeros en el equipo de desarrollo… ¡Todo es nuevo cíclicamente! Tienes que readaptarte estudiando nuevos lenguajes de programación, nuevas bibliotecas y estar siempre preparado para los cambios.

Entonces, ¿no me pagan por escribir código?

La respuesta es clara y meridiana. Definitivamente no. Se te paga para resolver problemas. Crear código es sólo la herramienta que utilizas para resolverlos.

En el mundo de la programación las habilidades blandas se están volviendo cada día más importantes. Como desarrollador de software, es muy importante entender a fondo lo que estás programando, qué software voy a entregar y dónde reside la propuesta de valor del producto en forma de código que estás escribiendo.

En el desarrollo de software, lo normal es que te contraten para resolver un problema empresarial usando tu experiencia. Los problemas empresariales son problemas de producto. La única responsabilidad del producto es aportar valor a los procesos empresariales, al igual que cada hora de tu trabajo.

Ahora bien, ¿cómo identificar los problemas empresariales?

Resolver problemas es fácil…

Resolver problemas es fácil. Encontrar los problemas, los reales, los que hay que atajar, eso es lo difícil. Para ser más precisos, encontrar en qué lugares podemos generar valor es realmente complicado. Y esto puede parecer que no está realmente relacionado con ninguna “habilidad suave” ya que tiene aparentemente nada que ver con otros seres humanos, sino que en principio tiene que ver únicamente con el diseño y el desarrollo de los productos de software que generan valor.

Pero en realidad el diseño y el desarrollo de un producto de software no se puede crear de espaldas a las personas/usuarios/clientes cuyo problema quieres solucionar…¿qué sentido tiene eso? Ninguno.

Muchas veces como desarrolladores nos centramos en el código, en el producto, y no le prestamos suficiente atención a cómo hacer el software que quieren nuestros clientes. Nos encerramos a escribir código, a crear módulos y funcionalidades para todo y para todos. Ese camino te lleva directamente al desastre empresarial con un retorno de la inversión bajísimo.

Lo más importante es entender a la perfección las necesidades de los clientes y filtrar esa información para ofrecerles la funcionalidad que necesitan con el mínimo código. ¿Por qué? Porque si tienes un módulo que cubre el 80% de lo que necesitan tus clientes ganarás en rentabilidad. ¿Si te piden una funcionalidad no estándar? Pues le pasas un buen presupuesto con una tarifa de mantenimiento elevada para disuadirles. Decir que no en forma de presupuesto al fin y al cabo también es decir que no.

¿Cómo centrarme en el cliente?

Además de querer centrarte en los clientes para entender perfectamente sus necesidades y poder ofrecerles la máxima funcionalidad que necesitan (que en la mayoría de los casos no tiene nada que ver con lo que te piden) con el mínimo código, tienes que poder hacerlo.

Si tu objetivo es aportar valor y tener un retorno de la inversión alto, la mejor estrategia es apostar por un segmento de mercado muy concreto, idear un software vertical para dicho segmento, y reutilizar código y módulos que resuelva la problemática de dicho nicho escogido mejor que ningún otro. Eso es solucionar problemas, y así aportas valor a una problemática empresarial sin apenas competencia.

Por ejemplo, puedes hacer programar un CRM más, una de esas agendas mastodónticas a modo de base de datos de clientes, o puedes crear un CRM especializado en una problemática específica que ayude a los equipos comerciales a cumplir sus objetivos de venta. ¿Qué software aporta más valor a una problemática empresarial concreta? La respuesta es evidente.

Apuesta por tecnología que te permita poner el foco en el cliente

Para poder centrarte en el cliente para aportar valor a un problemática empresarial concreta y obtener un alto retorno de la inversión, además de apostar por un vertical y reutilizar código, también necesitas una tecnología que te permita centrarte en cliente.

Aquí la clave reside en apostar por plataformas de desarrollo especializadas en el tipo de software de desarrollo que haces. Si programas vídeojuegos en C# y .NET  serás mucho menos rentable que si utilizas una plataforma específicamente diseñada para ello como Unity.

Si diseñas aplicaciones empresariales y software para la gestión de datos, puedes optar también por arrancar tu proyecto en cualquier tecnología generalista o multi-propósito, He visto productos de software muy buenos hechos en tecnologías que lo mismo sirven para programar web que programar aplicaciones de contabilidad. Otra cosa es el ROI de esos productos. Y no solo a la hora de programarlo, sino a la hora de mantenerlo. Una buena pregunta aquí es plantearse cómo presupuestar tu software.

Entonces, si no me pagan por programar código, ¿por qué me pagan?

Te pagan por solucionar problemas, normalmente de naturaleza empresarial.

Te pagan por refinar destrezas blandas que no están directamente relacionadas con solo escribir código, pero que sí afectan a tus desarrollos y a tu forma de trabajar con tu equipo y con tus clientes.

Te pagan por saber identificar aquellos problemas que sí son importantes para tu cliente aunque él no lo sepa.

Te pagan por desarrollar software que cubra el 80% de la funcionalidad que necesita tu cliente con el mínimo código posible.

Te pagan por saber escribir código y crear módulos reutilizables para una solución vertical que aporte mucho valor al usuario.

Y finalmente, te pagan por saber elegir qué tecnología tienes que utilizar en tus proyectos para obtener el máximo retorno de la inversión posible.

Los malos desarrolladores salen caros. No seas uno de ellos.

Este artículo ¿Eres desarrollador? No te pagan por escribir código es original de Velneo.

¿Buscas una alternativa a Clarion para el desarrollo de aplicaciones de bases de datos?

alternativa clarion programación

Si tenemos en cuenta los números sin más consideraciones, la mayoría de los desarrolladores que se acercan a Velneo provienen de Visual Basic y .NET, y en menor medida de Java y Visual FoxPro, y no de Clarion. Es simplemente una cuestión de volumen: hay muchos más desarrolladores buscando alternativas a Visual Basic/.NET, FoxPro y a Java para el desarrollo de aplicaciones empresariales que de Clarion por el simple hecho de hay muchos más, es así de simple.

Sin embargo, si tenemos en cuenta aspectos diferentes al volumen como la satisfacción general, la curva de aprendizaje con la que los programadores de Clarion, los tiempos de desarrollo y en general el buen encaje que tiene la filosofía de Velneo como alternativa a Clarion para los desarrolladores de este entorno de desarrollo.

En este artículo explicaremos brevemente por qué Velneo tiene tan buena acogida en la comunidad de Clarion.

¿Qué es Clarion en comparación con Velneo?

Clarion es un lenguaje de programación y un entorno de desarrollo integrado, y está concebida para el desarrollo de software de bases de datos, y por ello muchas empresas de desarrollo que utilizan Clarion se han especializado en el desarrollo de aplicaciones empresariales y de gestión de administraciones públicas. Puede acceder a diferentes tipos de bases de datos. Es para ejecutar sobre el sistema operativo Windows.

Velneo es una plataforma de desarrollo de aplicaciones empresariales, que cuenta con su propio tipo de lenguaje de programación, y que también especializada para programar software empresarial y de bases de datos. Velneo cuenta con su propia base de datos, específicamente diseñada para dar fiabilidad, robustez y seguridad a la base de datos de las aplicaciones, a su rápido desarrollo y su fácil mantenimiento y edición. Velneo es multiplataforma (Linux, Windows, MacOS) y la plataforma está orientada también a la movilidad .

Muchos desarrolladores que se acercan a Velneo piensan que una base de datos cerrada es una limitación hasta que no hacen su primera aplicación y perciben todas las ventajas de una base de datos especializada para la programación y el mantenimiento de aplicaciones para empresas, como el uso de los inspectores para hacer refactorizaciones automáticas.

¿Cuál ha sido la trayectoria de Clarion y de Velneo hasta hoy?

En este sentido tanto Clarion como Velneo son dos entornos de desarrollo con un amplio recorrido y han evolucionado tecnológicamente hasta nuestros días.

Clarion fue probablemente una de las primeras herramientas de programación informática de cuarta generación (4GL), desarrollada por primera vez en la década de 1980. La primera versión era un producto para DOS y salió en Abril de 1986. Hay 11 versiones de Clarion, que ahora está comercializada por la empresa softvelocity.com.

Velneo por su parte es la evolución natural de Velázquez Visual, con muchos avances técnicos y un crecimiento imparable. Si te gustaba Velázquez Visual, Velneo es la evolución tecnológica que necesitas. Cloud y local, movilidad, multiplataforma, y mucho más con toda la potencia y fiabilidad de siempre.

Hereda más de 25 años de conocimiento. Aspira a ser ya la plataforma de desarrollo más longeva en países de habla hispana, de crecimiento sostenible y en pleno proceso de expansión.

Velneo cuenta con una comunidad muy satisfecha, una tecnología madura y en constante desarrollo, con dos versiones anuales, para garantizar la satisfacción de nuestros desarrolladores y sus clientes.

Hoy Velneo vende sus productos y servicios a programadores y empresas de desarrollo en más de 25 países de todo el mundo, y cuenta con una base de más de 15.000 empresas y más de 450.000 usuarios.

¿Cuáles son las principales diferencias entre Clarion y Velneo a la hora de desarrollar aplicaciones empresariales?

El entorno de desarrollo de Clarion (IDE) esta asentado sobre el lenguaje de programación Clarion. El IDE proporciona facilidades para la generación de código a través de un sistema de plantillas que permite a los programadores describir el programa desde un nivel superior más abstracto que las instrucciones de código reales. El generador entonces convierte este nivel más alto en código, que entonces se compila y se enlaza usando un compilador y un vinculador normales. Esta capa de generación a veces se conoce como programación 4GL (lenguaje de cuarta generación). Es lo que se conoce como un generador de código.

Si las plantillas se utilizan para generar código, los programadores pueden inyectar su propio código en el código generado para modificar o extender la funcionalidad que ofrece la capa de la plantilla. Este proceso de incrustación de código se puede hacer mientras se visualiza el código generado circundante. Esta mezcla de código de plantilla y código generado permite actualizar la configuración de la plantilla y regenerar el código, sin perder el código incrustado.

Las plantillas (desde las que se genera el código) se proporcionan en código abierto y los desarrolladores son libres de crear sus propias plantillas. Hay varias plantillas que han sido programadas por muchos desarrolladores distintos, algunos de los cuales se ofrecen como complementos comerciales y algunos de los cuales son gratuitos.

Hay varios productos del Clarion disponibles; Clarion Professional Edition, Clarion Enterprise Edition y Clarion.NET.

Velneo está programado en C++ con librerías QT. Desarrollar una aplicación empresarial puede requerir el uso de múltiples tecnologías lo que complica el desarrollo, implantación y mantenimiento. La plataforma de desarrollo Velneo apoyada en las librerías de Qt permite desarrollar una única vez e implantar el mismo desarrollo de la aplicación en múltiples sistemas operativos (Windows, Linux, macOS, Android e iOS), ejecutándose de forma nativa en todos los sistemas para obtener el mejor rendimiento.

La base de datos integrada, el refactoring de objetos y los inspectores avanzados hacen que el mantenimiento y evolución de tus aplicaciones se agilicen como nunca. Velneo incluye software en código abierto con el que ahorras miles de horas en el desarrollo de cualquier aplicación, acelerando los plazos de entrega y la calidad de los desarrollos. Un punto fuerte de la plataforma es que fue diseñada para obtener el mejor rendimiento en el despliegue de aplicaciones en Cloud. Velneo es multi-idioma y para la comunidad de desarrolladores dispone de todos los recursos y servicios en español.

Velneo destaca por su gran practicidad, robustez e integración y pretende crear una nueva filosofía en el desarrollo eficaz y rentable de aplicaciones empresariales. Así, se dirige a innovadores que creen en una tecnología de calidad, en tendencias y no en modas pasajeras, que saben reconocer productos de valor y no activos basados en marketing.

Velneo se comercializa por distintos Niveles de producto, que van desde el Nivel 1 gratuito de prueba, el Nivel 2 para la evaluación profesional de la plataforma, y los Niveles 3 y 4 para el desarrollo profesional de aplicaciones empresariales.

¿Por qué Velneo tiene tan buena acogida entre la comunidad de Clarion?

Como dice Jesús Arboleya, un buen programa nace del trabajo que realizan los buenos desarrolladores no de que el lenguaje o herramienta utilizada sean buenas, ya que en realidad no existen buenas o malas herramientas sino malas selecciones o usos de herramientas de forma inadecuada.

Un buen programador es capaz de desarrollar buen software con cualquier herramienta. Un mal programador no será capaz de desarrollar buen software con ninguna herramienta.

Una empresa de desarrollo puede en función del proyecto optar por una tecnología u otra. Tanto Clarion como Velneo son como pequeños secretos de la industria que en el momento de dar soluciones rápidas con aplicaciones confiables, son herramientas una herramienta como pocas.

La idea de optar por la practicidad, robustez e integración es una filosofía compartida tanto por Clarion como por Velneo en el desarrollo eficaz y rentable de aplicaciones empresariales.

A Velneo se nos acercan personas que programan en .NET, en PHP o en JAVA, y muchas veces optan por Velneo para algunos proyectos porque les permite crear aplicaciones empresariales en un periodo de tiempo inimaginable con otros lenguajes.

Muchos de los desarrolladores en Clarion que se acercan a Velneo nos cuentan que también en muy poco tiempo pueden generar una aplicación completa y la pueden integrar con otras tecnologías sin muchos problemas, y que en otros lenguajes como PHP tardarían mucho más tiempo, ya por no hablar de hacerlo en Java o en .NET.

En ese sentido, los desarrolladores de Clarion (y de forma muy parecida los de FoxPro) enseguida captan el concepto de desarrollo ágil de aplicaciones empresariales y de bases de datos que proporciona Velneo. Son herramientas que te permiten centrarte más en la problemática de cada cliente, ya que la tecnología la tienes cubierta siempre que la herramienta encaje con el tipo de desarrollo en cuestión: software de gestión de datos, aplicaciones empresariales, sanitarias, ERP, etc…

El futuro de Clarion y Velneo

No quiero en post hablar del futuro de Clarion puesto que es un tema que no nos concierne. La comunidad de desarrolladores de Clarion saben perfectamente como está el asunto a día de hoy.

Sin embargo, Velneo desde su evolución desde Velázquez Visual hasta nuestros días , tiene un recorrido ya de 25 años en el mercado. Evolucionamos Velázquez para convertirnos en la plataforma de desarrollo de habla hispana más longeva del mercado.

Un gran paso en esta evolución ha sido desarrollar de cero la plataforma sobre C++ con librerías Qt, pero basándonos en la filosofía de Velázquez Visual. ¿Por qué? Porque nos da mucha tranquilidad de cara a la evolución tecnológica de una plataforma que aspira a seguir creciendo durante los próximos 25 años como mínimo.

De C++ qué decir. Es un lenguaje universal, estándar, con mucho pasado, presente y futuro que permite desarrollar casi cualquier cosa y que nos asegura poder tener nuestra plataforma actualizada para muchos años. No hay mucho más que decir…

Por otro lado, las librerís Qt nos permiten demostrar al mundo que la tecnología se puede desarrollar de una manera diferente, basada en la investigación e innovación. Que la tecnología en la empresa es un medio y no un fin. De ahí la frase que resume nuestra filosofía: “Life is soft”, porque trabajamos para hacer lo complicado, sencillo y lo costoso, asequible y próximo.

Nos apoyamos en Qt para facilitar la vida a los programadores, con herramientas y plantillas creadas por ingenieros e informáticos que han resuelto sus mismos problemas y dudas. De esta forma pueden centrarse en dar soluciones a sus clientes, olvidándose de la tecnología. Y además, gracias a Qt, con un mismo desarrollo desplegamos en las principales plataformas: Windows, Linux, macOS, Android e iOS.

Con estas garantías tecnológicas el futuro de Velneo está asegurado. Si quieres probar Velneo o quieres más información no dudes en ponerte en contacto.

Este artículo ¿Buscas una alternativa a Clarion para el desarrollo de aplicaciones de bases de datos? es original de Velneo.

¿Cómo ser un programador muy productivo?

ser programador más productivo

Ser mejor o peor desarrollador de software no depende de la herramienta de software que utilices. Depende más de qué herramienta eliges según qué proyecto de software tengas enfrente. Lo mejor es tener una buena caja de herramientas y saber qué debo utilizar para según que cosa, y especializarse en un nicho de mercado que te permita sacarle la máxima rentabilidad a las herramientas de desarrollo por la que has optado.

Una vez que ya sabes qué plataforma de desarrollo tienes que usar para afrontar un proyecto de software y el nicho al que te vas a dirigir, hay una serie de consejos prácticos que te pueden ayudar a ser un programador más productivo.

5 claves para mejorar programando

¿Acabas de empezar a programar? ¿Llevas 10 años programando? Da igual, este artículo es para ti, siempre y cuando busques mejorar, ser buen programador y crecer profesionalmente. Vamos a explicar 5 claves para mejorar programando y poder optar a mejores puestos y evolucionar desarrollando software. Aquí van las reflexiones de un programador senior sobre este tema.

8 consejos para ser un programador más productivo

Tus horas de trabajo como programador suponen un coste para ti si eres trabajador autónomo o una inversión importante para tu empresa si trabajas por cuenta ajena. Todo consiste en usar el sentido común y retirar los obstáculos que te impiden trabajar al 100% de tus capacidades.

Los programadores en términos generales tenemos ingresos superiores a la media si nos comparamos con otros puestos de la oficina con igual experiencia y nivel de formación y en muchos lugares escasean los buenos programadores. No hace falta señalar que debido al coste por hora de un programador, tiene sentido que hagamos un esfuerzo por mejorar nuestra productividad. En cualquier caso, en este artículo vamos a compartir 8 consejos para ser un programador más productivo.

Deja de pensar inútilmente

Cuando hablo con otros desarrolladores sobre la complejidad de un código, a menudo me dicen que quieren escribir un código más sencillo, pero que los plazos o otros asuntos no les permiten tener el tiempo o el conocimiento necesario para completar la tarea, y muchísimo menos refinar hacia un código más simple.

La verdad es que poner más presión sobre los programadores tiende a que escriban códigos más complejos. Sin embargo, los plazos no deberían llevarnos a escribir un código más complejo. En vez de decir que un plazo no te permite escribir código sencillo, podríamos enfocarlo de la siguiente manera: no soy un programador lo suficientemente rápido para hacer esto sencillo. Es decir, cuanto más rápido seas como programador, menos afectado quedará  la calidad de tu código por los plazos. El secreto para programar rápido es dejar de pensar inútilmente.

Barreras que debes superar cuando estás aprendiendo a programar

Muchas personas de mi entorno viven de la programación de alguna u otra manera. Algunos son programadores de software de gestión empresarial, otros desarrolladores web, otros hacen consultoría, otros son analistas-programadores, y otros se dedican a formar a programadores novatos. Cada uno me habla sobre los motivos de éxito y de fracaso de un programa, o de una web, o de un curso de formación.

Pero, ¿qué  barreras debes sortear cuando estás aprendiendo a programar? ¿Cómo las superas? Aquí van 8 barreras que debes superar cuando aprendes a programar.

Artículos relacionados: 10 consejos para mejorar destrezas de programación y ser mejor desarrollador, Consejos para programadores de software, Consejos prácticos para programadores,

Este artículo ¿Cómo ser un programador muy productivo? es original de Velneo.

Desarrollar y vender tu propio ERP no tiene por qué ser tan complicado

¿Tienes en mente desarrollar tu propio ERP? ¿No quieres vender y distribuir el ERP de un tercero? ¿Te da miedo no poder programar un ERP en tu empresa sin que se vaya de plazo? ¿Buscas crear un ERP sólido de forma rápida siendo eficiente en costes? ¿Quieres poder identificar si un cliente necesita un ERP? ¿Quieres tener éxito vendiendo tu propio ERPs? Si la respuesta a alguna de las preguntas en tu caso es SÍ, este artículo te interesa. Mucho. Vayamos por partes.

¿Quieres programar tu propio ERP?

¿No quieres vender ni distribuir el ERP de un fabricante? Vale. Eso se puede hacer. Puedes optar por elegir un lenguaje de programación adecuado para tal tarea y empezar desde cero, módulo a módulo, personalizándolo para cada proyecto que te vaya saliendo. Esto evidentemente te va a tomar una eternidad.

Por otro lado, puedes optar por un ERP ya programado que te permita cierto grado de personalización, como pueden ser Open Bravo, odoo ERP, Axapta y similares. En momento dado esta solución puede ser útil, pero si eres una empresa de desarrollo que quiere tener un nombre en el mercado de los ERP poco valor aportas.

La tercera vía es elegir una plataforma de desarrollo especializada para la programación de software para empresas que te permita desarrollar un ERP en un tiempo más que razonable partiendo de una plantilla ERP que tenga ya pre-programada aquellas funciones comunes a todo ERP y que no aportan valor al cliente por ser estándar. Ello te permite dedicarle más tiempo a desarrollar personalizaciones para el cliente, algo que sí aporta valor y te hace tener un nombre en el mercado de los ERP. Si optas por esta vía no te pierdas este artículo: Velneo vERP frente a otras soluciones ERP: dudas más comunes ni este otro post: ¿Cuál es el mejor programa para desarrollar un ERP para vender?

¿Cuándo sé que un cliente necesita un ERP?

¿Quieres identificar oportunidades de venta de tu ERP entre tus clientes? Como programador de software de gestión empresarial, es importante detectar las necesidades de tu cliente. Muchas veces tus clientes no saben qué software necesitan y es importante estar ahí para hacerles consultoría y aconsejarles.

Hay signos que te pueden ayudar a detectar las necesidades de tu cliente. Por ejemplo, si notas que le cuesta cuadrar las cuentas financieras a fin de mes, o si sus previsiones de ventas se basan más en intuición que en los números, o si tienen problemas a la hora de dar salida al volumen de pedidos y sus clientes se muestran insatisfechos por ello, o si no tienen una idea precisa de cuánto inventario les queda en el almacén y no disponen de una manera sencilla de averiguarlo…

Dado que cada empresa de cada cliente es diferente, no hay un indicador único y sencillo que diga: “!Tu cliente X necesita un ERP ya!” Sin embargo, las empresas que más provecho le sacarían a un software ERP normalmente se enfrentan a las mismas dificultades y frustraciones. ¿La empresa de tu cliente tiene estos problemas? Sigue leyendo abajo para saber si la empresa de tu cliente está preparada para tener un ERP.

Si tu cliente tiene estos problemas, o si estos asuntos suenan a cosas que pasan en la empresa de tu cliente, quizás ha llegado el momento de ofrecerles un software ERP. Te recomiendo que leas este artículo: Cinco señales que indican que tu cliente necesita un ERP.

¿Quieres tener éxito vendiendo tu propio ERP?

Para tener éxito vendiendo un ERP hecho por ti o tu empresa primero tienes que hacer una composición de lugar y situarte. ¿Qué necesito hacer para vender con éxito este ERP?

Quizás necesitas editar una plantilla pre-programada de ERP como vERP lo justo para personalizarla con el logo del cliente y poco más, quizás la aplicación ERP que necesitas requiere de funcionalidades extra que no contiene Velneo vERP, o quizás necesitas programar directamente el núcleo de Velneo vERP incluyendo las funcionalidades adicionales y personalizándolo acorde con tus necesidades.

Sea cual sea la necesidad de tus clientes y la tuya, con Velneo vERP encontrarás una solución. Si te está convenciendo esta vía, te recomiendo el artículo: Quiero programar un ERP y ser rentable vendiéndolo.

Este artículo Desarrollar y vender tu propio ERP no tiene por qué ser tan complicado es original de Velneo.

11 razones por las que el desarrollo de software profesional nunca dejará de existir

desarrollo software, futuro, oficio

Intro

En primer lugar, ¿quién se atreve a vaticinar que habrá un tiempo en el que todo el mundo sepa y pueda programar?

Pero incluso si todo el mundo pudiera, hay 11 razones por las que el desarrollo de software será siempre relevante en el mercado laboral. Personalmente, creo que la razón 8 por sí misma es lo suficientemente contundente para que la programación como trabajo cualificado lo siga siendo para siempre.

Nunca llegará el momento en el que todo el mundo pueda programar. Hay un montón de gente que no tiene ningún interés en ser un desarrollador de software, y menos de aplicaciones empresariales y de software de bases de datos, muchísima…

Y eso es algo bueno también.

Algunas personas por difícil que parezca no disfrutan de la programación. Y a las personas que no les gusta, se deberían pasar la vida haciendo otras cosas.

Pero para las personas que sí les gusta el desarrollo de software, siempre será importante llegar a ser un programador profesional o un analista-programador o incluso ingeniero de software, y aquí explicaremos las 11 razones específicas por las que el desarrollo de software a nivel profesional/laboral nunca morirá:

#1 La tecnología siempre seguirá evolucionando

El teléfono, sí el smartphone, que tienes en el bolsillo procesa miles de millones (piensa 3,36 mil millones) más instrucciones por segundo que el ordenador de orientación del Apollo que nos llevó a la luna por primera vez.

#2 Las herramientas de programación serán más intuitivas y poderosas

Por poner un ejemplo, parece que cada semana del año sale un nuevo framework de JavaScript. Conclusión: no cabe otra que pensar y suponer que las herramientas de desarrollo que usamos son cada vez más poderosas, que incorporan continuas mejoras que hay que dominar y aprender.

# 3 Habrá herramientas de programación apropiadas para cada tipo de industria

El software se está comiendo al mundo y ya está presente en nichos y en sectores que hace solo un par de años era impensable e impredecible. Cada vez las herramientas de programación son a su vez más especializadas: herramientas para crear vídeo-juegos, herramientas para crear aplicaciones empresariales y software de gestión, herramientas para programar autómatas, etc…

#4 El mercado de trabajo seguirá adaptándose

A Velneo entran todos los meses programadores y empresas de desarrollo que aún programan en COBOL (por poner un ejemplo), y son empresas y programadores que están en el mercado laboral y que tienen proyectos. ¿Por qué? Pues con casos así te das cuenta de que los sistemas de software a veces pueden tomar un buen tiempo para adaptarse y actualizarse.

#5 Cualquier profesión podrá requerir cierta alfabetización en código

Las habilidades de programación son ya hoy en día relevantes incluso si no eres programador o no estás programando. Cosas como SQL, HTML/CSS, frameworks JavaScript pueden llegar a ser relevantes para técnicos de marketing, diseñadores, comerciales, y muchas otras profesiones. Cuando se dice que en un futuro más personas tendrán que saber sobre desarrollo, son estos oficios que tradicionalmente carecían de estas destrezas los que más van a cambiar. Eso no quita que siempre exista la figura del programador profesional.

programador porfesional

#6 Siempre habrá demanda de desarrolladores de software expertos para tareas complejas

La figura del programador o del ingeniero de software experimentado siempre existirá, y su trabajo consistirá en resolver problemas complejos. El mejor software del mundo está hecho por equipos humanos, y los equipos siempre tendrán que tener liderazgo humano.

#7 El aprendizaje automático no desplazará a los programadores

El machine learning o aprendizaje automático no pueden desplazar totalmente a los desarrolladores de software. Algunas de las mejores implementaciones de Inteligencia Artificial y aprendizaje automático los hace Google. Oye, ellos tienen más de 30.000 desarrolladores humanos…

#8 La civilización está cambiando y los ordenadores están en el centro de nuestras vidas

La cultura está cambiando y las computadoras se están volviendo relevantes en todos los aspectos de nuestra vida. Hace 5 años nunca hubieras pensado en sacar tu teléfono para localizar a un taxi por una app. Hoy en día, muchas personas usan el móvil para  comparar el tiempo de espera entre Lyft y Uber.

#9 Desarrollar software no es solo picar código

La ingeniería de software es mucho más que sólo escribir código. Analizar los problemas y comprender los procesos es más importante que conocer a fondo la sintaxis de un lenguaje de programación que se utiliza en un determinado momento en el tiempo en trayectoria profesional.

#10 Hay problemas que las máquinas no son capaces de solucionar bien

A menos que tengas una solución al problema del profesional de las ventas que viaja, todavía hay queda mucho progreso por hacer en el reino de la informática y el desarrollo de software.

#11 Existen proyectos de software antiguos que van a durar eternamente

Yo ya he impreso la documentación de ImageMagick para darles a mis futuros nietos…

Conclusión

Los desarrolladores de software siempre van a ser relevantes y necesarios. Estas son algunas máximas que tienes que interiorizar si te dedicas a la programación profesionalmente:

  • La programación siempre será una habilidad especializada
  • El software se está comiendo al mundo
  • El mundo sigue adaptándose a los ordenadores
  • Nunca ha habido un mejor momento para ser un programador, y debes estar agradecido cada día de vivir en la edad de oro del desarrollo de software.

 

Este artículo 11 razones por las que el desarrollo de software profesional nunca dejará de existir es original de Velneo.