Desenvolvimento ágil e Modelagem de dados  XML
Índice dos Fóruns » Metodologias de Desenvolvimento e Testes de Software
Autor Mensagem
ASOBrasil
JavaEvangelist
[Avatar]

Membro desde: 25/06/2005 20:57:30
Mensagens: 402
Localização: São Paulo
Offline

Para o pessoal que trabalha com desenvolvimento ágil...

Basicamente nos modelos de desenvolvimento ágil o sistema vai sendo elaborado, desenvolvido e entregue por etapas conforme a necessidade do cliente (me corrijam se eu estiver errado). Deve haver refatoração constante no sistema para que esse não vire um remendo só (isso em qualquer sistema, é claro!). Minha dúvida é: como fica a parte do banco de dados, sendo que esse não é tão fácil ser alterado, principalmente por causa das constraints e dos próprios dados em si! Exemplo: entreguei uma parte do sistema para o cliente e depois de algumas iterações descubro que por causa de uma funcionalidade tenho que fazer uma alteração no modelo, então vou ter que criar um script para "arrumar" esses dados! Isso não acaba ocorrendo com certa freqüência, já que não planejei meu modelo da dados desde o início do projeto?

Java Examples || Useful links for web developer
[Email]
Rubem Azenha
GUJ Master
[Avatar]

Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline

As mudanças no banco de dados que devem ser efetuadas são simplesmente... efetuadas

Normalmente as DMLs são versionadas e a cada "entrega" provavelmente passam uma baseline nelas.

Se por acaso uma coluna sumir ou algo assim, provavelmente a alteração vira acompanhada de um plano de migração (e um baita de um backup antes!).



Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
[WWW]
Emerson Macedo
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2006 16:55:28
Mensagens: 689
Localização: Rio de Janeiro - RJ
Offline

IMO, pode ser até uma vantagem visto que erros na modelagem podem ser corrigidos o quanto antes e não apenas quando todo o schema ja estiver definido e/ou o DB já com os seus terabytes de dados. Claro que mesmo neste último cenário pode acontecer mudanças.

This message was edited 1 time. Last update was at 10/01/2008 16:29:40


Emerson Macedo Leite
PMP - Ping-pong Master Player
CSM - Counter-Strile Manager
http://codificando.com

"Porque, assim como o relâmpago sai do oriente e se mostra até o ocidente, assim será também a vinda do filho do homem." - Mateus 24:27
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
paulohbmetal
GUJ Ranger
[Avatar]

Membro desde: 28/08/2003 18:19:45
Mensagens: 760
Localização: Goiânia - Goiás
Offline

ASOBrasil wrote:Para o pessoal que trabalha com desenvolvimento ágil...

Basicamente nos modelos de desenvolvimento ágil o sistema vai sendo elaborado, desenvolvido e entregue por etapas conforme a necessidade do cliente (me corrijam se eu estiver errado). Deve haver refatoração constante no sistema para que esse não vire um remendo só (isso em qualquer sistema, é claro!). Minha dúvida é: como fica a parte do banco de dados, sendo que esse não é tão fácil ser alterado, principalmente por causa das constraints e dos próprios dados em si! Exemplo: entreguei uma parte do sistema para o cliente e depois de algumas iterações descubro que por causa de uma funcionalidade tenho que fazer uma alteração no modelo, então vou ter que criar um script para "arrumar" esses dados! Isso não acaba ocorrendo com certa freqüência, já que não planejei meu modelo da dados desde o início do projeto?


É.... Boa preocupação...

A Paz!

Paulo Melo
JavaMetal - GoJava - JavaFree.org - Ubuntu Linux - Rising Cross
Sun Certified Java Programmer
Bacharel em Ciência da Computação
Especialista em Análise e Projetos de Sistemas de Informação
________________________________
"Que a cruz sagrada seja minha luz!!"
[Email] [WWW]
ASOBrasil
JavaEvangelist
[Avatar]

Membro desde: 25/06/2005 20:57:30
Mensagens: 402
Localização: São Paulo
Offline

microfilo wrote:As mudanças no banco de dados que devem ser efetuadas são simplesmente... efetuadas

Normalmente as DMLs são versionadas e a cada "entrega" provavelmente passam uma baseline nelas.

Se por acaso uma coluna sumir ou algo assim, provavelmente a alteração vira acompanhada de um plano de migração (e um baita de um backup antes!).


