Fabrício Pereira, M.Sc., CSM., Author at Blog ScrumHalf - Scrum e Agilidade - Software - Brasil https://blog.myscrumhalf.com/en/author/fabricio/ Aprenda Scrum e Agilidade no Blog do ScrumHalf, com mais de 10.000 visitantes/mês, para contribuir para a sua transformação ágil. Mon, 25 Jan 2021 14:43:19 +0000 pt-BR hourly 1 https://blog.myscrumhalf.com/wp-content/uploads/2018/10/cropped-ScrumHalf-logo-blog-no-twitter-150x150.png Fabrício Pereira, M.Sc., CSM., Author at Blog ScrumHalf - Scrum e Agilidade - Software - Brasil https://blog.myscrumhalf.com/en/author/fabricio/ 32 32 Scrum Master com conhecimento técnico https://blog.myscrumhalf.com/scrum-master-com-conhecimento-tecnico/#utm_source=rss&utm_medium=rss&utm_campaign=scrum-master-com-conhecimento-tecnico https://blog.myscrumhalf.com/scrum-master-com-conhecimento-tecnico/#respond Wed, 11 Jul 2012 12:00:11 +0000 http://blog.scrumhalf.com.br/?p=6199 Falaremos sobre o Scrum Master com perfil técnico, levantando a discussão de alguns pontos do que ele pode ou deve fazer ou não dentro da equipe Scrum. O artigo do Mike Cohn demonstra seis características do Scrum Master que ele considera que sejam as principais. E uma delas é: “Knowledgeable The best ScrumMasters have the […]

The post Scrum Master com conhecimento técnico appeared first on Blog ScrumHalf - Scrum e Agilidade - Software - Brasil.

]]>
Falaremos sobre o Scrum Master com perfil técnico, levantando a discussão de alguns pontos do que ele pode ou deve fazer ou não dentro da equipe Scrum.

O artigo do Mike Cohn demonstra seis características do Scrum Master que ele considera que sejam as principais. E uma delas é:

Knowledgeable The best ScrumMasters have the technical, market, or specific knowledge to help the team in pursuit of its goal. LaFasto and Larson have studied successful teams and their leaders and have concluded that ‘an intimate and detailed knowledge of how something works increases the chance of the leader helping the team surface the more subtle technical issues that must be addressed.'”

Ou seja, esse conhecimento técnico e do negócio proporcionam ao Scrum Master entender melhor os problemas do projeto e ajudar melhor a Equipe Scrum. Mas deve-se ter cuidado quanto a isso!

Uma das premissas do Scrum quanto ao papel do Scrum Master afirma que ele não deve estar comprometido com tarefas dentro do projeto e deve evitar se intrometer tecnicamente. Por dois motivos:

  • isso pode impedir que se concentre em resolver os impedimentos e problemas que estão no caminho do time (que no início da adoção são muitos graves),
  • além de pode acabar tirando o compromisso do time.

Então, no início da adoção é recomendável que o Scrum Master siga as recomendações e as práticas à risca, concentrando-se em cuidar só disso.

Por outro lado, à medida que o Scrum vai se tornando “sangue e carne” da organização, o Scrum Master vai sendo cada vez menos exigido ao passo que o time entra em um alto ritmo de produtividade sofrendo menos interferências. Isso permitiria que o Scrum Master fique um bom período sentado a espera de um novo impedimento.

Diante desse contexto, e desde que o Scrum Master concentre-se primeiramente em exercer bem o seu papel de Scrum Master, e que não atrapalhe o time nem o projeto, é totalmente aceitável que ele colabore com a equipe. Como é argumentado nos posts de Phillip CalçadoGuilherme Chapiewski, resume-se que, já que o manifesto ágil coloca as pessoas acima do processo, não se pode permitir que o processo coloque-se acima das pessoas, gerando um desenvolvedor (que pode estar dentro de um Scrum Master) completamente desestimulado e frustrado na equipe.

Então, você, Scrum Master com um perfil técnico nato, não se deixe frustrar pelo processo, só não atrapalhe a equipe e garanta o processo Scrum.

