Ferramentas para ajudar uma pequena loja a ter uma pontuação mais alta no “Teste Joel”

StackOverflow https://stackoverflow.com/questions/15024

Pergunta

As perguntas de 1 a 4 do Teste Joel na minha opinião, trata-se das ferramentas de desenvolvimento usadas e do sistema de suporte implementado para desenvolvedores:

  1. Você usa controle de origem?
  2. Você pode fazer uma construção em uma única etapa?
  3. Você faz builds diários?
  4. Você tem um banco de dados de bugs?

Estou apenas curioso para saber quais ferramentas gratuitas/baratas (mas boas) existem para pequenas empresas de desenvolvimento que não possuem grandes contas bancárias para usar para obter uma resposta positiva a essas questões.

Para controle de origem, eu sei que o Subversion é uma ótima solução, e se você trabalha sozinho, pode até usar o SourceGear Cofre.

Eu uso o NAnt para meus projetos maiores, mas ainda não configurei um script para construir meus instaladores, bem como executar as ferramentas de ofuscação, tudo em uma única etapa.Alguma outra sugestão?

Se você puder responder sim à construção em uma única etapa, acho que criar compilações diárias seria fácil, mas quais ferramentas você recomendaria para automatizar essas compilações diárias?

Para uma equipe de um ou dois homens, já foi discutido no SO que você pode usar o FogBugz On Demand, mas que outras soluções de rastreamento de bugs existem para equipes pequenas?

Foi útil?

Solução

  1. fonte de controle: Subversão ou Mercurial ou Git
  2. automação de construção: NAnt, MSBuild, Ancinho, Maven
  3. integração contínua: CruiseControl.NET ou Contínuo ou Jenkins
  4. rastreamento de problemas: Trac, Bugzila, Gêmeos (se for .NET e free-ish)

Não se esqueça dos testes automatizados com NUunidade, Ajustar, e WatiN.

Outras dicas

Minha pilha preferida:

1) Subversão.Estou intrigado com o controle de origem distribuído, mas ainda não tive chance de tentar nenhum com raiva.Para uma solução centralizada, o svn é sólido como uma rocha.

2) Formiga.É uma alegria usar o Maven quando está funcionando, mas como um antigo hacker, acho que o Maven é difícil de seguir quando as coisas dão errado.

3) Hudson.Não foi mencionado até agora, mas definitivamente vale a pena investigar.Ferramenta incrivelmente utilizável e mantida ativamente.Anteriormente, pagamos pelo Anthill Pro, que parecia frágil e era doloroso de consertar cada vez que dava errado.

4) Pagamos pela jira.Não é barato, mas é muito mais utilizável do que as opções de código aberto que analisamos e também é muito flexível.

Minha pilha de engenharia:

  1. Git (adoro o GitHub, mas o Git não requer uma solução hospedada)
  2. Ancinho
  3. CruiseControl.rb
  4. FogBugz

Sem dúvida, essas escolhas são influenciadas pela minha pilha de desenvolvimento, que geralmente inclui Ruby, Rails, SQLite, Firefox e OSX.

Você pode querer dar uma olhada em uma pergunta minha existente para encontrando uma alternativa ao Team System.Há muitas recomendações lá também.

  1. Git
  2. Fazer
  3. Cron
  4. Trac

Sou um homem de poucas sílabas ;-)

Certifique-se de usar algum tipo de controle de versão onde os desenvolvedores possam facilmente criar ramificações privadas quer queira quer não, e então pegar sua ramificação privada e comprimi-la em um único commit na ramificação principal.Dessa forma, os desenvolvedores individuais — ao contrário da organização — podem obter os benefícios do controle de versão sem poluir o código de ninguém (e retardar seu trabalho) com commits quebrados.

Esse recurso é o que eu gosto no git.Acho que só está presente em sistemas distribuídos de controle de versão;usar um DVCS não significa que você realmente precise fazer desenvolvimento distribuído.

Em relação à construção em uma etapa, make é a ferramenta de construção padrão e funciona muito bem para a maioria das tarefas.Eu aceitaria isso, a menos que você tenha um bom motivo para não fazê-lo.

Você deseja compilações diárias, coloque o comando build em seu cron.daily.Configure um gancho procmail para lidar com o email do cron, se necessário.

Para rastreamento de bugs, use $(apt-cache search bug tracking).Basicamente, desde que esteja escrito “rastreador de bugs” na caixa e você saiba que outras pessoas o estão usando, provavelmente funcionará bem.Entre os frequentadores estão bugzilla, mantis e trac.

Não tenho nenhuma ferramenta para sugerir, mas tenho uma sugestão sobre as compilações diárias.Sempre respondo sim a essa pergunta, mesmo não tendo builds diários.Em vez disso, fazemos um build toda vez que alguém faz um commit.Assim, detectamos quaisquer problemas quase imediatamente.Se algum de nossos projetos tiver LOC suficiente para que a construção leve mais do que um tempo trivial, isso também irá degradar graciosamente na direção de uma construção diária.

Um bom rastreador de problemas relativamente barato foi axoSoft OnTime.Eu usei isso por anos antes de obter o MS TFS.

Nant e CruiseControl são a base do meu ambiente.

Eu não acho que você realmente precise mais de ofuscação no .Net (veja outra resposta)

Eu não consideraria o Vault, o SVN é realmente o líder de mercado no momento (e gratuito).O Git parece bastante promissor, mas atualmente é apenas uma linha de comando com uma curva de aprendizado acentuada.

MSBuild vence NAnt para .Net 2 ou 3.5

CC.Net é excelente.

*4) Redmine

Eu recomendo Bitnami para testar pilhas diferentes.Possui Trac, Redmine e Subversion, além de vários outros não relacionados.

Confira estes artigos sobre Integração Contínua usando MSBuild, CruiseControl.NET, FxCop, NUnit, NCover e Subversion...

Das trincheiras de desenvolvimento de software

Atualmente estou usando SVN, mas geralmente tive muitos problemas com checkouts para uma unidade de rede em um servidor de desenvolvimento.Tende a haver problemas de bloqueio que exigem muita pesca para serem corrigidos.Pode ser que usar o método de acesso WebDav alivie alguns desses problemas, mas ainda não experimentei.

Qualquer Bugzilla, Trac ou Fogbugz irá ajudá-lo com o rastreamento de bugs, e cada um oferece um recurso de exportação, para que você possa mudar de ideia mais tarde.Além disso, se você conseguir que sua equipe aceite totalmente, o software de gerenciamento de tempo também pode ser útil para autópsias, etc. (se todos estiverem motivados para participar plenamente).

Para automação de construção e integração contínua, dê uma olhada em EquipeCidade de Cérebros a jato.

Tem muito características e é realmente muito fácil de configurar e usar.

Se você usar o Visual Studio 2005/2008, ele criará sua solução diretamente, sem a necessidade de scripts extras (se uma compilação for tudo o que você deseja).

Ele também executará seus testes de unidade e coletará estatísticas sobre o sucesso da construção, tempos de execução de testes de unidade, etc., etc.

Melhor de todos:A edição Pro é gratuita para equipes com até 20 usuários e 3 agentes de build.

  1. fonte de controle:currículos
  2. construir gnu make
  3. cron job que chama scripts bash
  4. bugzilla
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top