Agile Brazil 2013 - Contratando Software no BCB

999 views
956 views

Published on

Experiência de contratação de fábrica de software no Banco Central do Brasil combinada aos valores e às práticas ágeis do processo de desenvolvimento interno.

Apresentação realizada no evento Agile Brazil 2013, Brasília, 26/6/13.

Published in: Technology

Agile Brazil 2013 - Contratando Software no BCB

  1. 1. Contratando Software no Banco Central A fábrica ágil ao fim do arco-íris Eduardo Weller eduardo.weller@bcb.gov.br Javé Barbosa de Meneses jave.meneses@bcb.gov.br Brasília, junho de 2013.
  2. 2. Contratando Software no Banco Central Manifesto para Desenvolvimento Ágil de Software “Indivíduos e interações mais que processos e ferramentas Software em funcionamento mais que documentação abrangente Colaboração com o cliente mais que negociação de contratos Responder a mudanças mais que seguir um plano” http://www.agilemanifesto.org/iso/ptbr/
  3. 3. Contratando Software no Banco Central É possível conciliar os valores e princípios ágeis com as normas e orientações vigentes na contratação de projetos de software no âmbito governamental?
  4. 4. ...e antes de começar... • Processo de Contratação ou • Processo de Gestão de Demandas ou • Processo de Desenvolvimento de Software? As “restrições” só existem no setor público? Contratando Software no Banco Central
  5. 5. Agenda • Visão da área de TI do BCB • Histórico da família PDS-BC e das contratações • O contrato 50412/2012 • Futuro Contratando Software no Banco Central
  6. 6. Visão da área de TI do BCB • Servidores: 280, entre os quais 129 nas áreas de relacionamento com os departamentos de negócio. • Divisão de contratos com 11 servidores e a Divisão de Arquitetura, Processos e Relacionamento com Fábricas: 20. • Cerca de 160 contratos de TI, entre os quais 2 contratos para desenvolvimento e manutenção de sistemas e 1 contrato para a “fábrica de métricas”. • Linguagens: Java, .Net, NATURAL (somente legado). • Outras ferramentas: Sharepoint, BI (Microstrategy e Reporting Services), ETL (Informatica), ECM/BPM (Suite Documentum). • Previsão de projetos de TI a serem entregues em 2013: 86 (50 na área de soluções para os departamentos de negócio). Contratando Software no Banco Central
  7. 7. Histórico da família PDS-BC e das contratações • A partir de 2002: família PDS-BC baseada em RUP • Até 2011, a manutenção de sistemas apuradas em horas trabalhadas convertidas em UBCS (Unidade Banco Central de Serviço). • Em 2005, contratação da primeira fábrica de software com mensuração de serviços em PF. • Em 2006, operacionalização da “fábrica de testes”. • “Contratos” de requisitos de sistemas expressos em casos de uso. • Em 2008, definição de novo padrão arquitetural (WiSH) com critérios objetivos de qualidade de código (análise estática). • Em 2008, piloto interno de desenvolvimento com práticas ágeis (XP e SCRUM). Contratando Software no Banco Central
  8. 8. Histórico da família PDS-BC e das contratações • Em 2010, publicação do PDS-BC Ágil. Uso do Sonar para acompanhamento de projetos. • A partir de 2011, contratação de conjunto de serviços relativos a desenvolvimento, manutenção e outros serviços de TI associados, por meio de métricas objetivas, mensuradas na sua maioria em PF, convertidas para HST (Hora de Serviço Técnico). • Definição de metas para métricas de qualidade do produto (design, código e testes), extraídas de modo automático utilizando o Sonar. • Em 2012, contratação de fábrica de software no contexto “PDS-BC Ágil”, em PF. Desativação da “fábrica de testes”. Contratando Software no Banco Central
  9. 9. O Contrato 50412/2012 (aka “Fábrica de Software”) • Objeto: Serviços de Software, mensurados em Pontos de Função. – Projetos de novos sistemas e manutenção. • Licitados 16.560 PF (valor do PF em 2013: R$ 488,24). • Desafio: incorporar valores ágeis do processo de desenvolvimento interno. Em especial, incorporar: ATDD, integração contínua, entrega contínua, gerência de escopo (“a mudança bem-vinda”). • Desafio: substituir o contrato vincendo (“lastreado” em pacotes de casos de uso) e substituir a (elogiada) fábrica de testes. Contratando Software no Banco Central
  10. 10. O Contrato 50412/2012 (aka “Fábrica de Software”) • Não estabelece o processo de desenvolvimento – O processo não é contratado, o que se contrata é o produto. • Não restringe o local de trabalho da fábrica – A critério do contratante, a fábrica pode operar dentro das dependências do BCB, em sua sede ou parte no BCB/parte na sede. • Acordos de Níveis de Serviço rígidos – Baixa tolerância a defeitos, nenhuma tolerância a defeitos críticos. • Orientação a projetos (embora preveja manutenção) – Preenchimento do Plano de Subcontratação de Projeto (PSP). • Referencia os “padrões e processos do Banco Central” – E os padrões e processos do Banco Central mudam! Contratando Software no Banco Central
  11. 11. O Contrato 50412/2012 (aka “Fábrica de Software”) • Não estabelece o processo de desenvolvimento mas referencia os “padrões e processos do Banco Central” – Pré-requisito (óbvio): padrões e processos do Banco Central. – Necessidade: reduzir o tráfego de documentos, aumentar o tráfego de código executável entre as partes. Solução: testes de aceitação automatizados como especificações por exemplos, para a especificação de requisitos. – Necessidade: automatizar a verificação da aderência a padrões. Solução: uso da ferramenta Sonar na aceitação do produto. – Lição: a integração contínua é a melhor amiga do contratante. – Lição: a integração contínua também é a melhor amiga da contratada. – Lição: a contratada percebe o processo como uma forma viável para se atingir os padrões sem descumprir os ANS. Contratando Software no Banco Central
  12. 12. O Contrato 50412/2012 (aka “Fábrica de Software”) • Não estabelece o processo de desenvolvimento mas referencia os “padrões e processos do Banco Central” – Necessidade: disseminar os “padrões e processos do Banco Central”, não só para a contratada mas, principalmente, para os servidores contratantes. – Necessidade: estabelecer política de atualização dos padrões e processos. O contrato deve prever que os padrões e processos mudam (e mudar tem que ser bom para todos!) – O regime de acompanhamento do projeto estabelecido entre o gerente do BCB e a contratada influencia diretamente o andamento do projeto. – O aceite é do produto, sempre. Contratando Software no Banco Central
  13. 13. O Contrato 50412/2012 (aka “Fábrica de Software”) • Não restringe o local de trabalho da fábrica – Projetos “caixa-preta”: quando os profissionais estão distantes do solicitante ou gerente do projeto do BCB • Comunicação complexa. Sugestão: uso de videoconferência e ferramentas de comunicação remota (sistema de mensagens instantâneas e compartilhamento de desktop). • Links (VPN) para ambiente do contratante. É preciso manter o repositório do BCB atualizado, commits sempre, integração contínua. • Menor “pressão sobre o PF”: as decisões do gerente do projeto do BCB influenciam pouco a produtividade em PF da fábrica. • Risco do produto não estar em conformidade com a especificação: o gerente do projeto do BCB não toma decisões que influenciam a implementação do produto. • Sugestão: avaliar a complexidade dos requisitos (proporcional à complexidade da comunicação) antes de usar. Contratando Software no Banco Central
  14. 14. O Contrato 50412/2012 (aka “Fábrica de Software”) • Não restringe o local de trabalho da fábrica – Projetos “misto-quente”: parte dos profissionais estão distantes, parte estão próximos do solicitante ou gerente do projeto do BCB • Experiência do BCB: equipe de requisitos/testes próxima, equipe de arquitetos/programadores distante. • Comunicação menos complexa, menor risco nos requisitos. • VPN, commits sempre, integração contínua. Além disso: a equipe local precisa de um ambiente de trabalho produtivo. • Menor “pressão sobre o PF”: as decisões do gerente do projeto do BCB influenciam pouco a produtividade em PF da fábrica. E a fábrica ainda pode escalar os profissionais em outros projetos. • Propensão do projeto ao modelo cascata. • Lição: recorte por atividade pode não ser mais eficiente do que o recorte por funcionalidade - há perda de sinergia na equipe. Contratando Software no Banco Central
  15. 15. O Contrato 50412/2012 (aka “Fábrica de Software”) • Não restringe o local de trabalho da fábrica – Projetos “na casa”: todos os profissionais estão próximos do solicitante ou gerente do projeto do BCB • Comunicação simples, menor risco. • Commits sempre, integração contínua. E a equipe local precisa de um ambiente de trabalho produtivo. • Grande sinergia na equipe. • Maior “pressão sobre o PF”: o gerente do projeto do BCB toma decisões que podem influenciar bastante a produtividade em PF da fábrica. Possível conflito: valor de negócio x valor do PF. Outros problemas também podem passar para a “conta do gerente”. • Experiência do BCB: dois gerentes no projeto, o gerente solicitante e o gerente da contratada. Contratando Software no Banco Central
  16. 16. O Contrato 50412/2012 (aka “Fábrica de Software”) • Acordos de Nível de Serviço Rígidos – ANS fundamentados no prazo da entrega e na quantidade de defeitos. • Caso o produto não esteja de acordo com os padrões do BCB, a OS é rejeitada e o prazo de entrega será ferido. • Tolerância: 0 defeitos impeditivos. 5 defeitos não-impeditivos para cada 100 PF. • Em caso de defeitos após o aceite, há a possibilidade de abertura de OS de garantia, sem ônus para o contratante. Também há ANS para OS de garantia. • Futuro: incluir métricas de escopo e valor de negócio. – Lição: trâmite da OS não pode afetar o prazo de entrega acordado. – Lição: independente de processo ou práticas usados, são os ANS que determinam as entregas da fábrica. Contratando Software no Banco Central
  17. 17. O Contrato 50412/2012 (aka “Fábrica de Software”) • Acordos de Nível de Serviço Rígidos – OS por projeto, com retenção x OS por release. • Deve-se priorizar a entrega de software funcional o mais rapidamente possível dentro do projeto. • É possível alterar o escopo da OS em tempo de execução. A remuneração se dá com base no produto entregue. • Caso a mudança influencie a data da entrega final do produto, a contratada pode solicitar a abertura de uma OS de mudança. • Experiência do BCB: OS por release, com duração de cerca de 1 mês. Mas as equipes tendem a reduzir a duração para até 2 semanas, antecipando a entrega de software funcional para avaliação antes da data final da OS. • Futuro: apurar os ANS de forma combinada, usando as métricas de projeto e as de release. Contratando Software no Banco Central
  18. 18. O Contrato 50412/2012 (aka “Fábrica de Software”) • Simplificando o caminho feliz, na prática: 1. O contratante estabelece a visão do produto com o PO. 2. O contratante compartilha a visão do produto com a contratada. 3. A contratada levanta o backlog do projeto, com auxílio do contratante e do PO. 4. A contratada preenche o PSP. 5. O contratante aprova o PSP e abre a OS, de acordo com o planejamento das sprints/releases. 6. A contratada executa as sprints, com envolvimento do contratante e do PO na priorização, detalhamento de requisitos/testes, acompanhamento e validações parciais, entrega o software funcional e conclui a OS. 7. O contratante aceita a OS e o software entra em garantia. Contratando Software no Banco Central
  19. 19. O Contrato 50412/2012 (aka “Fábrica de Software”) • Simplificando o caminho muito feliz, na prática: 1. O PO, o gerente e a equipe de desenvolvedores (contratantes e contratados) são treinados e motivados nos valores e príncipios ágeis envolvidos no PDS-BC Ágil. 2. A equipe do projeto (isto é, todos) participa da etapa de Entendimento de Negócio, prevista no PDS-BC Ágil. 3. Workshops de requisitos são realizados para o levantamento e priorização do backlog. 4. O PSP é preenchido e aprovado de acordo com o conhecimento adquirido nos passos 1 a 3. 5. As entregas são realizadas de forma contínua e sustentável, dentro dos padrões de qualidade interna vigentes, agregando valor ao negócio e sem prejudicar o equilíbrio financeiro do contrato. Contratando Software no Banco Central
  20. 20. As entregas são realizadas de forma contínua e sustentável, dentro dos padrões de qualidade interna vigentes, agregando valor ao negócio e sem prejudicar o equilíbrio financeiro do contrato. Contratando Software no Banco Central
  21. 21. Futuro • Contratação de soluções híbridas (por exemplo, Java + DW + Portal Sharepoint). • Aumentar o foco em entrega de valor de negócio nas Ordens de Serviço. • Estudo de outras métricas, modelos de contratação (franquias) e metas para manutenção. • Modelos ágeis para manutenção de sistemas. • Ordens de Serviço: “PF-box”, “time-box”. • Código compartilhado com servidores x Garantia. • Parâmetros de qualidade externa do produto. • Revisão dos ANS para além da dimensão “prazo”. Contratando Software no Banco Central
  22. 22. ...e vejam também as palestras: • “Escopo é tudo”, Dharlan Oliveira e José Varanda • “Desenvolvimento de sistema com fábrica de software remota e técnicas ágeis”, Willian R. Araujo Obrigado! Contratando Software no Banco Central

×