Como programador, es posible que en algún momento te hayas planteado buscar proyectos (o se han puesto en contacto contigo) para programarlos en tu tiempo libre y sacarte un pequeño sobresueldo, coger experiencia en el trato con clientes, etc. Hay varios puntos importantes que creo que “obviamos” cuando queremos dar este paso y que son muy importantes si no queremos fracasar estrepitosamente.
Habrá bastantes más puntos que añadir a esta lista (no dudes en dejar tu opinión en los comentarios), pero estos son algunos de los más importantes bajo mi punto de vista y por mi experiencia personal:
1) Si no has participado en el análisis del proyecto, exige un documento de funcionalidad o especificación donde se explique con detalle como debe funcionar. Tener una visión muy general del proyecto hará que tengas dudas o desarrolles alguna funcionalidad que no se corresponde con lo que la otra parte tenía en mente. Si has participado, doy por hecho que tienes una visión más específica de lo que hay que hacer. Aún así, escribe ese documento para tenerlo todo claro.
2) Si solo vas a programar y no diseñar/maquetar, debes pedir el diseño cuanto antes por diferentes motivos: si ya tienes el diseño, es más rápido empezar a situar cada sección en el lugar adecuado, algo sin diseño es “feo” de enseñar, etc. Un cambio de diseño a mitad de proyecto puede echar por tierra lo que has hecho hasta ahora (especialmente sensible en el caso de apps móviles).
3) Estable tu precio/hora o precio por proyecto (recomendado para proyectos largos) y se inflexible en este aspecto. No rebajes el precio pensando que si no no te aceptarán el presupuesto. Cobres más o cobres menos, te exigirán los plazos, funcionalidades, etc. y trabajarás las mismas horas o más.
4) Cualquier cambio en la los requisitos o en el documento de funcionalidad, lo deberás cobrar aparte o pactar dejarlo para una segunda fase. Esos cambios a mitad de desarrollo pueden “matar” tu motivación en el proyecto, aumentarán las horas de programación, tu estrés para llegar a la fecha de entrega (por que eso si que no variará aunque se produzcan cambios en mitad del proyecto), etc. Piensa en el punto anterior e imagina que has rebajado el precio para que aceptaran el presupuesto.
5) Exige cobrar un porcentaje al empezar el desarrollo y el resto al entregarlo. Imagina que no te llegan a pagar o deciden pagarte menos de lo que acordasteis.
6) Establece un día a la semana para enseñar lo que has programado hasta ese momento y exige feedback. Es importante que vayas mostrando tu trabajo y que la otra parte de el visto bueno. Asegúrate de que lo prueban de verdad (registros en la base de datos, logs, etc.) y no que solo le hayan echado un vistazo “por encima”.
7) Sé consciente de las horas que vas a trabajar. No hagas la estimación pensando que harás más horas al día para poder llegar antes a la fecha de entrega y que así te acepten el presupuesto. Si trabajas por cuenta ajena solo tendrás las tardes/noches para realizar el trabajo. Piensa que no podrás dedicar todo ese tiempo “libre” al proyecto ya que siempre hay imprevistos: ir a hacer la compra, sales tarde de la oficina, vienen unos amigos, quieres ir al gimnasio, etc. Recuerda que al día siguiente tienes que madrugar para ir a trabajar de nuevo (el trabajo que realmente te da de comer) y debes ir descansado.
8) Relacionado con el punto anterior y que merece un apartado separado: No descuides a tu familia (mujer, novia, amigos, etc.) por querer dedicar más horas al proyecto. Piensa por un momento: Has estimado que vas a trabajar más horas al día para poder dar una fecha de entrega más cercana, rebajaste tu precio/hora para que te aceptaran el presupuesto, estás cansado ya que no duermes las horas necesarias, discutes con tu mujer por que te estás pasando todo el mes en el ordenador, día estresante en la oficina por que ha habido problemas en uno de los proyectos, etc. Resultado: Desmotivación total y absoluta.
Como puedes ver, he utilizado mucho la palabra “exige“. Si, tu también debes exigir cosas ya que la otra parte te exigirá a ti constantemente, dejándote prácticamente toda la responsabilidad y, por tanto, toda la culpa si se retrasa la fecha de entrega o si hay cosas que no están bien (aunque sea algo que la otra parte no lo había pensado en detalle o que una vez programado no lo ha probado lo suficiente).
Cada cliente es un mundo. No pienses que porque conozcas personalmente (o por Twitter, Linkedin, etc.) al cliente, debes fiarte y obviar alguno de los puntos anteriores. También depende del proyecto y, si es corto, puedes sacrificarte una o dos semanas y meterle horas, aunque no lo recomiendo si supera ese tiempo.
Si te sientes identificado o piensas que falta algún punto importante, hazlo en los comentarios!
Etiquetas: clientes, cuenta ajena, Desarrollo, freelance, precio por hora, programación, programadores, proyectos
Sublime Text 2 es un editor de texto que se está haciendo muy popular debido a su facilidad de uso y su entorno minimalista. Sublime Text 2 hace que solo te concentres en el código que estás escribiendo.
Si nos descargamos el programa desde su propia web, descubrimos que al descomprimirlo se trata de una carpeta donde se encuentra todo lo necesario para ejecutar el programa. Cada vez que queramos abrirlo, debemos entrar en esta carpeta y ejecutar el archivo de la aplicación (también podemos crear un acceso directo en el escritorio). En esta carpeta no encontraremos ni siquiera el icono de Sublime Text 2.
¿Cómo solucionarlo?
- Primero nos descargamos el icono del programa para que el lanzador quede “bonito”
- Creamos un enlace de la aplicación a la carpeta /usr/bin/:
sudo ln -s /home/jonseg/sublime-text-2/sublime_text /usr/bin/sublime_text |
- Copiamos el icono que nos hemos descargado antes al directorio donde se encuentran los iconos del sistema:
sudo cp sublime.png /usr/share/icons/ |
- Creamos el archivo sublime.desktop con el siguiente contenido:
[Desktop Entry] Version=2.0 Type=Application Name=Sublime Text 2 Comment=Editor Sublime Text 2 TryExec=sublime_text Exec=sublime_text %F Icon=/usr/share/icons/sublime.png MimeType=text/plain; |
Y lo copiamos al directorio /usr/share/applications/:
sudo cp sublime.desktop /usr/share/applications/ |
Y listo. Si pulsamos la tecla de Windows de nuestro teclado (en Unity), el resultado debe ser algo parecido a esto:
Etiquetas: Desarrollo, editor, ide, programación, sublime text, sublime text 2
Netbeans es mi IDE de desarrollo favorito cuando estoy programando en PHP. Podemos mejorar nuestra productividad utilizando Netbeans haciendo uso de sus numerosos atajos de teclado que nos facilitará el trabajo. Aunque sé que hay bastantes más (y por supuesto para otros lenguajes), voy a intentar enumerar los más útiles que conozco. Si vosotros conocéis alguno más, no dudéis en escribir un comentario y lo añadiré al post.
Vamos a ver a continuación unos atajos para escribir código mucho más rápido con Netbeans. Tan solo tendremos que escribir la primera palabra que se indica y pulsar la tecla del tabulador.
foreach ($array as $value) { } |
foreach ($array as $key => $value) { } |
if (true) { } |
switch ($categoriesLlistat) { case $value: break; default: break; } |
while (true) { } |
while ($row = mysql_fetch_array($query)) { } |
while ($row = mysql_fetch_object($query)) { } |
while ($row = mysql_fetch_row($query)) { } |
También se pueden generar atajos de código definidos por nosotros mismos. Ese es un tema que da para otro post
Etiquetas: atajos, netbeans, php, phpdoc, productividad, programación, teclado