CODESTREAM: Su concepto inicial es que el IDE, el editor, es el centro más importante para el trabajo remoto.
CONTENIDO DEL CAPÍTULO
- El trabajo remoto es la nueva norma
- ¿Qué nuevos problemas hay que resolver?
- ¿Para qué sirve CodeStream?
- Ejemplos
- Resumen
1. El trabajo remoto es la nueva norma:
• La tendencia mundial va hacia el trabajo remoto. Más del 50% de los desarrolladores antes de la crisis actual ya trabajaban remotamente por lo menos unos días al mes.
Los beneficios del trabajo remoto son muchos:
• Flexibilidad
• Menos tráfico
• Menos polución
• Más tiempo
Pero también hay un precio a pagar:
• Cierto distanciamiento social, aislamiento, tal vez soledad
• Menos oportunidades de interacción o colaboración espontánea
• Menos interacciones síncronas y más interacciones asíncronas
2. ¿Qué nuevos problemas hay que resolver?
• En el curso de trabajo remoto de Freddy Vega y Aníbal Rojas, se trataron algunos puntos importantes:
• Síncrono vs asíncrono
• Fuente de la verdad: En el caso de CodeStream está especialmente dedicado a resolver ese tema.
• Google docs es excelente. ¿Existe algo así para código? CodeStream
• Claridad de misión/valores: Para qué fue creada CodeStream y cómo fue compartida esa misión con los miembros del equipo para que todos sepan cómo está encarado el trabajo, qué están haciendo en sus casas, alineados con la misión de la compañía.
• Transparencia: Cuando alguien esté en su casa trabajando, no solamente sabrá qué están haciendo los demás, sino que tal vez el jefe tampoco lo sabrá. Transparencia laboral no es solamente aclarar qué está haciendo alguien, sino que más importante es que todos sepan lo que está haciendo cada uno.
• Interactividad versus persistencia: Desde CodeStream se cree que se puede resolver esta tensión, simultáneamente con la misma herramienta si se consigue que la comunicación se transforme en persistencia.
Misión de CodeStream
"Mejorar el desempeño de los equipos de desarrollo mediante la comunicación, la integración y la transparencia"
Esta misión viene desde el comienzo de su idea de que en el editor, vamos teniendo todas las herramientas necesarias para poder colaborar y al mismo tiempo mantener la información, para que esté disponible y accesible para los desarrolladores o managers.
3. ¿Para qué sirve CodeStream?
• Comunicación: Integrado con Slack, Ms Teams o Email, o dentro del editor todo en contexto (permite hablar del código en contexto, compartirlo con otros fuera del editor y todos pueden contribuir para ser más eficaz)
• Integración: GitHub, Jira, Trello, Azure DevOps y otras 20 herramientas se integran al editor para tener todo conectado en contexto. (Cada una de estas herramientas permite conectarse a un bloque de código)
• Transparencia: Los managers o todo el equipo pueden ver en qué está trabajando cada uno (especialmente los managers, pueden desbloquear a alguien que está trabajando demasiado tiempo, y tener esa oportunidad fundamental de ver e intervenir para agilizar las tareas.
• BONUS: EL CÓDIGO SE DOCUMENTA AUTOMÁTICAMENTE (Cada interacción se une al bloque de código y queda como comentarios, documentando de qué se trata el problema en cuestión)
4. Ejemplos (use cases) de funciones de CodeStream para Desarrolladores
A) TENGO PREGUNTAS
B) ENCONTRÉ UN PROBLEMA EN EL CÓDIGO
C) PUEDE ALGUIEN REVISAR ESTE CÓDIGO NO TERMINADO (WIP)
D) ¿CÓMO PIDO UN CODE REVIEW LO ANTES POSIBLE?
A) TENGO PREGUNTAS
Managers: ¿En qué está trabajando mi equipo? ¿Cómo lo hago en CodeStream?
Ejemplo:
Marcelo tiene una pregunta sobre el código que se ve en pantalla. Selecciona el comentario, escribe una pregunta: ¿cómo mejorar la performance? y la comparte con otro Usuario en Slack.
Si el Usuario quiere entrar al código mismo y contestarle desde el editor puede hacerlo, pero también puede hacerlo desde Slack.
Al contestarle desde Slack sin tener que entrar a CodeStream, Marcelo ya recibe la respuesta y eso está integrado en forma total con el código mismo.
Pasar el cursor sobre el bloque de código, automáticamente le va a mostrar el comentario o toda la conversación que hayan tenido. Esto documenta una situación específica, en la que la próxima persona que mire ese código, sabrá a qué se refiere. Los cambios que se producen en un comentario, también se ven reflejados automáticamente en el código.
B) ENCONTRÉ UN PROBLEMA EN EL CÓDIGO
En este caso Marcelo creará un ISSUE (problema) describiendo el error visto. CodeStream está conectado con distintos sistemas como por ejemplo Trello, Jira, etc. Sistemas normales de ISSUE TRACKING, funciona de la misma manera.
Él asignará el ISSUE a la persona elegida. Luego de haber creado ese ISSUE aparecerá en Trello, de la misma manera que aparece el comentario en Slack. Y vuelve a referirse una vez más al código mismo, es decir la integración. No hace falta compartirlo en este caso en Slack, porque lo están compartiendo con Trello. Aparece el logotipo de Trello. Cuando Marcelo hace clic en ese logotipo, se abre Trello y ahí está el ISSUE creado en ese momento.
C) PUEDE ALGUIEN REVISAR ESTE CÓDIGO NO TERMINADO (WIP)
Con este ejemplo, lo que se va a demostrar en CodeStream, sería como un paso anterior a la creación de un CODE REVIEW. Se puede trabajar en distintos tipos de cambios que aún no han sido ni siquiera guardados en el archivo del Usuario. La diferencia entre un CODE REVIEW tradicional y lo que estamos viendo que hace Marcelo, es que cualquier cambio que el Usuario haya hecho en el editor, CodeStream lo crea en un paquete de cambios y lo presenta para que algún CODE REVIEWERS, que podamos elegir de los que vemos en pantalla, que conocen el código y es por eso que han sido elegidos y/o sugeridos, puedan mirar cada uno de los cambios que se han hecho, por ej. working progress, y que hagan su CODE REVIEW de acuerdo a cómo a ellos les parezca, dentro del editor sin tener que salir, ya que todas las herramientas están en el mismo contexto.
Al trabajar de esta manera todo se une a la información que se mencionó anteriormente creando más conocimiento y compartiéndolo a través de la integración y logrando la transparencia. En el panel de CodeStream se podrá ver como ha sido compartido a través de Slack.
D) ¿CÓMO PIDO UN CODE REVIEW LO ANTES POSIBLE?
Marcelo demostrará ahora en pantalla, como funciona ese CODE REVIEW dentro del contexto mismo de la misma manera que lo podría probar el otro Usuario, uno al lado del otro, la creación del cambio, y si le parece bien podrá poner un comentario y aprobarlo haciendo clic en SUBMIT.
Una de las maneras en que en CodeStream, se puede utilizar el concepto de transparencia es haciendo clic en el icono de TEAM. Ahí vemos específicamente a todos los miembros del equipo y en qué está trabajando cada uno, todo en tiempo real, no es un resumen, no es una presentación de un dashboard. Literalmente estamos viendo qué hace cada miembro del equipo de desarrollo y en qué archivo está trabajando específicamente en un determinado momento.
Eso permite, desde el punto de vista del manager, entender la alineación, cuántas líneas de código se han escrito, cuántos cambios se han hecho y esa posibilidad también le permite ver por ejemplo, que alguien está pasando demasiado tiempo bloqueado en un archivo en particular, y poder mandarle un mensaje para ver si necesita ayuda.
Esta es la primera vez que existe una manera de conectar los distintos editores en tiempo real, para que todo el equipo pueda ver en qué está trabajando.
5. Resumen
El trabajo remoto requiere nuevas herramientas para resolver nuevos problemas.
No hay necesidad de elegir entre interactividad y persistencia. Hay herramientas que funcionan bien para las dos.
La misión de CodeStream es mejorar el desempeño de los equipos de desarrollo, mediante la comunicación la integración y la transparencia.
Hay que aumentar la frecuencia de interacción en los equipos de desarrolladores, para resolver problemas antes y así mejorar la calidad del código.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?