He fracasado y he hecho software malo un montón de veces. No me enorgullece haberlo hecho sino el haberme dado cuenta de que hice cosas mal, por eso en esta mini guía pretendo enseñar en base a mis errores para que a otros no les suceda. Cuando uno estudia en la universidad, instituto o lo que sea no te enseñan lo feo de ser informático, ni cómo salir de eso, simplemente te enseñan a programar, pero tampoco te enseñan a ser lógico en la vida.
En mi caso pasé por la universidad e institutos, pero me cansé de estudiar y no aprender, con lo cual decidí lanzarme a la vida y simplemente trabajar, así que procederé a contar los errores que he notado que todos cometemos.
1.- Mal estimar los plazos.
Cuando crees que eres el mejor programador del mundo y que puedes sacar un sistema en 3 semanas, piénsalo de nuevo. Probablemente tengas todas las herramientas y los plazos muy relajados, pero siempre SIEMPRE hay imponderables y errores ínfimos en el código que te pueden tener horas pegado en 3 líneas de código. Siempre estima un 25% de holgura, sólo por si acaso. Si terminas antes, mejor.
2.- No conocer tu tecnología.
Se relaciona con el punto anterior, si crees que puedes sacar algo rápido y no conoces el lenguaje, te verás en graves problemas. Probablemente implicará que estarás más tiempo desarrollando, tu cliente (o jefe) se enojará y perderás horas dando explicaciones. O también está la opción de que la subvaloras, entonces para ti dices “nah, si en 5 días la tengo listo”.
3.- Comenta tu código, aunque seas el único que lo lea
Sucede que cuando entregaste un código, al cliente se le ocurre que quiere agregar una función y paf, a revisar código y en eso perderás horas. Por último comenta simple, un “esto suma a + b”.
4.- No saber cuánto cobrar
Valora tu hora de trabajo, el valor puede ir desde los 3.500 hasta los 25.000 por una hora cronológica de trabajo, dependiendo de lo que quieras desarrollar (y el lenguaje). Y si cobras poco por tu HH siempre cobra una base de 4HH (aunque te tome 1 ó 4 horas horas), como dicen por ahí “lo puedo hacer en 10 minutos pero cobraré por los años que me tomó aprender a hacerlo en 10 minutos”.
Además, si tu software contiene una base que desarrollaste antes (o es reventa de algo ya desarrollado por ti) licencialo más que venderlo. Es decir, ofrécele al cliente una licencia de uso perpetua, no transferible, no heredable, con la prohibición de uso del software en otros servidores que no sean los que te facilitaron para la instalación. Es común que cliente compre tu sw, y luego se lo regale al amigo. Ahora, si cliente no quiere licenciamiento, le cobras MUCHO más caro.
5.- No saber cuándo cobrar
Algunos cobran post-entrega del software, y ahí es cuando se los cagan (estafan). Otros cobran todo antes del desarrollo y ahí es cuando cagan al cliente. Siempre cobra un 40% inicial, un 30% contra la mitad del desarrollo y un 30% contra entrega
6.- Ofrece garantia
Tal cual cuando vas y te compras un notebook y este sale malo, puede sucederle a tu cliente cuando le desarrolles algo. Por eso ofrécele garantia de 2 ó 3 semanas después de la entrega, pero con excepciones, como prohibir que metan mano en el código. (sí, me han cobrado soporte en sistemas que han modificado)
7.- No saber cómo cobrar
Si no te pagan un sistema que ya está en producción, no lo bajes, se ve feo para ti y para el cliente, por ende él se enojará y menos te pagará. Por eso es importante el punto 8
8.- Firma contrato!
Haz un contrato tipo en el que cambies fecha, nombre del cliente y módulos a desarrollar. Coloca cláusulas de responsabilidad, y de uso del software (como por ejemplo prohibir que el cliente comparta parte del código). Si cualquiera no cumple (tú con entregas, o él con pagos) puedes demandar. Además, firmar un contrato de servicios en una notaría no te costará más de $20.000-
9.- No seguir perfeccionándote
Estudia, estudia, estudia y estudia. La informática es una “ciencia” de aprendizaje continuo, no te quedes en una sola tecnología porque pasará la micro y cuando venga la nueva oleada de lenguajes estarás desactualizado.
10.- El “No se puede” no existe
Si un cliente te pide algo que nunca has hecho no digas de rompe y raja “no se puede”, mejor dile la verdad “nunca lo he hecho, pero revisaré, cotizaré y te haré llegar dicha información”. Probablemente te des cuenta de que puedes desarrollarlo, como también no. Aparte el cliente se sentirá con la satisfacción de “este informático se la juega”.
11.- NUNCA PERO NUNCA hacer negocio con amigos
Es el peor error que puedes cometer es trabajar para un amigo. De hecho esto aplica a cualquier ámbito de la vida, nunca mezcles placer, amistad o familia con los negocios. Además, si te estafan perderás plata y un amigo.
11.- No peles a tus colegas
Bien sabemos que un buen porcentaje de los informáticos son chantas, y no porque salgan de X o Y institución académica, sino que porque no estudian, o porque literalmente pasaron chuplicando. Si ellos son chantas, allá ellos, tú se más profesional y no opines de su trabajo.
12.- Piensa 15 ó 20 veces antes de recomendar a alguien
Se basa en el punto anterior. Resulta que muchas veces conseguí prácticas y/o trabajos a compañeros (o colegas) y la dejaban botada, entonces el que tenía que dar las explicaciones era yo. Por eso piensa MUY bien antes de recomendar a alguien
13.- No saber limitar tu horario de trabajo
Trabaja como máximo 10 horas al día, no eres invencible, y te cansas aunque estés sentado frente a una pantalla. Además, si tienes familia te darás cuenta que no pasas tiempo con ellos, y aún más, puedes perderla (o a tu novia como me pasó alguna vez).
14.- Ejercítate y aliméntate bien
Sí, ¿qué tiene que ver esto con ser un buen programador? Resulta que si no haces ejercicio, y no te alimentas bien, tendrás muchas jaquecas o malestares físicos que no te permitirán trabajar correctamente.
15.- Ten un buen espacio de trabajo.
Evita los escritorios frontales, y busca uno más “esquinado” en el cual ambos codos descansen sobre el mismo, así te evitarás tendinitis, dolores de espalda y problemas a las articulaciones.
16.- Respalda, respalda y respalda
El peor error que cometemos es desarrollar algo, y luego dejarlo en el baúl de los recuerdos. Por eso respalda en algún repositorio tipo Github, Bibucket o por último en dropbox
17.- Aprende y Enseña
Insisto, no somos dioses, no lo sabemos todo. Por ende debemos ser capaces de escuchar lo que los demás tienen para enseñarnos, y nosotros ser capaces de enseñar a quienes quieran aprender. Si no quieres verte cara a cara con otros colegas, enseña a través de foros, grupos de facebook u otro medio digital.
18.- Una vez entregado llama, escribe
Cuando termines un desarrollo llama a tu cliente, pregùntale què tal està el sistema, què necesita, què màs requiere, asì hasta puede salir una mejora pagada 🙂
#eso, ojalá a alguien le sirva 🙂
Una respuesta a “Cómo ser un buen informático, y no morir en el intento.”
Pienso que uno de los puntos mas importantes es no saber cuanto cobrar y cuanto me voy a demorar en el desarrollo de un sistema.