emerleite wrote:IMO, pode ser até uma vantagem visto que erros na modelagem podem ser corrigidos o quanto antes e não apenas quando todo o schema ja estiver definido e/ou o DB já com os seus terabytes de dados. Claro que mesmo neste último cenário pode acontecer mudanças.


O problema não é somente efetuar a mudança, isso tem que fazer mesmo. Minha preocupação é quantas vezes vou ter que efetuar essas mudanças já que não planejei a modelagem desde o começo! Não sei... ainda não consigo ver a parte de modelagem banco de dados se encaixando no processo de desenvolvimento ágil. Acho que a maioria de nós sabe como geralmente é dificil lidar com DBAs; imagine toda hora tendo que alterar o modelo de dados e fazer migrações porque o negócio não foi planejado, acho que vai ter muita treta na certa.


Java Examples || Useful links for web developer
[Email]
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 939
Offline

ASOBrasil wrote:
microfilo wrote:As mudanças no banco de dados que devem ser efetuadas são simplesmente... efetuadas

Normalmente as DMLs são versionadas e a cada "entrega" provavelmente passam uma baseline nelas.

Se por acaso uma coluna sumir ou algo assim, provavelmente a alteração vira acompanhada de um plano de migração (e um baita de um backup antes!).


emerleite wrote:IMO, pode ser até uma vantagem visto que erros na modelagem podem ser corrigidos o quanto antes e não apenas quando todo o schema ja estiver definido e/ou o DB já com os seus terabytes de dados. Claro que mesmo neste último cenário pode acontecer mudanças.


O problema não é somente efetuar a mudança, isso tem que fazer mesmo. Minha preocupação é quantas vezes vou ter que efetuar essas mudanças já que não planejei a modelagem desde o começo! Não sei... ainda não consigo ver a parte de modelagem banco de dados se encaixando no processo de desenvolvimento ágil. Acho que a maioria de nós sabe como geralmente é dificil lidar com DBAs; imagine toda hora tendo que alterar o modelo de dados e fazer migrações porque o negócio não foi planejado, acho que vai ter muita treta na certa.



Obviamente, existem técnicas para se minimizar a quantidade de refatoração em banco de dados.

Scott Ambler possui livros que falam sobre esse assunto.

- Agile Database Techniques - Effective Strategies for the Agile Software

- Refactoring Databases Evolutionary Database Design

Tb tenho uma entrevista onde ele desce a lenha nos DBAs, hehehe.


Ajude na criação do StackOverflow em português!!!

http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2


http://www.empresadigital.inf.br
http://twitter.com/afsalvati
ASOBrasil
JavaEvangelist
[Avatar]

Membro desde: 25/06/2005 20:57:30
Mensagens: 402
Localização: São Paulo
Offline

Taz wrote:
Obviamente, existem técnicas para se minimizar a quantidade de refatoração em banco de dados.

Scott Ambler possui livros que falam sobre esse assunto.

- Agile Database Techniques - Effective Strategies for the Agile Software

- Refactoring Databases Evolutionary Database Design

Tb tenho uma entrevista onde ele desce a lenha nos DBAs, hehehe.




Boa! Vou dar uma lida nas indicações!

Java Examples || Useful links for web developer
[Email]
Rubem Azenha
GUJ Master
[Avatar]

Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline

ASOBrasil wrote:

O problema não é somente efetuar a mudança, isso tem que fazer mesmo. Minha preocupação é quantas vezes vou ter que efetuar essas mudanças já que não planejei a modelagem desde o começo! Não sei... ainda não consigo ver a parte de modelagem banco de dados se encaixando no processo de desenvolvimento ágil. Acho que a maioria de nós sabe como geralmente é dificil lidar com DBAs; imagine toda hora tendo que alterar o modelo de dados e fazer migrações porque o negócio não foi planejado, acho que vai ter muita treta na certa.



A modelagem do banco poderia ser feita de forma incremental a cada iteração.

Não vejo onde isso traz tanto problemas. Se você modelar tudo no inicio, corre o risco de lá na frente ter problemas com o modelo e ter que alterar do mesmo jeito.

Enfim, eu nunca desenvolvi um projeto enorme utilizando desenvolvimento ágil, alguem que já o fez teve problema com a modelagem dos dados?



Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
[WWW]
IgOr_Kz
Thread.start()

Membro desde: 02/01/2008 10:48:05
Mensagens: 37
Offline