The post Scrum Master com conhecimento técnico appeared first on Blog ScrumHalf - Scrum e Agilidade - Software - Brasil.

]]>
https://blog.myscrumhalf.com/scrum-master-com-conhecimento-tecnico/feed/ 0
Filosofias de Projetos Ágeis https://blog.myscrumhalf.com/filosofias-de-projetos-ageis/#utm_source=rss&utm_medium=rss&utm_campaign=filosofias-de-projetos-ageis https://blog.myscrumhalf.com/filosofias-de-projetos-ageis/#respond Fri, 25 May 2012 12:00:16 +0000 http://blog.scrumhalf.com.br/?p=5548 Como em outro post já falamos de práticas ágeis de projeto, achei importante falar também das questões filosóficas que norteiam tais práticas. Então vamos a algumas delas: Projetos ágeis são emergentes, eles não são definidos de imediato. A visão completa de todo o projeto será evoluída ao passo em que são levantados novos requisitos, e […]

The post Filosofias de Projetos Ágeis appeared first on Blog ScrumHalf - Scrum e Agilidade - Software - Brasil.

]]>

Como em outro post já falamos de práticas ágeis de projeto, achei importante falar também das questões filosóficas que norteiam tais práticas. Então vamos a algumas delas:

Projetos ágeis são emergentes, eles não são definidos de imediato. A visão completa de todo o projeto será evoluída ao passo em que são levantados novos requisitos, e a medida que surjam novas tecnologias que possam ser úteis. Assim, não se faz necessário criar uma documentação completa do projeto antes de iniciar a implementação.
 
Os testes de unidade formam grande parte da documentação detalhada do projeto, ou seja, são especificações executáveis. É também por esse motivo que o TDD (desenvolvimento dirigido a testes) torna-se fundamental em projetos ágeis.
 
Basta que os modelos de projeto seja bons o suficiente, e que os detalhes de projetos sejam ajustados à medida que se codifica.
 
Diversos modelos. Devido à complexidade inerente ao desenvolvimento de software, os desenvolvedores necessitam de um amplo conjunto de modelos que permitam ter várias visões sobre o mesmo projeto.
 
Normalmente, só é necessário um subconjunto dos modelos para cada parte do trabalho a ser realizado durante a codificação do projeto.
 
Cada modelo pode ser usado para uma variedade de finalidades no processo de codificação.
 
Projetistas também deveriam codificar. Separar a fase de especificação do projeto da fase de codificação do projeto é arriscado, e isso também inclui as pessoas envolvidas em cada fase.
 
Modelo à prova. Sempre que possível, é importante por o modelo à prova, antecipando possíveis impactos ou obstáculos.
 
O feedback é seu amigo. Ser receptivo ao feedback, ou mesmo buscar ativamente o feedback, analisá-lo e agir em conformidade tornará o sistema melhor (de forma reflexiva, será melhor recebido pelos usuários), e provavelmente você irá aprender algo durante esse processo.
 
Às vezes, a ferramenta mais simples é uma ferramenta CASE complexa. Quando se trata de formalizar os requisitos levantados em modelos, às vezes é melhor usar ferramentas sofisticadas que possam gerar código.
 
Iterar repetidamente. Iterar entre as etapas, de forma que seja feito um pouco do trabalho em cada uma delas, de acordo com o necessário, ou mesmo iterar de frente para trás trabalhando em vários artefatos, cada um no momento certo.
 
Projetar é tão importante que deve ser feito todos os dias. Projetar não é apenas uma fase que se realiza no início do projeto antes de se chagar ao “trabalho real” de codificação.
 
Projetar no ambiente de implementação com bastante sensatez. É importante fazer uso das facilidades e recursos do ambiente de implementação, mas isso deve ser feito com muito cuidado para que não faça o sistema perder a portabilidade e tenha problemas quando o mesmo for instalado ou quando já estiver em produção.
 
Documentar o que for complicado. Se é complicado, então documente completamente, e invista um tempo para projetar bem um modelo.
 
Sem excessos na documentação. Como existe uma linha tênue entre documentar e se exceder nisso, apenas a prática lhe dirá como e até que ponto documentar.
 
