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: