Download - Drupal 7 Direto das Trincheiras
● Fisicamente juntas ○ Insourcing○ Outsourcing onsite○ Joint-venture onsite
● Fisicamente separadas○ Outsourcing ○ Insourcing offsite○ Joint-venture offsite○ Pode ser onshore ou offshore
Tipos de Equipe
O Pelotão
Ux DesignersVisual DesignersFront end engineersDevelopersTestersSysadminGerente de Projetos (ou ScrumMaster)Cliente (PO, Stakeholders)
Todo mundo é general (e soldado)
Grandes equipes costumam ser equipes de amigosAuto gerenciaveiesEquipes grandes, problemas grandesTamanho entre 3 - 7 pessoasEspecialista em uma coisa só, é amador em todo o resto (Akita)
Gestão e comunicação
Quadro branco, caneta e post itsBasecamp (+ wallsome)PivotalJira (GreenHopper)Tantos outros...
Tenha uma Maquete do terreno
Importante para ajudar na definição da estratégia de arquitetura de modulos AxureBalsamiq mockupMockflowMocking bird
Vá alem...
Deixe o bugtracker armado até os dentes Awesome screenshot (chrome)Jing (publicação autmotica screencast.com)Join.me (screenshare com controle remoto)
Controle de versão na Cloud
Beanstalk (git, svn)Github (git :P) Bitbucket (mercurial, git)Assembla (svn, git, mercurial)Codebase (git, mercurial, svn)
Crie Branches
Crie branches$ git checkout -b bugfix002Modifique o codigo$ git push Volte para o branch principal$ git checkout masterFaça a junção$ git merge bugfix002
O problema do Drupal
Legal, meu código está versionado, coisa linda! Mas e o conteúdo? #comofazMas e as configurações no banco? #comofaz++E o layout? #comofaz+++
Exporte (tudo para código)
ctoolsfeatures (uma feature é um módulo)strongarm (integra com features)hook_update_N
Drush, seu fiel escudeiro!
drush dl viewsdrush en viewsdrush cc (all)drush arqdrush sql-dump sql-connectdrush updb (update.php)drush features updatedrush features-revert
Extensivel - Plugins! -drush make-drush deploy- module integration- padrão de integração Drupal com outros program
Configure
drush/examplesaliases.drush.rc
$aliases['dropit'] = array( 'uri' => 'dropit.lh', 'root' => '/var/www/dropit/web', 'db-url' => 'mysqli://user:senha@localhost/dropit', 'path-aliases' => array( '%files' => 'sites/default/files', ),);
Crie seus comandoshook_drush_command function drush_dgd_branch($name, $alias = '@self') { $teste = drush_invoke_process(drush_sitealias_get_record('@self'), 'sql-dump', array(), array('--result-file' => '../databases/' . $file)); foreach ($teste['log'] as $key => $log) { $messages = array('success', 'error', 'notice'); if(in_array($log['type'], $messages)) { drush_print_r($log); } } drush_op_system('git checkout -b' . $name);
}
Extenda
E agora, josé?
dá pra ganhar essa guerra? - tática e gerenciamentofuturo da batalha
- alianças são chavesnovidades por ai!
- Continuous Integration com Drupal- Drupal Mobile "Se eu estivesse começando o Drupal hoje, eu faria
para mobile primeiro" - Dries