Não se deixe enganar pelo pessoal tradicional em banco de dados. É importante compreender que a estrutura da base de dados também irá evoluir com o projeto, ela não será estática.
 

Referências:

The post Filosofias de Projetos Ágeis appeared first on Blog ScrumHalf - Scrum e Agilidade - Software - Brasil.

]]>
https://blog.myscrumhalf.com/filosofias-de-projetos-ageis/feed/ 0
Posturas para adotar Técnicas Ágeis na Evolução do Banco de Dados https://blog.myscrumhalf.com/posturas-para-adotar-tecnicas-ageis-na-evolucao-do-banco-de-dados/#utm_source=rss&utm_medium=rss&utm_campaign=posturas-para-adotar-tecnicas-ageis-na-evolucao-do-banco-de-dados https://blog.myscrumhalf.com/posturas-para-adotar-tecnicas-ageis-na-evolucao-do-banco-de-dados/#respond Wed, 21 Mar 2012 12:00:38 +0000 http://blog.scrumhalf.com.br/?p=4804 Neste post apresentaremos algumas posturas mentais e práticas que proporcionem a adoção de técnicas ágeis orientadas à evolução do banco de dados. Geralmente, para muitas organizações é bastante difícil adotar técnicas ágeis de banco de dados. Essa dificuldade se dá, não porque existe alguma complexidade inerentemente à base de dados, mas sim pela inércia cultural […]

The post Posturas para adotar Técnicas Ágeis na Evolução do Banco de Dados appeared first on Blog ScrumHalf - Scrum e Agilidade - Software - Brasil.

]]>
Postura Ágil BDNeste post apresentaremos algumas posturas mentais e práticas que proporcionem a adoção de técnicas ágeis orientadas à evolução do banco de dados. Geralmente, para muitas organizações é bastante difícil adotar técnicas ágeis de banco de dados. Essa dificuldade se dá, não porque existe alguma complexidade inerentemente à base de dados, mas sim pela inércia cultural existente em grande parte das organizações.

Para conseguir adotar tais técnicas ágeis, deve-se primeiramente aderir a algumas posturas mentais e práticas:

Mudar a maneira como olhamos para o desenvolvimento de software

  • De forma prática, para atender a tal postura, devemos aceitar que:
  • Todos trabalhem em conjunto, pois o desenvolvimento de software é um jogo de comunicação;
  • Os modelos e documentos só estão finalizados quando o sistema está pronto para uso, pois um determinado requisito pode mudar até no último momento com a necessidades dos interessados;
  • A agilidade requer uma autodisciplina significativamente maior;
  • A autoridade dentro do departamento de TI poderá mudar, já que as necessidades por habilidades específicas em cada momento do projeto pode requerer algum colaborador mais adequado a cada necessidade.
  • Todos precisam envolver-se ativamente, fazendo-se necessário que hajam especialistas em T.
  • Todos precisam continuamente rever suas abordagens e opiniões, pois muitas das opções técnicas que cada um dispõe, que têm seus pontos fortes e fracos, são balizadas por essas abordagens ou opiniões.

Compreender os desafios que enfrentamos

Os desafios mais difíceis a serem enfrentados não são de natureza técnica, mas sim dirigidos a pessoas. Assim, muitos profissionais, sejam eles experientes em TI, desenvolvedores novatos ou gerentes têm seus próprio desafios a serem superados.

Todos precisam se aproximar da agilidade mantendo sempre a mente aberta, se sem qualquer preconceito. E ao manter o contato com profissionais experientes em projetos ágeis, procurar aprender com eles essas novas abordagens do mundo ágil. Uma vez tendo a oportunidade de experimentas essas abordagens, os desenvolvedores experientes e gerentes devem aproveitar para remover os maus hábitos não-ágeis. Já os desenvolvedores novatos devem concentrar-se no aprendizado através de experiências com técnicas ágeis.

Sejamos pragmáticos

Existe uma distância significativa entre teoria e prática, pois apenas através da prática consegue-se incorporar verdadeiramente a agilidade e perceber vividamente os impactos dessa abordagem.

