Gaming/Apps, Interactive, Local, Video o Mobile Core, Client Apps o Tu (MVNO) • Framework/Architecture • Backend, Scalability, Stats • Testing Framework • Dev-Tools • IT • Systems • QA • Design & UX
minutos de media de uso diario • +180.000.000 mensajes de chat / dia • +4.000.000 fotos subidas al dia en picos • +30.000.000.000 page views / mes • +40.000 peticiones web / seg. en picos • +1.000 servidores • +220 empleados (de ~18 nacionalidades) • +60% de los empleados de la parte de tech.
la gente... ¿Por qué Mercurial y no Git? o Interfaz y API muy limpios en Python o 100% Cross-platform (Linux/Mac/Windows) o Más user-friendly y parecido al viejo SVN
jueves) • 8+ branches por release de media o A veces modificamos +2000 archivos! • Merges permitidos desde 2 dias laborables antes • Merges hasta 1 PM del dia anterior o CTO approval para saltarse la norma
Pull - Update - Merge - Commit - Push o Mergeando branches: Pull - Update - Merge - Commit - Push abortado - Pull de nuevo - Update - ... etc. Has de ser rápido mergeando :) • Merge conflicts o Mercurial != magia (pero mejor que SVN) o A veces deja buenos estropicios mal mergeados "para revisión humana"
• Ingenieros: o Pull de repositorio de equipo o Mergeando en repositorio de integration • Release Manager: o Pull de repositorio de integration o Mergeando en repositorio de release • Errors spreadsheet o QA + ingenieros añaden bugs o Ingenieros responsables del código arreglan en el repositorio de release
• Asistentes: o Todos los ingenieros que han subido código mínimo 1 por equipo o Responsable(s) de QA o Release Manager usualmente parte del equipo de Dev-Tools o 1+ ingenieros de Testing FW o Otros implicados si es necesario o Responsable de sistemas
o Agrupar archivos o Y otros tweaks... • Full build: 10 minutos aprox. o Delta builds (cambios solamente) • Envio de archivos a todos los servidores: Segundos
chat con todos los implicados • Errors spreadsheet (el mismo creado el dia anterior) o Bugs conocidos que ya estén en el bugs backlog: ignorar o priorizar o Nuevos bugs de prioridad baja: bugs backlog • Es importante aprender a priorizar o No siempre da tiempo a arreglar durante la release
Merge a repositorios stable y hotfix • Ingenieros (1 por equipo): o Pull del repositorio de stable Merge en default de repositorio del equipo o Merge del default de repositorio de equipo En cada rama en que se esté trabajando