Hace unos días en uno de los grupos de PHP argentinos, PHP-Arg, alguien hizo una pregunta interesante: ¿Qué hay que saber para trabajar en una empresa y en equipo como senior?
Varios mails después Mariano Garcia Berrotarán envió una de los mejores resúmenes que ví de lo que un programador Senior debe ser. Transcribo a continuación.
0 – Sabes usar un framework? alguna vez hiciste una aplicación entera usando el framework? deberías. Muchos arrancan con Symfony, Zend, Cake, Codeigniter, etc. Elegí el que mas te guste y aprendelo entero.
1 – Control de versiones: Una cosa es laburar uno solo o de a dos, pero cuando empezás a agregar gente es fundamental conocer *BIEN* un sistema de control de versiones. Git, Bazaar, Mercurial, SVN(Puaj). A mi lo que me sirvió fue elegir uno y aprenderlo (relativamente) bien, después es como mas fácil moverte (aunque a veces no). Conocer bien el workflow del cvs que estas usando te ahorra mucho tiempo y muchas horas de puteadas.
2 – Coding standards: Así como saber como mover el código entre muchos, también hay que saber como comunicarse con los otros. Hay tantos coding standards como programadores dando vuelta, Si estás usando un framework en particular, lee todo el coding standard trece millones de veces. Léelo mientras te lavas los dientes. Hasta que te salga natural. El código coherente es mucho mas fácil de leer. lo que nos lleva al siguiente punto:
3 – Aprendé a documentar: sabes usar phpdocumentor, dyoxigen? siempre es bueno saber documentar
4 – Aprendé a usar una tracking tool. Trac me ayudó a entender muchas otras herramientas. Planificá tu día con respecto a la cantidad de tickets que tenés.
5 – Planeamiento y manejo de los tiempos: Normalmente para agarrar una tarea y empezar a hacerla primero tenes que saber *que tenes que hacer* y *como lo tenes que hacer* y después tenés que planificar en cuanto tiempo lo vas a hacer. Eso es lo mas complicado para mi.
6 – Unit Testing: lo que no tiene tests está roto. Aprendé a hacer unit tests y correr una suite.
7 – Metodología: Si enganchas en una empresa relativamente grande, vas a tener que aprender las metodologías que usan. Agile es la mas común (aunque cada uno aplica el Agile como quiere). Tiene que haber documentos de cada procedimiento. Es importantísimo saber como te tenés que manejar, a quien tenés que escalar las cosas y a quien no tenés que joder.
8 – Buen Humor: La buena onda en un grupo grande (bueno, en cualquier lado en realidad) es fundamental. Normalmente los que mas se amargan y se calientan son los que primero se embolan y se van
Gracias, Mariano.

Periodicamente la compañia de datos
Hace ya un tiempo me sorprendió descubrir que la portatil Dell de mi esposa tenía la posibilidad de instalarle un chip de telefonia 3G para proveerle acceso a internet inalámbrica, eso me hizo preguntarme por que nadie había pensado ya en instalar modems de 3G en otros dispositivos. Aparentemente ya lo habían pensado otros.