Proteger a equipe dos colaboradores não-ágeis

Se a cultura da organização ainda for burocrática, a equipe deve eleger alguém para protegê-la da burocracia organizacional, servindo como “fachada” da equipe para a organização. Assim, esse protetor irá permitir que a equipe trabalhe e agregue valor real à organização, e levará aos burocratas as solicitações realizadas fazendo parecer que a equipe está realizando os procedimentos vigentes.

Sejamos realistas

  • É preciso ser paciente e persistente, pois poderá levar mais que uma geração para que a cultura da empresa se torne ágil.
  • Não seja radical, isso pode espantar. A melhor maneira de convencer a organização é demonstrando naturalmente os resultados da sua prática ágil.
  • Não se enclausure, leia, converse, compartilhe experiências com outros profissionais que seguem técnicas ágeis.
  • Não subestime as políticas organizacionais, pois o processo de uma organização é o reflexo própria política dela.
  • Pode ser que realmente não se consiga mudar a organização. Dessa forma, pode-se tomar a difícil decisão de mudar de organização.

Referências:

The post Posturas para adotar Técnicas Ágeis na Evolução do Banco de Dados appeared first on Blog ScrumHalf - Scrum e Agilidade - Software - Brasil.

]]>
https://blog.myscrumhalf.com/posturas-para-adotar-tecnicas-ageis-na-evolucao-do-banco-de-dados/feed/ 0
Práticas Ágeis de Projeto https://blog.myscrumhalf.com/praticas-ageis-de-projeto/#utm_source=rss&utm_medium=rss&utm_campaign=praticas-ageis-de-projeto https://blog.myscrumhalf.com/praticas-ageis-de-projeto/#respond Wed, 25 Jan 2012 11:01:08 +0000 http://blog.scrumhalf.com.br/?p=4297 No desenvolvimento de software, ao iniciar o projeto você pode ter uma visão clara sobre o sistema e o que você quer que ele seja, uma vez que os requisitos já foram levantados. Entretanto, em algum momento durante o projeto os seus requisitos podem mudar, devido principalmente à solicitações do cliente, e a sua imagem […]

The post Práticas Ágeis de Projeto appeared first on Blog ScrumHalf - Scrum e Agilidade - Software - Brasil.

]]>
Modelagem Ágil

No desenvolvimento de software, ao iniciar o projeto você pode ter uma visão clara sobre o sistema e o que você quer que ele seja, uma vez que os requisitos já foram levantados. Entretanto, em algum momento durante o projeto os seus requisitos podem mudar, devido principalmente à solicitações do cliente, e a sua imagem sobre ele pode não ser mais clara.

Especialmente em métodos ágeis, sempre são esperadas mudanças nos requisitos do sistema. Por tudo isso, deve-se ter um bom projeto para o sistema desde o início, e ainda o arquiteto e desenvolvedor precisam estar preparados para as mudanças. Para isso, o projeto do sistema deve ser preciso para que seja claro a todos que estejam trabalhando nele. Também é preciso ter um método eficaz para as mudanças de projeto, de forma que todos sejam atualizados com as informações. Desta forma, a concepção do software em métodos ágeis ocorre em todo ciclo de vida.

Antes das metodologias ágeis, ao projetar um software era necessário um documento extenso e detalhado sobre as possíveis necessidades para o desenvolvimento do software. Dessa forma, corre-se o risco dos desenvolvedores não lerem este documento completamente, e assim não compreenderem exatamente como o sistema será. De forma ágil, a concepção é feita de maneira simples no início, e espera-se que uma comunicação estreita e constante durante todo o processo de desenvolvimento sempre mantenha os desenvolvedores atualizados. Então, aqui estão algumas práticas de projeto do software utilizadas em métodos ágeis:

  • Previsão da arquitetura – leve modelagem no início de um projeto para identificar e pensar de forma crítica nas questões de nível arquitetural.
  • Modelagem por iteração – leve modelagem por alguns minutos no início de uma iteração/sprint para ajudar a identificar a estratégia da sua equipe para essa iteração.
  • Modelo à prova – leve modelagem por alguns minutos de forma prática para pensar a respeito da sua solução prática.
  • Teste anterior ao design (TFD) – Escrever um único teste, antes de escrever código de produção suficiente, para testá-lo.
  • Refatoração – Faça pequenas alterações em uma parte da sua solução que melhore a qualidade sem alterar a semântica dessa parte.
  • Integração contínua – Automaticamente compilar, testar e validar os componentes de sua solução sempre que houver uma dessas alterações nos componentes.

