Reglas de las empresas de software.

La gente en general, suele tener muchas ideas, lo difícil es llevarlas a cabo. Los proyectos de software tratan de mejorar la vida de la gente que los usa. Hoy día las reglas han cambiado mucho. Si el código es bueno la idea puede tener una posibilidad. Pero si el código es malo no importa como de brillante sea la idea o la estrategia, porque la startup no llegará muy lejos. En los comienzos de la industria del software, la calidad del código no tenía la importancia que tiene hoy día, y así grandes empresas se crearon y crecieron alrededor de grandes ideas y pésimo código. Hoy día, los competidores, los clientes y el mercado se han hecho muy exigentes, y sólo triunfan grandes ideas con un gran código detrás

1-Debes de tener Código

Hace 20 años, las compañías tecnológicas se fundaban alrededor de una idea escrita en una servilleta, hoy día necesitas un código fuente, un sistema probado y unos usuarios activos para que el mercado te escuche. El software debe de ser creado mejor que antaño. Necesitas estar en constante evolución para poder responder a las demandas de los clientes. Definitivamente las reglas del juego han cambiado

2-Mejor tener un técnico entre los fundadores

Si quieres triunfar en el software, necesitas fundadores tekis, apasionados de la tecnología y de la vida. Si no tienes un fundador así, lo primero que tienes que hacer es buscar a uno. Un MBA no te va a dar lo que necesitas para triunfar en esta industria, se necesita algo más. En los proyectos se necesita la impronta de un gran técnico, pero alguien que se crea y sienta el proyecto suyo. No es un empleado, es un creador tiene que ser partícipe y que sentir la idea, sino no funcionará

3-Programadores que amen el código

Los primeros sistemas con los que trabajamos en la industria del software, tenían muchos bugs, eran inestables, duros de mantener y evolucionar. Hoy día eso se acabó. Hoy día se necesitan a los mejores técnicos que sepan lo que tienen que hacer y deben de cumplir reglas básicas:

  1. Amar el código
  2. Escribir de una forma rápida y elegante
  3. Programar Sencillo y claro
  4. Capacidad de abstracción
  5. Buscar la calidad y la estabilidad
  6. Programación Práctica

4-Equipos de desarrollo pequeños y sólidos

Un equipo de 3 o 4 excelentes programadores avanzan más rápido en un sistema que un grupo numeroso. Un pequeño grupo de buenas estrellas que tengan el objetivo claro y amen el código llegarán más lejos de un equipo de 20 programadores. Siempre estamos hablando de un sólo sistema. Lo mejor es tener un equipo pequeño de programadores por cada sistema. El libro mythical man-month book demuestra como se escalan los proyectos introduciendo más programadores a un proyecto, está demostrado que un sistema de software de desarrollo no es escalable, por introducir más programadores no irás más rápido, todo lo contrario se aumenta la ineficiencia en el sistema. La verdad que los proyectos de software de éxito de hoy día son desarrollados por grupos de no más de 5 buenos programadores. Sin ir más lejos los grupos de desarrollo de Google son formados por 5 ingenieros. Menos es más si introducimos la variable de calidad y solidez en el desarrollo de software. Mejor gastarse el presupuesto en 4 programadores buenos que en 10 normales. Contrata a los mejores programadores que encuentres, procura que sean felices y el código empezará a fluir. Los programadores son como los artistas.

5- La selección, lo más importante

La selección es la una parte fundamental de el proceso de RRHH, en el caso de los programadores es un punto esencial. Es mejor no coger un programador que contratar a uno que no va a estar dentro de un año o que la calidad de su código no es la que se pretende. Debes realizar muy bien la selección y hacer una serie de preguntas básicas. A preguntar en la entrevista:

  1. Estructuras de datos y algoritmos
  2. Trata con preguntas claras y concisas de saber si tiene conocimiento en el lenguaje, da igual cúal. Debe conocer bien el lenguaje con el que va a programar
  3. Comprueba si sabe analizar
  4. Comprueba si tiene capacidad de abstracción
  5. Debe de saber y conocer lo importante de hacer test y buscar la estabilidad
  6. Lo más importante el candidato necesita demostrar que ama el código simple y elegante Siempre pregunta por ejemplos de código. Haz algún tipo de test limitado en tiempo para que resuelvan algún tipo de problema o algoritmo

6-No necesitas Managers sino Arquitectos

Para liderar este tipo de equipos no necesitas gestores, sino personas de perfil técnico que tengan una visión clara del objetivo final. Los ingenieros que trabajan en una startup tienen que ser jóvenes (al menos de espíritu) y estar hambrientos de escribir código. Conozco gente con 45 años hambrienta de escribir código y gente con 32 que está cansada de picar. Lo más importante es que tengan hambre de código de calidad. La pasión es necesaria para conseguir programar lo que parece imposible. Por tanto para dirigir ha este tipo de grupos de trabajo lo mejor son arquitectos y personas de perfíl técnico que amen el código por encima del management

7- Agile culture

Al principio debes de redefinir el código para satisfacer los requerimientos empresariales y estar seguro de que el sistema es diseñado e implementado correctamente. Los valores de la Agile Culture son:

  1. Código Limpio y elegante
  2. Refactoring continuo
  3. Foco en el equipo y controlar el ego personal
  4. Lo más difícil: Sentido Común.

8- No reinventes

En internet hay miles de librerías que pueden ayudar a tu equipo, no reescribas código existente, es una perdida de tiempo para ti y posiblemente no lo harás mucho mejor. A tu manera no es mejor, es perder el tiempo. Basado en el artículo: http://blog.adaptiveblue.com/?p=765

Alfonso Gutiérrez

Alfonso Gutiérrez

Emprendedor tech con 18+ años creando software empresarial.