O objetivo deste blog é disseminar nosso conhecimento adquirido ao longo de anos de experiência e projetos entregues em diversos segmentos de negócio. Nossa missão é a troca de experiências e atuação em conjunto nas melhores práticas para gestão de processos e projetos.
segunda-feira, 24 de setembro de 2012
terça-feira, 4 de setembro de 2012
Product Owner no Scrum: a Alma do Negócio
segunda-feira, 2 de julho de 2012
O relacionamento entre os analistas de negócio e desenvolvedores de software.
sexta-feira, 13 de abril de 2012
O que é Análise de Negócios?
Publicado por Fabrício Laguna, da Gigante consultoria.
terça-feira, 6 de março de 2012
1ª Treinamento SCRUM aos sábados.
quarta-feira, 29 de fevereiro de 2012
Modelagem Ágil: aperfeiçoando a comunicação e a compreensão
- Técnico:
- A solução não atende aos
requisitos do projeto (escalabilidade, performance, confiabilidade, custo
etc.);
- Devido aos desafios técnicos, prazos são ultrapassados, até que os patrocinadores perdem a confiança e encerram o projeto.
- Funcional:
- A equipe não compreende os
requisitos fornecidos;
- Os requisitos fornecidos não são os requisitos corretos.
A Modelagem Ágil é coerente com o Manifesto Ágil e seus princípios. Portanto, é uma prática que pode fazer parte do seu repertório de ferramentas ágeis.
- Compreensão
- Compreendemos o domínio do
problema?
- Compreendemos o domínio da
solução?
- Compreendemos a transição entre esses dois domínios?
- Comunicação
- As partes interessadas são
capazes de comunicar os requisitos para aqueles que irão desenvolver a
solução?
- Os membros da equipe que
desenvolverá a solução são capazes de comunicar os detalhes da solução
entre eles?
- A equipe de desenvolvimento é
capaz de comunicar os desafios e alternativas para as partes
interessadas?
Indivíduos e interações são mais importantes que processos e ferramentas;
Responder a mudanças é mais importante que documentação;
Colaboração com o cliente é mais importante que negociação de contratos;
Software funcionando é mais importante que seguir um plano.
- O processo de modelagem e os
modelos suportam comunicação e compreensão;
- A Modelagem Ágil busca criar
modelos simples usando ferramentas simples (adote a simplicidade);
- O foco é entregar software, não modelos. Modelos devem ser usados quando e onde adicionam valor. Se eles não agregam valor nem nos auxiliam no sentido de entregar software funcionando, então não devem ser utilizados;
- Modelos devem ser mantidos pelo tempo necessário. Se um modelo serviu ao seu propósito e deixa de ser necessário, jogue fora. Isso permite manter a agilidade sem burocracia. Por outro lado, se seu modelo pode ainda ser útil, guarde ou recicle.
- A Modelagem Ágil utiliza múltiplos modelos para diferentes perspectivas, níveis de abstração e públicos. Cada modelo é criado a partir de um objetivo e para satisfazer determinado público.
- A Modelagem Ágil combina modelos formais e informais conforme a situação, público-alvo e objetivos. Por exemplo, um modelo poderia ser composto de formas simples desenhadas a lápis ajudando o essencial de um sistema, ou utilizando diagramas detalhados de classes do UML.
Conclusões
Fonte: INFOQ
quinta-feira, 9 de fevereiro de 2012
Pra que serve o analista de negócios?
Quem já trabalhou em um projeto complexo e demorado de desenvolvimento de software sabe que o envolvimento de um analista de negócios pode significar a diferença entre o sucesso e o fracasso de um projeto.
De um modo geral, a maioria dos analistas de negócio possui os requisitos e a competência como principal linha de conduta em sua apresentação e abordagem. Se você acredita que para que um projeto de software tenha sucesso ou fracasso com base na qualidade dos requisitos, então você também deve acreditar que para esses mesmos projetos a base é ter em seu cenário o analista de negócios.
Todos concordam sobre a importância do papel do analista de negócios, mas poucos sabem exatamente o que eles fazem qual o seu papel. Em síntese: são responsáveis pela comunicação e colaboração entre a área de negócios e a TI, tendo como um de seus principais atributos a responsabilidade de agir como um canal entre as partes e a equipe.
No intuito de entender melhor o mundo dos analistas de negócio, a http://requirementssolutions.com/ realizou uma pesquisa global a fim de identificar quais são as principais atribuições de um analista de negócios e considerando que o tempo integral de um profissional desse gabarito corresponde a um “mix” de atividades apurou que: Gerenciar requisitos (70%), Elaborar casos de uso (55%), Remodelar/redesenhar os processos de negócio (50%) e Desenvolver protótipos/telas da aplicação (40%) fazem parte de um único dia de trabalho, e concluem que, 100% do dia não é suficiente para executar suas principais atividades. (Entrevista realizada com 1700 profissionais)
Muito se enganam os que pensam que nas metodologias ágeis o analista de negócios deixou de existir, na verdade, fundamentalmente as atividades por eles exercidas são mais variadas, ou seja, o quadro de atribuição cresce e ao mesmo tempo diversifica (tema que abordarei em outro post), mas o objetivo crucial desse elemento sempre será melhorar a comunicação entre desenvolvedores, arquitetos de sistemas e participantes do projeto. Tradicionalistas consideram que a atuação de um analista de negócios independe do método (ágil ou tradicional), é imprescindível, e afirmam que sua presença é a garantia do sucesso e no caso de ausência o fracasso do projeto.
Outros estudos comprovam que os melhores analistas de negócio são organizados e grandes comunicadores, têm a capacidade de destilar as informações críticas das partes interessadas do projeto, muitas vezes pelo seu talento nato ou por uma ampla gama de técnicas de abordagem e modelagem do cenário.
Quando comecei a atuar com TI, percebi que o analista de negócios seria a profissão que tornaria esse profissional em um dos mais essenciais de toda uma organização, o único que realmente têm a competência para ver os dois lados sem os vícios peculiares e que cuja meta seria aplicar a tecnologia para apoiar iniciativas de negócios que ajudariam a empresa em aperfeiçoar recursos, aumentar lucros e diminuir os custos operacionais.
Como opinião pessoal, acredito que uma organização possa formar sua área de análise de negócios (inclusive sou líder e formador de um time na entidade que atuo), porém desenvolver as capacidades e as habilidades de um analista de negócios remete a tempo e maturação, não é qualquer um que tem a condição de exercer essa função e apenas com muito treinamento e “ritmo de jogo” que lapidamos esse profissional.
- Os analistas de negócios devem ser capazes de facilitar a aplicação conjunta de design nas sessões que envolvem grupos compostos de negócios e técnicos. Eles precisam ativamente encorajar as pessoas a contribuir com suas idéias;
- Precisam fazer o mapeamento do processo, isto é, concentrar as conversas e formatar em um contexto geral a lógica seqüencial das ações e a continuidade operacional das atividades;
- Aplicar os dados de modelagem para organizá-los e fazer fluir as informações através dos processos de negócios, na verdade, uma modelagem de dados lógica.
Construir a credibilidade
O analista de negócios atua como um rosto do cliente para a equipe de desenvolvimento, ele deve ser suficiente credível à equipe e a mesma deve ter fé absoluta em suas ações.
Após vários anos de carreia atuando em uma fábrica de software, aprendi que a equipe de desenvolvimento deve confiar plenamente no analista de negócios, essa confiança se adquire com a devida transparência, proximidade e coerência.
- Interagir com desenvolvedores regularmente e manter uma relação direta e sadia, ele deve saber que você esta lá e em qualquer momento pode ser acionado para os devidos esclarecimentos dos requisitos;
- Compartilhar com a equipe de desenvolvimento e com a área de negócios o contexto de sua atividade/detalhamento realizada, pois essa será sua sustentação “técnica/funcional”, e crédito será percebido quando comprometer ambos os lados no atendimento de seus desejos, necessidades e satisfação de suas expectativas.
- Pode ser considerado um diferencial, explicar aos times de desenvolvimento e qualidade de software a regra de negócio, e demonstrar seu domínio da informação, essa atitude reflete sua segurança e capacidade de garantir o contexto dos requisitos.
- Por fim, ser honesto e direto em assumir o desconhecimento de determinado assunto e humilde em solicitar quantas vezes for preciso à devida explanação do tema.
Esse é um tema muito rico e caloroso, a oportunidade que tive de estudar sobre o assunto e dissertar minha opinião reforçam como é bom ser um analista de negócios.
quinta-feira, 26 de janeiro de 2012
Perigos da separação entre o QA e a equipe ágil.
Conseqüências da separaçãoO problema começava na divisão por área do conhecimento. Outra questão era a aparente separação hierárquica: o analista de qualidade se preocupava mais em aferir e cobrar um processo de qualidade em si do que propriamente entregar, em conjunto com a equipe, um produto de qualidade que atendesse ao cliente.
Da forma que estava sendo feito, o processo de qualidade já interferia por si só em um dos princípios do manifesto ágil, pois desconsiderava as pessoas e a comunicação aberta. Focava, em vez disso, em impor um conjunto de regras e padrões burocráticos, que impediam o progresso produtivo e incremental. Já cheguei a presenciar o analista de qualidade dizendo que o contrato de QA (Quality Assurance) precisava ser seguido, mesmo que isso acontecesse em detrimento de toda a agilidade que a equipe estava realizando.
Essa situação tornou o projeto lento, muito formal e pernicioso para a equipe, causando conflitos incessantes entre o analista de qualidade e todos os demais. E quando se questionava o trabalho do profissional QA, ele respondia apenas que devia seguir o fluxo e o processo adotado.
Onde existem múltiplos "departamentos" trabalhando com objetivos antagônicos, o resultado é uma guerra entre essas divisões, com cada parte buscando ter mais poder que a outra, infelizmente.
A situação se agravava quando o analista de qualidade cobrava do ScrumMaster quanto ao posicionamento dos bugs da aplicação. Chegava a formalizar toda a comunicação por email, com a intenção de se "blindar" de eventuais problemas que surgissem no projeto.
Não é mais saudável, ágil e produtivo termos uma equipe única em prol de um objetivo comum?
Um problema comumMichael Azoff tratou desse assunto em sua revisão dos últimos 10 anos do Agile, onde abordou o que evoluiu e regrediu neste período. Parece, portanto, que não é somente aqui no Brasil que ocorre o problema, e que existem de fato "gargalos" gerados pela separação dos times de QA e de desenvolvimento.
Ron Jeffries também aborda o assunto em seu artigo sobre Quality Assurance, no qual responde a questões de um gerente da área de qualidade sobre como o QA se "encaixa" no Extreme Programming. Jeffries recomenda que o QA se concentre no planejamento e na execução de testes funcionais, apoiando o cliente na homologação das entregas do produto final. Sugere ainda que o gerente de qualidade realize um treinamento e se integre ao time. Com isso, o time fica com um objetivo único: entregar um software que funcione e que satisfaça o cliente.
Enfim, em um cenário ágil, o analista de qualidade poderia cumprir com as seguintes responsabilidades:
• Integrar-se ao time, colaborando na prevenção de possíveis bugs, além de discutir com os desenvolvedores sobre as funcionalidades;
• Validar funcionalmente as histórias de usuários (user stories), baseando-se nas expectativas do usuário e não a simplesmente na totalidade de bugs encontrados;
• Realizar os testes de aceitação do usuário com o Product Owner;
• Descrever os testes de aceitação, a fim de que os desenvolvedores ajudem a automatizá-los;
• Escrever testes automatizados e integrá-los a uma ferramenta de integração contínua;
• Ajudar a definir indicadores de qualidade e assegurar a qualidade do produto.
O que você acha?