Percebam que estas práticas correspondem sequencialmente a práticas desde o alto nível arquitetural, até o baixo nível de programação.


Referências:

  • Agile software development: principles, patterns, and practices. Upper Saddle River. (Martin, R. – 2003)
  • Agile Design Practices: Lean Requirements Practices for Teams, Programs, and the Enterprise, Pearson Education, http://www.agilemodeling.com/essays/agileDesign.htm. (Leffingwell, D. – 2012)

The post Práticas Ágeis de Projeto appeared first on Blog ScrumHalf - Scrum e Agilidade - Software - Brasil.

]]>
https://blog.myscrumhalf.com/praticas-ageis-de-projeto/feed/ 0
Habilidades de um DBA Ágil https://blog.myscrumhalf.com/habilidades-de-um-dba-agil/#utm_source=rss&utm_medium=rss&utm_campaign=habilidades-de-um-dba-agil https://blog.myscrumhalf.com/habilidades-de-um-dba-agil/#respond Mon, 26 Dec 2011 19:09:32 +0000 http://blog.scrumhalf.com.br/?p=3951 Olá pessoal, como foi o Natal de vocês? Espero que com a adoção das práticas ágeis, ninguém tenha tido surpresas no trabalho que pudessem atrapalhar um maravilhoso Natal com a família e amigos. Bom, então vamos a mais um post sobre as práticas ágeis relacionadas à gestão e evolução das bases de dados. No post Evolução […]

The post Habilidades de um DBA Ágil appeared first on Blog ScrumHalf - Scrum e Agilidade - Software - Brasil.

]]>

Olá pessoal, como foi o Natal de vocês? Espero que com a adoção das práticas ágeis, ninguém tenha tido surpresas no trabalho que pudessem atrapalhar um maravilhoso Natal com a família e amigos. Bom, então vamos a mais um post sobre as práticas ágeis relacionadas à gestão e evolução das bases de dados.

No post Evolução de Bancos de Dados em Projetos Ágeis foi mostrado que processos e práticas podem ajudar na evolução do banco de dados em projetos ágeis. Vimos que, embora a equipe de desenvolvimento seja ágil, nem sempre o DBA está disposto a abrir mão de certas práticas “tradicionais”, pois estão trabalhando com todo cuidado para que os dados possam ser mantidos por longo tempo. Então, que tipo de habilidades o DBA poderia acrescentar à sua prática diária na gestão das bases de dados em projetos ágeis, de forma a melhorar a sintonia com o restante da equipe, e sem abrir mão de todo o cuidado estritamente necessário para com os dados?

Primeiramente, é preciso entender que um DBA Ágil é qualquer um que está ativamente envolvido na criação e evolução dos aspectos relacionados aos dados de uma ou mais aplicações. Para tal tarefa, um DBA ágil precisa das “tradicionais” habilidades em tarefas como programação em banco de dados, administração de banco de dados, testes sobre os dados e modelagem de dados. Além disso, um DBA Ágil precisa ter pelo menos uma compreensão básica de todos os aspectos relacionados ao processo de construção de software (ou seja, deve ser um especialista geral), como também precisa de habilidades com desenvolvimento evolutivo, e leves habilidades que permitam uma efetiva colaboração com o restante da equipe.

