Post on 17-Jul-2015
1
PDS - IFFarroupilha - SVS
Processo de Desenvolvimento de Software
Maicon de Brito do AmaranteAnalista de TI
2PDS - IFFarroupilha - SVS
Objetivo
Apresentar, na prática, as dimensões gerencial e executiva do Processo de Desenvolvimento de Software (PDS) do Instituto Federal Farroupilha – Campus São Vicente do Sul.
3PDS - IFFarroupilha - SVS
Coordenação de TI
Coordenação GeralSetor de Análise e Desenvolvimento de Sistemas (ADS)Setor de Infraestrutura e RedesSetor de Suporte e ManutençãoGovernança de TI
4PDS - IFFarroupilha - SVS
Setor de ADS
MissãoDesenvolver SistemasImplantar soluçõesSuporte a sistemasAdministrar Bancos de Dados
ProjetosGestão do ConhecimentoBusiness Intelligence
ProgramasEstágio orientadoCapacitação interna
5PDS - IFFarroupilha - SVS
Setor de ADS
Equipe2 servidores4 estagiários1 bolsista de iniciação científica
6PDS - IFFarroupilha - SVS
Roteiro
GerênciaGestão de demandasAbertura do projetoDefinição do processoPDS-Scrum
ExecuçãoWorkflowFerramentas
8PDS - IFFarroupilha - SVS
Gerência
9PDS - IFFarroupilha - SVS
Gestão de demandas
Avaliação da demandaaceitar/rejeitardefinir prioridade – critérios:
alinhamento estratégicoexigência legalusuários atentidoscapacidade de produção
10PDS - IFFarroupilha - SVS
Processo de Software
Ad hoc (não é mais utilizado)
PDS-RUP (clássica)
PDS-Scrum (ágil)
Escolher conforme as características do projeto:volatilidade dos requisitosdificuldade em capturar os requisitosentregáveis: incrementais?localização da equipe: centralizada ou distribuída?
11PDS - IFFarroupilha - SVS
PDS-RUP
DisciplinasAbertura do ProjetoRequisitosAnálise e ProjetoImplementaçãoTesteImplantação e Manutenção
Maiores problemas:Documentação muito demorada / desatualizadaO cliente se afasta muito do projetoReage mal à mudanças
CDU
12PDS - IFFarroupilha - SVS
PDS-Scrum – visão geral
13PDS - IFFarroupilha - SVS
PDS-Scrum
Alinhamento com MPS.BR nível G
Gestão de Projetos - GPR 1 a 17 - ex.:GPR 2
MPS.BR: Dimensionamento de tarefas e produtos de trabalho
PDS-Scrum: Product Backlog / Sprint Backlog
GPR 6
MPS.BR: Riscos do projeto
PDS-Scrum: Planejamento de Riscos - PMBOK
Gerenciamento de Requisitos - GRE 1 a GRE 5 - ex.:GRE 4
MPS.BR: Revisões em planos e produtos de trabalho do projeto
PDS-Scrum: Daily Scrum Meeting e Sprint Review Meeting
14PDS - IFFarroupilha - SVS
Sprint Planning
Pre-gameDefinir requisitos macro (funcionalidades principais)Kickoff Meeting
Definir papéisProduct Owner, Scrum Master, Time
Definir Product Backlogorganizar por prioridades
Definir duração da sprintDefinir Sprint Backlog 1
15PDS - IFFarroupilha - SVS
Sprint Planning
Executar iterativamente da Sprint 1 até Sprint n:
Sprint Planning Meeting 1 (PO, Scrum Master, Time)Consolidar os itens do PB que farão parte da Sprint, revisando o planejamento inicialCritérios: Precedência, importância/urgência para o usuário
Sprint Planning Meeting 2 (Scrum Master, Time)Definir e atribuir tarefas (Duração, Prazo de conclusão)
16PDS - IFFarroupilha - SVS
Sprint
GameDaily Scrum MeetingWeekly Technical MeetingTarefas – TO DO | In Progress | Done
Post-gameSprint Retrospective Meeting (Scrum Master, Time)Sprint Review Meeting (PO, Scrum Master, Time)
17PDS - IFFarroupilha - SVS
Execução
18PDS - IFFarroupilha - SVS
Ferramentas & Workflow
19PDS - IFFarroupilha - SVS
Gerência de Projeto - Redmine
21PDS - IFFarroupilha - SVS
Vagrant
http://www.vagrantup.com/box do ambiente:
uniformeready to go
Como preparar um servidor local com Apache, PHP, módulos para conexão com BD, criptografia, composer, virtual host, etc?> vagrant box add ctisvs http://ads.cti/ctisvs.box
Tempo? ~ 1 min
22PDS - IFFarroupilha - SVS
IDE: PHPStorm
24PDS - IFFarroupilha - SVS
Framework: CakePHP
http://www.cakephp.org/convention over configuration – CoCcode generation – cake bakeMVC
25PDS - IFFarroupilha - SVS
Coding Standard & Style
http://www.php-fig.orgPSR-1 e 2
Standard: spaces for indenting, opening braces, control structure keywords...Style: StudlyCaps, camelCase, Character Encoding, namespace...
26PDS - IFFarroupilha - SVS
Testes Unitários: PHPUnit
27PDS - IFFarroupilha - SVS
Testes Unitários: TDD
Leis do TDD:
1. não escrever código de produção antes de ter escrito um teste unitário que falhe.
2. não escrever mais testes unitários do que o suficiente para falhar.
3. não escrever mais código de produção do que o necessário para passar nos testes.
28PDS - IFFarroupilha - SVS
Controle de versão
SVNbranch release strategy
29PDS - IFFarroupilha - SVS
Composer
http://getcomposer.org/gerenciador de dependênciasautoloadscripts
"require": {
"php": ">=5.3.2",
"symfony/asseticbundle": "devmaster",
"symfony/monologbundle": "devmaster",
"symfony/swiftmailerbundle": "devmaster",
"symfony/symfony": "2.1.*"
}
30PDS - IFFarroupilha - SVS
Integração contínua: Jenkins
http://jenkins-ci.org/Job:
integraçãotestes unitáriosvalidação coding standard & style
31PDS - IFFarroupilha - SVS
Ambiente de Teste & Homologação
jenkins
app.sandbox
app.demo
32PDS - IFFarroupilha - SVS
Aprendizados com o PDS-Scrum
Adotar um FrameworkCoding Standard & StyleTDDMaior proximidade com o cliente, reduz:
o impacto das mudançasa rejeição do produto
33PDS - IFFarroupilha - SVS
Bibliografia recomendada
97 Things Every Programmer Should KnowEditador por Kevlin Henney. O'Reilly
Clean Code – A Handbook of Agile Software CraftsmanshipRobert C. Martin (uncle Bob). Prentice Hall.
Design Patterns: Elements of Reusable Object-Oriented Software
Gamma et. al. Addison-Wesley.
34PDS - IFFarroupilha - SVS
Obrigado
All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy.