Las habilidades sociales del programador

download Las habilidades sociales del programador

If you can't read please download the document

description

Un panorama muy general y personal sobre las habilidades personales y de equipo que todo programador debiera procurar. Dado en el #shlcon, el viernes 19 de noviembre de 2010.

Transcript of Las habilidades sociales del programador

  • 1. Las habilidades sociales del programador Viernes 19 de noviembre de 2010

2. programador? Ser buen programador es una tarea muy noble y difcil... 3. Cursos Los clsicos: Hunt. A. y Thomas, D. The pragmatic Programmer McConnell, S. Code complete McConnell, S. Rapid development Beck, K. Extreme Programming Explained Los ensayos de Paul Graham y Eric Raymond A programar se aprende en la tecla 4. Habilidades bsicas del programador Depurar Dividir espacialmente los problemas Encontrar bugs, incluidos los intermitentes Remover errores Analizar un log Entender problemas de rendimiento Optimizar loops Administrar memoria y E/S Disear Aprender lenguajes de comunicacin (XML, UML, SQL) Conducir experimentos Trabajar con cdigo pobre Hacer pruebas de unidad, integracin y de stress Aprender nuevas habilidades y herramientas Analizar informacin Utilizar lenguajes incrustados Elegir (o conformarse con) el lenguaje adecuado Desarrollar el talento del equipo Obtener lo mejor de los colaboradores Lidiar con problemas aburridos Recolectar informacin para el proyecto Pensar en escalabilidad y crecimiento del sistema... 5. ... pero todo ello es un juego de nios comparado a todo lo que debemos hacer para tener xito tanto con el cliente como con los colegas. 6. men 10 I habilidades frente al proyecto 01 I habilidades frente a la computadora 11 I habilidades frente a las personas 7. Frente a la computadora 01 8. Encontrar informacin Internet ... tambin los libros (fsicos o electrnicos) La gente como fuente de informacin Redes sociales En la propia empresa 9. Horas frente a la PC Horas frente al monitor Tomar descansos cuando se pierda la cabeza Reconocer cundo ir a casa 10. Aprender mecanografa 11. habilidades frente al proyecto 10 12. Utilizar un sistema de control de versiones Organizacin Respaldo Historial Salud mental 13. Cmo permanecer motivado Los programadores se motivan altamente por crear artefactos tiles, bellos y hbiles. Mantener la curiosidad Usar el mejor lenguaje para cada proyecto Buscar la oportunidad de aplicar nuevas herramientas, lenguajes y tecnologas Buscar aprender o ensear algo, por muy pequeo que sea, en cada proyecto 14. Ganarse la confianza Ser visible Responsable e informativo dentro y fuera del equipo Sin miedo de negativa ante solicitudes de favores irrazonables Evitar pretender saber algo que se desconozca 15. Equilibrio de cdigo Equilibrar espacio y tiempo - procesador y memoria Balancear brevedad y abstraccin Equilibrar calidad y tiempo de desarrollo Documentar sabiamente 16. Estimacin Divide et impera Administrar el tiempo de desarrollo Decidir entre comprar o desarrollar. Vale la pena insertar dependencias? Decidir si el software es demasiado inmaduro Cmo diferenciar lo difcil de lo imposible Camino hacia la respuesta: SCRUM y los mtodos giles Cuidado: Qu tanto ha contribuido el desarrollo gil? 17. habilidades frente a las personas 003 18. La administracin de recursos humanos es el conjunto de tcnicas destinadas a promover el desempeo eficiente de las personas, organizndolas en colaboracin para alcanzar objetivos individuales y de grupo relacionados directa o indirectamente con el trabajo. www.gestipolis.com El programador es el animal social que para sobrevivir depende de la comunicacin con su equipo. El programador avanzado es el animal social cuya satisfaccin depende de la comunicacin fuera de su equipo. Robert L. Read 19. Recuerden: las juntas cuestan su duracin multiplicada por el nmero de participantes Comunicacin con el equipo Comunicar la cantidad adecuada 20. Elogiar en pblico y criticar en privado Estar en desacuerdo honestamente y salir bien librado 21. Cmo decirle a la gente lo que no quiere or Ofrecer alternativas de solucin al mismo tiempo. De los peores ejemplos: No pude solucionarlo a tiempo y la programacin se recorrer. 22. Lidiar con gente difcil Cuando los patrones de comportamiento conocidos no encajan en el lugar de trabajo: Respetarlos apropiadamente El conflicto no puede durar mucho tiempo Observa: son inteligentes y tienen algo que decir El desacuerdo se puede resolver con gran paciencia Resistir el anzuelo a agrandar el conflicto Tomar decisiones meditadas 23. Mucho ms que bostezos... El lenguaje corporal 24. Fuente: www.bodylanguagecards.com 25. Fuente: www.bodylanguagecards.com 26. Comunicacin con el resto del mundo La gente es inteligente, mas le falta el aspecto tcnico 27. Entender al usuario: Lo que dice querer Lo que quiere decir 28. Tirar los mitos gerenciales Siempre es mejor ms documentacin (la quieren mientras no se invierta tiempo en ello) 29. Los programadores pueden equipararse 30. Se pueden agregar recursos a un proyecto avanzado para agilizarlo. 31. Es posible estimar confiablemente el desarrollo de software. 32. El rendimiento de los programadores se puede medir en trminos de mtrica simple, como lneas de cdigo. 33. Cmo lidiar con el caos organizacional? 34. Los ingenieros tienen el poder de crear y sostener 35. bibliografa008 Read, Robert L. How to be a Programmer. Texto en lnea: http://samizdat.mines.edu/howto/HowToBeAProgrammer.html Comunidad Scrum: http://comunidadscrum.wordpress.com/ Imgenes http://www.formaselect.com http://www.ecologiaverde.com http://unfccc.int/portal_espanol/essential_background/feeling_the_ heat/items/3376.php http://faircompanies.com/news/view/productos-ayer-y-hoy-un- nuevo-diseno-industrial/