Vamos então, levantar pontualmente o que os DBAs fazem na prática, para compreender quais são as habilidades que um DBA ágil deve ter:

  1. DBAs Ágeis trabalham muito próximos aos desenvolvedores das aplicações para implementar e apoiar os esforços do desenvolvimento orientado a dados. Como os DBAs são responsáveis (ou corresponsáveis) pelas fontes de dados e trabalham estreitamente com uma ou mais equipes de desenvolvimento, é preciso que falem a mesma língua para que a colaboração seja efetiva. Assim, os DBAs Ágeis precisam aprender técnicas de desenvolvimento fundamentais, incluindo os conceitos básicos de orientação a objetos, de UML, de encapsulamento no acesso ao banco de dados e de mapeamento O/R. Opcionalmente, eles devem estar preparados para modelar os dados usando a UML com o uso de ferramentas de desenvolvimento de fornecedores, como a Oracle e a IBM que agora suportam modelagem de dados com UML.
  2. DBAs Ágeis devem trabalhar de forma evolutiva, se não for ágil, da mesma forma como os desenvolvedores trabalham. O maior ganho de potencial para os DBAs Ágeis é que eles terão de trabalhar em um processo iterativo e incremental, em sintonia com as diversas equipes de projetos. Processos de desenvolvimento modernos, como o Unified Process ou eXtreme Programming (XP), não fornecem requisitos detalhados de antemão, nem se concentram em modelos detalhados (e certamente não detalham os modelos de dados previamente). Esses processos irão reunir alguns requisitos iniciais e dar uma visão geral da arquitetura, e depois evoluir os seus modelos à medida que a compreensão do domínio do problema evolui, assim como os requisitos mudam de acordo com as partes interessadas. É importante também saber ser um DBA Ágil mesmo em equipes de projeto que optar por trabalhar de uma forma mais serial, de maneira que optem por elaborar um modelo conceitual de dados detalhado logo no início de seu ciclo de vida, e em que as equipes são poucas e separadas, pois o DBA será esperado para apoiá-las também. DBAs Ágeis têm que comunicar todas as restrições impostas pelas fontes de dados legadas, trabalhando com os desenvolvedores para compreender os impedimentos e resolvê-los adequadamente. Tanto os desenvolvedores, como os profissionais de dados precisam ao menos adotar técnicas evolutivas em banco de dados, se não forem ágeis. Isto inclui modelagem de dados ágil, refatoração de banco de dados, TDD, e testes de regressão do banco de dados. DBAs Ágeis reconhecem que precisam ser ágeis, que podem tomar uma abordagem ágil para a modelagem e documentação, que os modelos de dados não conduzem os modelos de objetos (e vice-versa), que precisam de novas ferramentas (já que a maioria das ferramentas existentes para DBAs refletem o mentalidade de série do passado), e que os desenvolvedores ágeis preferem trabalhar de forma isolada em sua própria parcela no desenvolvimento da aplicação. Assim, adotando as mais comuns e melhores práticas ágeis para banco de dados também é uma excelente ideia.
  3. DBAs Ágeis precisam trabalhar junto aos administradores da empresa para tirar proveito destes, buscando ajudar a evoluir os meta-dados, os padrões e as diretrizes corporativas. DBAs Ágeis interagem com administradores da empresa, em particular com os administradores de dados operacionais, para ajudar toda a equipe a produzir um trabalho que reflita a estratégia global da organização. Os DBAs também querem tirar proveito de qualquer atual esforço de Master Data Management (MDM), se houver. Não há nenhuma razão, a não ser de ordem política, para que isso não possa ocorrer de forma ágil.
  4. DBAs Ágeis precisam trabalhar junto aos arquitetos corporativos para garantir que o seu trabalho reflita a visão arquitetural. Da mesma forma, os DBAs Ágeis irão trabalhar com a equipe de arquitetura empresarial, se houver, para tirar proveito da infraestrutura e estratégias existentes. E novamente, isso também pode ser realizado de forma ágil.

E assim, incorporando gradativamente essas habilidades ágeis ou evolutivas, um DBA pode aumentar significativamente os seus potenciais, e passar a colaborar de forma muito mais eficiente nos projetos ágeis.


Referências:

The post Habilidades de um DBA Ágil appeared first on Blog ScrumHalf - Scrum e Agilidade - Software - Brasil.

]]>
https://blog.myscrumhalf.com/habilidades-de-um-dba-agil/feed/ 0