TRABALHANDO EM EQUIPE NO VB.NET
Ola pessoal.. faz algum tempo que não entro mais aqui... mas acho que ta no hora de voltar....
Pois bem !!! estou com um pequeno problema !!!
Estou em um novo emprego e preciso trabalhar agora em equipe, porem nem eu nem o meu patrão sabemos como fazer isso no VB.NET, ou seja, não sei como é este trabalho, quais os procedimento que deve ser adotados ou quais o conceitos relacionados na programação em equipe.
Alguém por ai trabalha em equipe? podem me dar esta dica de como funciona?
Fico no aguardo !!!!
Pois bem !!! estou com um pequeno problema !!!
Estou em um novo emprego e preciso trabalhar agora em equipe, porem nem eu nem o meu patrão sabemos como fazer isso no VB.NET, ou seja, não sei como é este trabalho, quais os procedimento que deve ser adotados ou quais o conceitos relacionados na programação em equipe.
Alguém por ai trabalha em equipe? podem me dar esta dica de como funciona?
Fico no aguardo !!!!
Atualmente trabalho em um projeto sozinho, mas já trabalhei em projetos de equipes de mais de 30. Deve-se pesar algumas coisas:
1 - O nÃvel técnico da equipe, deve ser mais ou menos equiparado e mesmo assim, um lÃder técnico para resolver questões técnicas que possam surgir.
2 - Uma ferramenta para gerenciamento do código consolidado. A melhor, sem sombra de dúvida, é o Team Foundation Server, ou simplesmente TFS. Ele gerencia com maestria não só o código consolidado, mas versões e sub-versões, branches e tudo mais o necessário.
3 - PADRONIZAÇÃO. Essa é a palavra e ordem. Todos os membros da equipe, devem se reunir e decidir um padrão de codificação, para ter alguma coisa unificada, onde qualquer membro pode olhar o código de qualquer membro da equipe e entender o que está sendo feito. Aà que se vê que aquele método chamado [Ô]SubTpgMaEnt[Ô] só faz sentido pra quem o criou. Isso está diretamente ligado à documentação.
4 - Documentação: Documentação, se torna importante quando se trabalha em equipe. Cada propriedade, classe, form, método, relatório, package, enfim, cada elemento que possa envolver programação, deve ser documentado, ao menos um mÃnimo, para que quem for trabalhar com o mesmo, saiba do que se trata. Imagine que alguém fez uma classe que representaria um cliente chamada JJBoCeKo. Só de olhar para o nome da classe, não se tem a mÃnima idéia do que se trata, então o idela é que o nome da classe já [Ô]diga[Ô] o que é, para qualquer um entender. E mesmo assim, uma documentação atrelada, dando uma idéia, ainda que superficial do que ela faz.
5 - Figuras lÃderes: O lÃder técnico, o lider de projeto, o lider de BA ou equivalente.
- O lÃder técnico, obviamente para lidar com questões técnicas que possam surgir.
- O lider de projeto, que responde por coordenação de distribuição de tarefas, modelo de processos(RUP, SCRUM...), distribuição de tarefas e outras atribuições que possam haver de acordo com o projeto.
- LÃder de BA(business analyst, ou analista de negócio), esse é figura chave, é a pessoa que vai estar em contato com o cliente diretamente e deve entender do negócio de cabo à rabo. Qualquer coisa sobre o negócio ele deve saber. Por exemplo: O cliente quer controlar descontos, o cliente, não entende muito tecnicamente, e simplesmente explica para o BA o que ele quer fazer. O BA então se reúne com o lÃder técnico e explica o que o cliente quer. Ambos, então, um conhecendo melhor tecnicamente, e outra de negócio, decidem qual o melhor approach que deve ser tomado. Baseado nesse approach, se reúnem com o lÃder de projeto e explicam o que pretendem fazer. O lÃder de projeto, ao par do que vai ser feito, dá o veredicto, aprovando ou não. Se aprovado, o lÃder de projeto e técnico se reúnem e [Ô]quebram[Ô] a tarefa em tarefas menores e distribuem para a equipe, que enfim, vai desenvolver a solução, no padrão definido no Ãtem 3. Assim que pronto todo o desenvolvimento, o código é portado para execução para o ambiente de testes onde uma equipe de testes(ou mesmo o próprio cliente) vai dar o veredito final, aprovando ou não o trabalho. Quando e se aprovado, aà então, a solução de controle de descontos é publicada no ambiente de produção do cliente que vai enfim trabalhar com o que foi feito.
O processo como um todo para trabalho em equipe é mais ou menos assim e é muito dependente do projeto em si.
1 - O nÃvel técnico da equipe, deve ser mais ou menos equiparado e mesmo assim, um lÃder técnico para resolver questões técnicas que possam surgir.
2 - Uma ferramenta para gerenciamento do código consolidado. A melhor, sem sombra de dúvida, é o Team Foundation Server, ou simplesmente TFS. Ele gerencia com maestria não só o código consolidado, mas versões e sub-versões, branches e tudo mais o necessário.
3 - PADRONIZAÇÃO. Essa é a palavra e ordem. Todos os membros da equipe, devem se reunir e decidir um padrão de codificação, para ter alguma coisa unificada, onde qualquer membro pode olhar o código de qualquer membro da equipe e entender o que está sendo feito. Aà que se vê que aquele método chamado [Ô]SubTpgMaEnt[Ô] só faz sentido pra quem o criou. Isso está diretamente ligado à documentação.
4 - Documentação: Documentação, se torna importante quando se trabalha em equipe. Cada propriedade, classe, form, método, relatório, package, enfim, cada elemento que possa envolver programação, deve ser documentado, ao menos um mÃnimo, para que quem for trabalhar com o mesmo, saiba do que se trata. Imagine que alguém fez uma classe que representaria um cliente chamada JJBoCeKo. Só de olhar para o nome da classe, não se tem a mÃnima idéia do que se trata, então o idela é que o nome da classe já [Ô]diga[Ô] o que é, para qualquer um entender. E mesmo assim, uma documentação atrelada, dando uma idéia, ainda que superficial do que ela faz.
5 - Figuras lÃderes: O lÃder técnico, o lider de projeto, o lider de BA ou equivalente.
- O lÃder técnico, obviamente para lidar com questões técnicas que possam surgir.
- O lider de projeto, que responde por coordenação de distribuição de tarefas, modelo de processos(RUP, SCRUM...), distribuição de tarefas e outras atribuições que possam haver de acordo com o projeto.
- LÃder de BA(business analyst, ou analista de negócio), esse é figura chave, é a pessoa que vai estar em contato com o cliente diretamente e deve entender do negócio de cabo à rabo. Qualquer coisa sobre o negócio ele deve saber. Por exemplo: O cliente quer controlar descontos, o cliente, não entende muito tecnicamente, e simplesmente explica para o BA o que ele quer fazer. O BA então se reúne com o lÃder técnico e explica o que o cliente quer. Ambos, então, um conhecendo melhor tecnicamente, e outra de negócio, decidem qual o melhor approach que deve ser tomado. Baseado nesse approach, se reúnem com o lÃder de projeto e explicam o que pretendem fazer. O lÃder de projeto, ao par do que vai ser feito, dá o veredicto, aprovando ou não. Se aprovado, o lÃder de projeto e técnico se reúnem e [Ô]quebram[Ô] a tarefa em tarefas menores e distribuem para a equipe, que enfim, vai desenvolver a solução, no padrão definido no Ãtem 3. Assim que pronto todo o desenvolvimento, o código é portado para execução para o ambiente de testes onde uma equipe de testes(ou mesmo o próprio cliente) vai dar o veredito final, aprovando ou não o trabalho. Quando e se aprovado, aà então, a solução de controle de descontos é publicada no ambiente de produção do cliente que vai enfim trabalhar com o que foi feito.
O processo como um todo para trabalho em equipe é mais ou menos assim e é muito dependente do projeto em si.
Caro ROMERO_KCOAL
Concordo com o colega KERPLUNK o TFS junto com o Share Point server é realmente a ferramenta para integração de trabalhe e gerenciamento dos fontes dentro do Visual Studio e para outras ferramentas de desenvolvimento.
Existem outra mais antigas e um pouco descontinuada que vale apenas dar uma olhada para ver se seu ambiente de trabalho suporta ou soluciona seus problemas.
Soluções comerciais
Microsoft Visual SourceSafe (VSS) - produto da Microsoft para controle de versão, integrado a muitas IDEs da Microsoft.
Microsoft Team Foundation Server 2010 O Team Foundation Server automatiza e simplifica o processo de entrega de software para todos os membros da equipe.
Rational ClearCase - produto da IBM para controle de versão.
Borland StarTeam - produto da Borland para controle de versão e de equipe.
PVCS - Produto campeão da Serena do Brasil, controle de versão, possui também produtos que tem incorporada esta funcionalidade como o Dimension CM.
Soluções livres
* Concurrent Version System (CVS) - software livre clássico e bem testado.
* Subversion (SVN) - alternativa também livre e mais eficiente que o CVS. Muitas fundações não-governamentais sem fins lucrativos ligadas ao desenvolvimento de software internacionalmente reconhecidas como a Apache Foundation já adotaram o Subversion como padrão.
* Git - Software para controle de versão distribuÃdo com foco na velocidade.[4].
* MediaWiki - software livre que possui um sistema integrado de controle de versões. Sites com os projetos da Wikimedia, tal como a Wikipédia mantém o sistema MediaWiki para o controle das versões dos documentos. Esse sistema permite o trabalho simultâneo de milhares de voluntários.
* GNU CSSC
* Revision Control System (RCS)
* Bazaar[5]
* Darcs
* Mercurial - SCM usado para gerenciar o código fonte do Python
* Monotone
* SVK
Entre outros pois a melhor ferramenta de trabalho nem sempree é a mais car ou com o maior valor mas sim a que la que melhoe atende sewu trabalho.
Boa sorte.
Concordo com o colega KERPLUNK o TFS junto com o Share Point server é realmente a ferramenta para integração de trabalhe e gerenciamento dos fontes dentro do Visual Studio e para outras ferramentas de desenvolvimento.
Existem outra mais antigas e um pouco descontinuada que vale apenas dar uma olhada para ver se seu ambiente de trabalho suporta ou soluciona seus problemas.
Soluções comerciais
Microsoft Visual SourceSafe (VSS) - produto da Microsoft para controle de versão, integrado a muitas IDEs da Microsoft.
Microsoft Team Foundation Server 2010 O Team Foundation Server automatiza e simplifica o processo de entrega de software para todos os membros da equipe.
Rational ClearCase - produto da IBM para controle de versão.
Borland StarTeam - produto da Borland para controle de versão e de equipe.
PVCS - Produto campeão da Serena do Brasil, controle de versão, possui também produtos que tem incorporada esta funcionalidade como o Dimension CM.
Soluções livres
* Concurrent Version System (CVS) - software livre clássico e bem testado.
* Subversion (SVN) - alternativa também livre e mais eficiente que o CVS. Muitas fundações não-governamentais sem fins lucrativos ligadas ao desenvolvimento de software internacionalmente reconhecidas como a Apache Foundation já adotaram o Subversion como padrão.
* Git - Software para controle de versão distribuÃdo com foco na velocidade.[4].
* MediaWiki - software livre que possui um sistema integrado de controle de versões. Sites com os projetos da Wikimedia, tal como a Wikipédia mantém o sistema MediaWiki para o controle das versões dos documentos. Esse sistema permite o trabalho simultâneo de milhares de voluntários.
* GNU CSSC
* Revision Control System (RCS)
* Bazaar[5]
* Darcs
* Mercurial - SCM usado para gerenciar o código fonte do Python
* Monotone
* SVK
Entre outros pois a melhor ferramenta de trabalho nem sempree é a mais car ou com o maior valor mas sim a que la que melhoe atende sewu trabalho.
Boa sorte.
Confesso que sempre trabalhei sozinho... alias[Ô]brinquei[Ô] como se pode dizer, e este trabalho agora vai exigir tudo aquilo que eu nunca fazia, como a Documentação, padronização já tenho como meta, pois uso muito códigos reutilizáveis o que da grande agilidade neste conceito, porem não tenho conhecimento sobre os softwares informados e terei de testa-los um a um até achar o que melhor se enquadre dentro dos perfil da empresa.
Pense bem e analise com muita calma. Trabalho em equipe não é só repositório de código e boas práticas, há muito mais envolvido nisso do que pode parecer. Uma boa equipe de testes, definição de modelo(SCRUM, RUP...), documentação(que é também controlada pelo TFS), bug-tracking(também pode ser feito pelo TFS), distribuição e orçamento de tempo de trabalho com boa acuracidade, boa comunicação com o cliente... enfim tem muito envolvido e é melhor [Ô]gastar[Ô] um tempo analisando bem isso agora, antes de começar, do que perder 10x esse tempo depois tentando consertar.
Estarei sentando com e patrão, analisando, definindo padrões e conceitos, a principio seremos apenas eu e ele, porem a equipe pode ser fechada muito em breve, e isso, se começar com o pé direito não tem no que dar errado.
Valeu pela dica.. vai ajudar e muito...
Valeu pela dica.. vai ajudar e muito...
Tópico encerrado , respostas não são mais permitidas