Amigos, passei por uma experiência assim recentemente, desenvolvemos um sistema de "médio-grande" porte, e utilizamos o desenvolvimento ágil, no inicio parece que o modelagem dos dados esta perfeita mais sempre quando o modelo é revisado, e novos módulos são adicionados surgem modificações na base de dados a solução é ser "bem organizado" versionar o sofware e os backups para nunca se perder se não...
E ainda tivemos vários problemas com o DBA que gostava de modificar as configurações do BD semanalmente ....afff
Emfim, é uma boa prática, pos, o cliente sempre tem algo novo e vc sempre se preocupa em entregar um módulo, particionando os esforços....

t+

Igor
paulohbmetal
GUJ Ranger
[Avatar]

Membro desde: 28/08/2003 18:19:45
Mensagens: 760
Localização: Goiânia - Goiás
Offline

microfilo wrote:
Enfim, eu nunca desenvolvi um projeto enorme utilizando desenvolvimento ágil, alguem que já o fez teve problema com a modelagem dos dados?


Pois é, teoricamente o problema estaria na questão de ter que entregar uma versão funcional a cada iteração e se essa "bombinha" já estiver em produção.

Em desenvolvimento não vejo grandes problemas, mas levar estas alterações para o cliente pode ser traumático. Acaba que a cada iteração teremos que ter um script de migração para o DB. Então assim, o seu DBA (lado negro da força) também tem que trabalhar de forma iterativa.

A Paz!

Paulo Melo
JavaMetal - GoJava - JavaFree.org - Ubuntu Linux - Rising Cross
Sun Certified Java Programmer
Bacharel em Ciência da Computação
Especialista em Análise e Projetos de Sistemas de Informação
________________________________
"Que a cruz sagrada seja minha luz!!"
[Email] [WWW]
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 939
Offline

paulohbmetal wrote:
microfilo wrote:
Enfim, eu nunca desenvolvi um projeto enorme utilizando desenvolvimento ágil, alguem que já o fez teve problema com a modelagem dos dados?


Pois é, teoricamente o problema estaria na questão de ter que entregar uma versão funcional a cada iteração e se essa "bombinha" já estiver em produção.



Na prática é viável tb. Qualquer projeto "enorme" é dividido em módulos/subsistemas. Vc faz entregas parciais desses módulos/subsistemas. Numa semana vc pode ter, por exemplo:

- entrega da iteração 3 do módulo 1
- entrega da iteração 4 do módulo 2
- entrega da iteração 2 do módulo 3

Ajude na criação do StackOverflow em português!!!

http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2


http://www.empresadigital.inf.br
http://twitter.com/afsalvati
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

Numa ambiente de desenvolvimento moderno e orientado a objetos isso não costuma ser problemátio. Os piores problemas acotnecem quando cismam em usar o banco de dados para integrar sistemas e isso sempre causa problema, seja num desenvolvimento iterativo ou não.

Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
[Email] [WWW] [Yahoo!] [MSN]
ASOBrasil
JavaEvangelist
[Avatar]

Membro desde: 25/06/2005 20:57:30
Mensagens: 402
Localização: São Paulo
Offline

pcalcado wrote:Numa ambiente de desenvolvimento moderno e orientado a objetos isso não costuma ser problemátio. Os piores problemas acotnecem quando cismam em usar o banco de dados para integrar sistemas e isso sempre causa problema, seja num desenvolvimento iterativo ou não.


Shoes,

Não entendi! O que você disse ficou muito abstrato para mim, poderia citar exemlos?

Java Examples || Useful links for web developer
[Email]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

Sobre qual parte em específico?

Com desenvolvimento OO o banco de dados perde seu papel principal. Mudanças no sistema vão afetar muito mais frequentemente o modelo de objetos do que o modelo de dados.

Bancos de dados para integraçã são um roblema porque cada mudança envolve mudar vários sistemas.

Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
[Email] [WWW] [Yahoo!] [MSN]
ASOBrasil
JavaEvangelist
[Avatar]

Membro desde: 25/06/2005 20:57:30
Mensagens: 402
Localização: São Paulo
Offline

Deixa eu ver se entendi... eu devo amarrar o menos possível meu modelo de dados ao meu modelo de negócios, é isso?

Java Examples || Useful links for web developer
[Email]
 
Índice dos Fóruns » Metodologias de Desenvolvimento e Testes de Software
Ir para:   
Powered by JForum 2.1.8 © JForum Team