Una de las mayores ventajas de ser desarrollador es la posibilidad de trabajar en equipos remotos. Y aún cuando muchas compañías han y son exitosas con equipos de trabajo remoto, como Basecamp, muchos equipos prefieren las oficinas presenciales, las cuales también están bien si se eligen por las razones adecuadas, por ejemplo, la cultura de trabajo, la convivencia, etc. Sin embargo, otros optan por evitar desarrolladores remotos por motivos organizacionales, o porque temen que el rendimiento no sea igual en una oficina presencial, mi opinión al respecto es que esto se soluciona con una combinación entre escoger el equipo de trabajo y las herramientas adecuadas. Aquí presento algunas herramientas para tu equipo de trabajo, que ojo, también pueden ser utilizadas por equipos presenciales.
Slack
Slack es un chat y una app colaborativa para equipos de trabajo que integra muchas de las herramientas que tu proyecto ya utiliza (aquí la lista de todas las apps que integra). Equipos en Google, Twitter y Apple utilizan Slack, es una de las 10 startups que tuvieron impacto en 2014 según de The Next Web. Personalmente busco utilizar Slack en todos mis proyectos, en realidad me encanta la integración con Github (o Bitbucket), con Trello (de la que hablo más adelante), Drive, Dropbox, etc. Algunas de las características de Slack son:
- Puedes crear canales de chat privados y públicos para tu proyecto.
- Cuando integras con tu repositorio, reporta si alguien del equipo hizo un cambio al mismo.
- El buscador funciona tanto para mensajes de chat o documentos dentro de la aplicación.
- Tiene aplicaciones móviles para iOs y Android, aplicaciones de escritorio para Windows y OSX además de la versión web.
- Tienen una API para que tú integres tu plataforma con Slack.
Trello
Trello te permite organizar cualquier cosa (o eso indica su landing page) a través de tarjetas que se organizan en listas. Trello particularmente me gusta para organizar TO DO's para tu proyecto, si hay que mover el logo, cambiar un color, arreglar un bug, hacer refactor de alguna parte del código, o cualquier otra cosa, creas una tarjeta. Las tarjetas se pueden asignar a algún miembro del proyecto, puedes moverla entre listas, o dentro de la misma lista para organizar por prioridad. Algunas cosas que me gustan de Trello:
- Casi todo se organiza usando Drag & Drop, lo cual es genial, de manera muy sencilla puedes ir moviendo cosas de un lado a otro.
- Su simplicidad, entras a tu Board y puedes ver todo lo que hay por hacer, lo que se hizo y lo que se está trabajando en el proyecto.
- Es facil asignar tareas a otros, comentar tareas, agregar detalles, screenshots, y más.
- Los archivos que subes puedes sincronizarlos con otras plataformas como Google Drive.
Google Drive
Google Drive es una de mis cosas favoritas del mundo web, y ha sido así desde que decidí que no iba a usar Office hace un par de años, y si bien hubo cosas que fueron más complicadas en Drive (como recibir documentos en Word y convertirlos a Drive), para la mayoría de las cosas Drive era más que suficiente. Eso en el aspecto individual, en el aspecto remoto, todos sabemos qué tan valioso es Drive, que nos permite compartir archivos con otros usuarios, carpetas también, crear documentos en tiempo real, y más. Para un proyecto de software, Drive es genial, sobre todo si utilizamos aplicaciones que se conectan con este servicio como Draw.io que te permite crear diagramas en el navegador, ahí podrás crear diagramas UML, Entidad Relación, de Flujo, y algunos otros más, se conecta con Drive así que todos los diagramas pueden conservarse en la carpeta del proyecto. Hace poco también conocí Gannter que al igual que DrawIO se conecta con Drive; Gannter es una herramienta para calendarizar actividades a través de Diagramas de Gannt.
Github o Bitbucket
Una de las cosas que más se mencionó en el artículo de qué hace a un buen desarrollador es el control de versiones, y ciertamente un buen desarrollador sabe utilizar, al menos, Git. Github y Bitbucket te permiten almacenar código en repositorios y controlarlos utilizando Git, y es lo que generalmente se utiliza para programar colaborativamente, en Github particularmente, para una startup/empresa/grupo pueden utilizar las organizaciones, a modo que todos los proyectos que se crean para esa organización se comparten entre todos los miembros de la misma. De Bitbucket lo más interesante es que nos permite crear hasta 5 repositorios privados en el plan gratuito, mientras que para tener proyectos pagados en Github hay que pagar algunos de los planes que ofrecen.
Menciones extra
Estas son algunas de las que me han tocado utilizar, además de que en Código Facilito usamos Dropbox para compartir algunos archivos. Sé que existen N más, en algún equipo me tocó utilizar Sprintly y también pienso que Basecamp es asombroso (aunque no lo mencioné más a fondo porque es de pago). Creo que vale la pena mencionar Facebook por los grupos y el chat grupal, aunque en cuanto puedo trato de alejarme de Facebook, sobre todo porque todo distrae estando ahí y el buscador del chat es horrible.
Sería genial que en los comentarios nos compartieran las herramientas que ustedes usan para sus proyectos