Sou o programador solitário no meu trabalho há muito tempo. Normalmente, li artigos e postagens sobre
- Sistemas de Controle de Versão
- Integração / Entrega Contínua
- Metodologias de desenvolvimento: Scrum, Waterfall, V-Model, Agile, XP, etc.
- Gerenciamento de Projetos de Software
Mas quase todos eles parecem estar focados nas equipes. Como não sou uma equipe, qual seria o conjunto absolutamente mínimo de práticas para apenas um programador? Considere as seguintes condições:
- Não tenho conflitos com o código de outras pessoas.
- Não preciso manter árvores de arquivos / diretórios, meu ambiente de desenvolvimento se preocupa com a versão por si só (desenvolvimento baseado em imagem).
- Não há requisitos formais, meus usuários não sabem o que querem e estão bem com isso.
- O único que poderia estar interessado em fornecer uma versão ou documentação sou eu, basicamente o cliente quer RESULTADOS e não se importa com metodologias de software, etc.
Minha opinião é que não quero gastar (muito) tempo e energia em algo que não esteja diretamente relacionado aos requisitos do cliente. Alguma recomendação?
Respostas:
Não há resposta certa para essa pergunta porque depende de cada pessoa. Se você usa um iPad para fazer todo o seu trabalho de desenvolvimento e seus clientes estão felizes com você, você não tem nenhum motivo para mudar.
Se, no entanto, eu estivesse na sua posição, aplicaria fortemente o seguinte:
fonte
O controle de versão é uma necessidade absoluta para qualquer programador, mesmo que solitário. Isso significa que você pode recuperar de forma simples e rápida arquivos excluídos e alterações complexas que estão erradas.
Basicamente, você evita a merda estúpida que você faz quando vai trabalhar de ressaca.
fonte
Como outros dizem, o controle de versão ou o gerenciamento de código-fonte é extremamente importante. Use um DVCS e aprenda tudo sobre ele. Realmente não importa qual é, embora possa beneficiar você se você escolher um popular: git ou mercurial.
Outra coisa que não vi mencionada é um script de construção em uma etapa . Isso não é uma integração contínua direta (essa frase é propensa a BS na minha opinião), mas uma ferramenta muito útil. Sempre que você precisar fazer uma atualização de emergência, basta executar o script e concluir o processo. Ao se aproximar do final do projeto, também acontece que várias compilações são necessárias por dia. Minha experiência é que vale muito a pena, mesmo que o processo de compilação não seja muito complicado. Você pode até adicionar recursos de upload de FTP, relatórios por e-mail, executar testes de unidade, instaladores de edifícios, assinar etc. Com o script escrito desde o início, é fácil manter e expandir com mais etapas à medida que o projeto avança.
fonte
Vou apenas responder uma: o controle de versão é extremamente importante para qualquer projeto e não apenas para a equipe. Leva um tempo muito pequeno quando você o está usando, mas fornece um histórico rico para você voltar, não é uma bala de prata, mas certamente é bom poder voltar para uma cópia de trabalho, se isso realmente O recurso experimental quebrou a maior parte do aplicativo.
fonte
O controle de versão é uma necessidade absoluta. Não apenas por manter a fonte ok, mas por causa da arqueologia da fonte. Um ano depois de poder verificar como uma classe ou procedimento evoluiu, poderia economizar bastante esforço se você tentar "consertar" algum código estranho.
Para metodologias - recomendo fortemente o manifesto dos programadores . Geralmente, ele fornece ótimos resultados em equipes pequenas por causa de zero sobrecarga e não ter que manter em mente como o conjunto de estruturas de contêiner de aplicativos de serviço da Web CMS MVC compatíveis com portlet J2EE compatíveis com o portlet J2EE .
fonte