Monday, February 4, 2013

Github vs BitBucket



Git Immersion


Hace año y medio en Kinética Mobile nos embarcamos en el mundo GIT. El proceso de cambio requirió un esfuerzo extra para documentarnos en cuanto a uso básico, encontrar el workflow que nos parecía más cómodo y poner a punto nuestro servidor de desarrollo.


Como en todo, cuando más horas le dedicas mejores son las aptidudes que se obtienen. El proceso nos ha ayudado a mejorar nuestra tanto nuestra forma de trabajar como nuestro código: pocas veces se dejan ya funciones que no se usan comentadas “por si acaso”, ya no hace falta preguntar si un compañero ha tocado/esta modificando algún fichero, también tiene implicaciones de transparencia al ir cada modificación de código asociado a un usuario, el objetivo no es marcar con el dedo cuando haya un error pero si que es verdad que cuando una línea de código va asociada a tu nombre te implicas para que tenga más valor, el proceso de desarrollo ha aumentado ya que se pueden desarrollar cosas en paralelo y ya te preocuparás de solventar los conflictos cuando llegue el momento.

El cambio a git ha sido toda una revolución, pero en nuestro afán de concentrarnos más en los desarrollos de nuestros clientes  y menos en los apartados técnicos de nuestro trabajo hemos detectado una falla: Mantener el servidor de desarrollo, es cierto que no necesita mucho tiempo, pero si tenemos en cuenta el reducido número de personas en nuestra empresa cualquier hora dedicada a esta tarea es una hora que parece no muy bien invertida. Por esta razón este año decidimos mover toda la gestión de git  de nuestro servidor de desarrollo y dar el salto a algunos de los servicios que existen por la red.


Contestants


La primera opción que apuntamos en la lista fué Github, el omnipresente repositorio de código que acoge desarrollos tan importantes como el kernel de Linux, PHP, jQuery, Backbone, bootstrap, etc

Tras las charlas del último BetaBeers Badajoz comentamos nuestra intención, y nos recomendaron meter en la lista a Bitbucket, el producto de Atlassian.

Existen más alternativas pero la verdad es que no hablamos en ningún momento de añadir ninguna de ellas. Quizás creíamos que los servicios que ofrecen estas plataformas podrían  adecuarse a nosotros.


Fight

Github: todos en mayor o menor medida lo han usado, aunque no tengas ni cuenta seguro que has tenido que pasar por allí para bajarte algún plugin, añadir algún ticket a las issues de algún proyecto o incluso clonarte algún repo para tocar alguna cosina en local. Estuvimos viendo como eran las diferencias con nuestro workflow y lo único que cambiaba era el tema de los Pull Requests lo que quiere decir que practicamente nada.

Bitbucket tenía la pega de que  se te hace algo más extraño empezar, personalmente me gusta más la UI de github. Pero aparte de eso las diferencias entre ellos son bastante reducidas.

Listado de cosas comunes:
Visión sencilla del historial de commits
Navegación por el código a través de web
Issues
Wiki
Perfiles de equipo
Enlace de commits con issues.

Aparte de estas características Bitbucket tiene como diferenciador el tablón de Kanban/Scrum que aporta a través de GreenHopper. Llevamos tiempo empapándonos de las metodologías ágiles, de hecho siempre que podemos vamos metiendo a nuestros clientes poco a poco usando/añadiendo alguna que otra característica, de hecho realicé recientemente el curso de Certificación de ScrumManager que hubo por Cáceres de mano de Estratecno con @raul_herranz como profesor.


Winner


Las dos herramientas en su pack mínimo tienen un precio muy reducido, sobre los 10$. Pero la característica de requerimiento es bastante distinta. Mientras que en github tienes limitados el número de repositorios de forma privada, bitbucket te limita el número de usuarios en el equipo a 10, esta diferencia incluso se refleja en el apartado gratuito donde bitbucket te ofrece repositorios privados sin límite y tener hasta cinco colaboradores(si invitas a gente puedes llegar a tener hasta 8).






Por esta parte Bitbucket nos tenía ganado, somo un equipo pequeño pero compaginamos proyectos propios(desarrollos a medio/largo plazo) con proyectos para clientes(que depende del cliente pueden tener fecha de finalización o mantenimiento de hasta un año) por lo que tener limitado el número de repositorios no nos gustaba demasiado y teniendo entre 3 y 4 personas trabajando pensábamos que Bitbucket nos ofertaba un plan más cercano a lo que necesitamos.

Pero es de recibo decir que nos llamaba la atención el apartado de GreenHopper, así que decidimos acogernos al mes gratuito de prueba que ofrece Atlassian con sus productos y probar todo durante ese mes. Todo ello en el apartado On-Demand.

Las sensaciones durante este mes han sido muy buenas, antes de probar Jira habíamos usado distintas herramientas para manejar nuestra de lista de tareas: Mantis, Wunderlist, WunderKit, etc. Con el paso de tiempo todas ellas entraban en desuso, pero Jira aunque a primera vista no se vea parece tener un encanto especial y ninguna persona dentro del equipo ha notado cansancio, de hecho la respuesta has sido más bien al contrario. Greenhopper además nos ha gustado a todos por lo que parece que estaremos un tiempo en los servidores de Atlassian.


Al final nuestro trabajo se resumirá seguramente entre proyectos privados en bitbucket y, cuando nos arranquemos, tener proyectos Open Source por Github.

3 comments:

  1. A nosotros nos pasa algo parecido a lo que os pasaba a vosotros. El tiempo que consumimos gestionando el servidor del repositorio es excesivo y, en algunos momento, exasperante. Yo no tengo posibilidad de migrar (por políticas de empresa), pero creo que habéis hecho muy bien en hacerlo.

    ReplyDelete
    Replies
    1. Uhmm, pero si vosotros teneis a dos administradores de Sistemas y por lo que tengo entendido bastante buenos, ¿qué clase de tareas teneis que hacer vosotros?

      Como explico el tiempo en sí que dedicamos no es mucho el problema es más relativo a la frecuencia, además cuando hay un problema/cambio a realizar hay que hacerlo normalmente inmediatamente, y el cambio de contexto de la persona encargada hace que la productividad no sea la adecuada.

      De todas formas me parece raro que en una empresa tan grande como la tuya los desarrolladores deban encargarse de cualquier de cualquier tarea, por nimia que sea, del entorno de desarrollo colaborativo o de las herramientas de gestión de tareas.

      Delete
  2. Buenas Manuel,

    Viniendo de una persona que dedica gran parte de tiempo de su trabajo a temas relacionados se agradece el comentario.

    Si te digo la verdad pensé en vosotros a la hora de este proceso de selección, pero creía que vuestra navaja suiza nos sobrepasaba, muchas de las herramientas aunque conozcamos el nombre y su funcionamiento desconocemos su uso.

    Dentro de unos meses tendré que realizar una retrospectiva, por ahora la verdad es que nos hemos acostumbrado rápidamente a las nuevas herramientas y veremos como evoluciona cuando empecemos nuevos proyectos desde el principio con ella, cuando recibamos feedback de nuestros clientes, etc.

    En cuanto a que la calidad hay que pagarla no puedo estar más de acuerdo. De hecho por esta razón me parece genial que empresas como Github, Bitbucket ofrezcan planes escalables y piensen en grupos de 3/4 personas y no solo en las grandes empresas

    ReplyDelete