Uno de cada tres programadores, o gestores que trabajan directamente en proyectos de programación usan metodologías ágiles, y las han incorporado por propia iniciativa, no por instrucciones "corporativas". La implementación se produce "motu proprio" en equipos que trabajan en la misma planta o en el mismo edificio. La metodología más empleada, con mucho, es Scrum; y la mayoría de los que las emplean hablan bien de ellas, y creen que han mejorado la comunicación en el equipo, la velocidad en el cierre de versiones y la flexibilidad en el diseño.
Estas son las principales conclusiones de uno de los pocos estudios realizados sobre una muestra de técnicos, significativa (492 encuestas anónimas). Lo realizó Microsoft hace 2 años entre su personal de EE.UU, Europa y Asia, para analizar el grado de "contagio" de agilidad que estaba teniendo la empresa, la opinión de los técnicos y los resultados.
"Cada vez es más frecuente escuchar que las grandes empresas utilizan equipos autodirigidos en sus diferentes áreas funcionales. Los equipos autodirigidos o autoadministrados son unidades básicas de operación dentro de una empresa, las cuales tienen la capacidad de conducirse sin la presencia de un administrador o supervisor, tomar sus propias decisiones, solucionar problemas y desarrollar sugerencias que mejoren el desempeño de la organización. con equipos que sean capaces de asumir esas funciones por sí mismos, el gerente estará enfocado a coordinar esfuerzos, planificar el desarrollo de la empresa, investigar las necesidades actuales y futuras de los clientes para desarrollar las condiciones para el proceso de constante innovación, en lugar de dirigir, controlar y supervisar a sus empleados".
Hace algo menos de un año comentaba: "En este sector, un profesional sin formación continua está "out" en menos de 5 años, y aunque hay nuevas formas de difundir y compartir conocimiento, se siguen empleando sólo modelos de formación económicamente pesados, que limitan el acceso."
Otro problema de la formación presencial es que el precio por cursos de uno o dos días resulta prohibitivo.
Y también son ya una realidad los primeros cursos presenciales Scrum Manager (Flexibilidad con Scrum) de 100 a 200€ en hispanoamérica y de 200 a 300 en España, incluida certificación con examen; y que se están completando a las pocas semanas de anunciarse :-) Ya los hay en Tenerife, Barcelona, Madrid, Buenos Aires, Valencia, Córdoba (Argentina), San José...
Poner las pruebas (el testing) delante de la programación ha marcado un hito en las prácticas de programación, un antes y un después, que ha transfromado a la "cenicienta" del testing en princesa; de trabajo indeseado (probar lo que iban terminando los programadores) a tarea "cool" de diseño y pre-codificación.
TDD ha hecho que sean las pruebas las que tracen la pauta al desarrollo, y no al revés, y al hacerlo ha abierto dos dimensiones nuevas al testing tradicional: documentación, y sobre todo: diseño:
Se empiezan a escribir pruebas unitarias con herramientas como JUnit o
NUnit.
Empieza a aumentar la confianza en el código, en la misma
proporción que el volumen de pruebas que se va generando.
Al
escribir las pruebas en primer lugar, el código gana simplicidad,
programándose lo extrictamente necesario.
Las pruebas van tomando
una nueva dimensión: "documentación", porque cuando se retoma código ya
olvidado, son las que mejor explican qué es lo que hace ese código.
Poco a poco se empieza a descubrir la segunda dimensión: desarrollar pruebas revela el "API" del código, y pasa entonces a ser también un proceso de diseño.
Se acaba de anunciar la Conferencia Agile-Spain 2010 (CAS2010), bajo el
lema "Haciendo realidad la agilidad". CAS2010 es la primera conferencia
sobre metodos ágiles en España.
Es una cita donde se encontrarán empresarios, desarrolladores,
gerentes, investigadores, etc. Está enfocada principalmente a la
industria de tecnologías de la información y consultoría tecnológica.
"El producto previsto, en el tiempo planificado y por el presupuesto estimado" Vs. "Valor rápido, y de forma continua, en intervalos breves u regulares".
Queremos un candidato que sea bueno, bueno, bueno con el drimgüiber y en el flassh, pa poder hacer una güeb como la del yutube. No hace falta que tenga experiencia y lo contrataremos por horas....¡¡¡¡Toma ya!!!!!
Uno de los factores esenciales para explicar estas divergencias reside
en la personalidad de los ejecutores; o más propiamente, en su ego.
“Una de las situaciones que con más frecuencia se dan en las
organizaciones es que cuanto menos inteligente es una persona más se
esfuerza por parecer brillante. Quien tiene madurez y prestigio toma la
vida con cierta distancia y decide con seriedad o rigor, pero quien
está preocupado por dejar su sello y por darse a conocer, suele tomar
decisiones en base a innovar. Como se suele decir, cuanto más tonto es,
en más charcos se mete…”
El buen management, no hace más que formular, de un modo u otro, tres o cuatro asuntos esenciales. Entre ellos, el de “encontrar, captar y motivar al talento”
El concepto original "Campo de Scrum" definido por Nonaka y Takeuchi describe un entorno de trabajo con principios ágiles en equipos motivados, con delegación y "empowerment", que desarrollan proyectos de forma iterativa a incremental, que no dividen el ciclo de desarrollo en fases, comparten el conocimiento por socialización (comunicación directa)...
La implementación que Jeff Sutherland realizó en 1993 en su equipo en Easel Corporation, a nivel de proyecto, que Ken Schwaber documentó, en el libro Agile software development with scrum y que difunde la Scrum Alliance, es una implementación concreta, como lo son tambien cada una de las desarrolladas originalmente por Canon, NEC, Xerox, hp, Honda, Epson... Es buena, pero nada impide diseñar un campo de scrum con flexibilidad en las prácticas para adecuarlas a cada realidad, y con ámbito de proyecto, producto o de empresa, según sea para un equipo, departamento (por ejemplo de I+D en una software factory de procesos), o de organización en su conjunto.
Tomando el concepto original de Scrum y "des-monopolizándolo" de la Scrum Alliance, es posible plantear implementaciones con diferentes prácticas y también a nivel de producto o de empresa. Con esta visión de Scrum Manager la agilidad da su mejor resultado cuando se implican y alinean los diferentes ciclos de la empresa: estratégico, proyectos y producción.
Para los alicantinos que podáis acercaros, el próximo jueves día 4, expondré el seminario "Agilidad: mejores prácticas para desarrollar software" en el salón de actos de la Escuela Politécnica superior de la Universidad de Alicante.
Será a las 12 de la mañana. La entrada es libre, con inscripción previa en esta página.
Ya está actualizado, y disponible para descargar (o comprar) el blook con los artículos más relevantes de Navegápolis hasta enero de 2010.
Con un mosaico de 120 artículos, el libro compone una visión poliédrica del escenario de las pequeñas y medianas empresas de programación. De la gestión de los proyectos y las personas en las empresas de software.
Mi opinión no puede ser objetiva, soy el autor; pero por eso mismo te lo recomiendo
Imprescindible el libro que acaban de publicar Carlos Blé y colaboradores sobre TDD, la técnica de diseño y desarrollo de software que forma parte de la metodología XP.
A las razones de Ken Beck de por qué usar TDD:
La calidad del software aumente (y veremos por qué).
Conseguimos código muy reutilizable.
El trabajo en equipo se hace más fácil, une a las personas.
Nos permite confiar en nuestros compañeros, aunque tengan menos experiencia.
Multiplica la comunicación entre los miembros del equipo.
Las personas encargadas de la garantía de calidad adquieren un rol más inteligente e interesante.
Cuando revisamos un proyecto desarrollado mediante TDD, nos damos cuenta de que los tests son la mejor documentación técnica que podemos consultar a la hora de entender qué misión cumple cada pieza del puzzle.
Carlos añade:
Incrementa la productividad.
Nos hace descrubrir y afrontar más casos de uso en tiempo de diseño.
La jornada se hace mucho más amena.
Uno se marcha a casa con la reconfortante sensación de que el trabajo está bien hecho.
No nos gusta aprender recetas, porque no creemos en "balas de plata". Preferimos aprender nutrición: ser cocineros y no pinches. Saber cocinar nuestras propias recetas, con el sabor, vitaminas, nutrientes y presentación, más adecuados a nuestra empresa.
Scrum Manager: Preferimos la flexibilidad a la rigidez.
Primero fue con los campos de scrum; el scrum entendido y definido por Nonaka y Takeuchi, y que aunque posiblemente es era el mejor marco para implementar ciclos ágiles de desarrollo, lo hemos dejado debidamente domesticado: monopolizado, y atrofiada su evolución. Tardamos 10 años, en descubrirlos y aplicarlos a nuestros proyectos de software; pero luego, enseguida lo hemos "doctrinalizado"(1).