Crea una empresa de software, olvida las start-up

Los dos mayores tiranos del mundo: la casualidad y el tiempo.

(Johann Gottfried)

 

Vivimos en la época de la comida rápida, del aprendizaje de idiomas en 10 min,  hacerte rico en 12 meses, perder peso en 7 días, conseguir abdominales en 4 semanas; en esta época existen las empresas fast-food, las denominan Start-up y también están de moda. Me resulta curioso, cuando más longevos somos, más rápido queremos que todo suceda, nos venden los milagros de tiempo y como inocentes caemos una y otra vez en esas estupideces que te prometen el éxito instantáneo en cualquier aspecto de tu vida.

¿Sabes qué?

Si quieres comer bien prueba un asado argentino que tardan 5 horas en preparar a fuego lento, si quieres aprender un idioma vete 3 años a vivir al país donde lo hablen, si quieres ser rico prepárate para trabajar como un cabrón el resto de tu vida, si quieres perder peso, sal a correr todos los días y come sano,… deja de perder tiempo con quimeras que te prometen resultados en poco tiempo y esfuerzo porque es lo mismo que jugar a lotería su porcentaje de éxito es muy bajo.

Un buen árbol tarda en crecer…..


startup-grow

 

Vender a empresas lleva tiempo

Si vendes software a empresas, olvídate de un pelotazo en pocos meses, simplemente no sucederá, las empresas tienen unos periodos de maduración grandes, fíjate en las empresas de moda en crecimiento rápido, Google, Facebook, Twitter, Instagram,… todos son servicios de internet dirigidos al mercado de consumo. El mercado empresarial es lento en maduración, se necesita mucho tiempo y esfuerzo para ir ganando cuota de mercado y clientes.

 

Al principio será duro

Los primeros años serán duros, no tendrás clientes, no tendrás producto y tendrás muchos gastos. Es la ley de las empresas de software, crear un buen software te llevará entre 5 a 10 años, el tiempo no se puede comprar, da igual cuantos programadores pongas, ni cuantos recursos, un niño necesita un tiempo de gestación de 9 meses. El software como el buen vino, necesita 10 años para llegar a su punto exacto de sabor, madurez y color.

 

Con el tiempo todo llega

Como el buen vino, el buen asado argentino, al final cuando tu producto está maduro, tu empresa también lo estará, las suscripciones pagarán tus nóminas, empezarás a crecer rápido, los clientes estarán satisfechos con tu producto, tu departamento comercial cumplirá sus cuotas y los clientes estarán satisfechos. Crea empresas pensando en 20 años, deja de jugar a la lotería esperando el retorno rápido. Prepárate para la aventura de tu vida.

 

 

 

Anuncios

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.

public

Basado en el artículo: http://blog.adaptiveblue.com/?p=765