Organizando um projeto de software

Recentemente tenho focado em estruturar alguns projetos pessoais, que venho planejando faz um bom tempo, espero compartilhar com vocês os resultados assim que possível, aproveitando esse momento, resolvi fazer um artigo com sugestões e mostrando algumas das ferramentas que tenho utilizado para estruturar esses projetos, algumas sugestões são básicas, mas se aplicadas de maneira correta podem ajudar bastante na organização e desenvolvimento de projetos.

Documentação

Grande parte dos projetos pessoais não possui nenhum tipo de documentação, não se trata de documentação de código, mas documentação de negócio, qual modelo de negócio, público alvo, escopo do projeto, requisitos e etc. Os desenvolvedores acreditam tanto em suas ideias que resolvem desenvolver o quanto antes, para evitar que sua ideia seja roubada ou que alguém seja mais rápido, muitas vezes isso é um problema, principalmente pelo fato da ideia ser muito imatura.

Confira algumas ferramentas para manter documentações:

Acredito que pelos recursos cada vez melhores do Google Docs, conhecido atualmente como Google Drive, este seja um ótimo local para centralizar documentações em projetos independentes.

Gerenciamento de tarefas

Para organizar um projeto é preciso saber dividi-lo em pedaços, pequenas tarefas são mais fáceis de serem realizadas, mas nenhuma ferramenta vai saber dividir um projeto para você, mas irá auxiliar no gerenciamento dessas tarefas, controlando quais tarefas precisam ser feitas, quais suas prioridades, prazos e quem deve ser o responsável por cada uma dessas tarefas.

Confira algumas ferramentas para gerenciar tarefas:

Cada vez mais estou utilizando os serviços do Trello para organizar meus projetos pessoais, acredito que sua simplicidade seja um grande fator positivo.

Versionamento de código fonte

Durante o desenvolvimento de um software, principalmente se existir uma equipe, seja pequena ou grande, versionar seu código será essencial, para gerenciar conflitos de alterações e manter toda equipe com versões atualizadas do projeto, além de permitir um controle da participação de cada membro.

Confira algumas ferramentas para versionamento:

Para os códigos compartilhados no Blog, utilizo o Github, para projetos pessoais tenho utilizado o Bitbucket, após recomendação enviada pelo Felipe Girotti.

Documentação de software

Parte muito importante de um projeto de software, a documentação do código fonte é muitas vezes esquecida pelos membros da equipe responsável pela codificação, tratada como parte chata, cabe aos lideres incentivar esse tipo de documentação, que de fato é muito importante para manutenção do software. Nessa parte temos alternativas distintas quando se trata de documentação otimizada, muitas linguagens oferecem frameworks para documentação de código, mas não vou entrar nesse cenário.

Ferramentas wiki para documentação de software:

As ferramentas Wikis podem desempenhar diversos papéis em um projeto, um desses é facilitar na criação de documentações técnicas, etc.

Interação dos membros

Comunicação é essencial para sobrevivência de um projeto, sem essa parte seu projeto irá falhar ou cair no esquecimento, embora tenha diversas ferramentas disponíveis hoje, nada supera uma reunião pessoalmente, que quando possível deve ser realizada, porem toda reunião deve ter um mediador e objetivos definidos.

Confira algumas ferramentas para comunicação da equipe:

O Skype é uma ótima ferramenta para manter o contato em equipes remotas, já o Google Groups é excelente para recolhimento de opiniões.

Conclusão

Pessoal, espero que aproveitem as dicas, caso tenham recomendações, compartilhem nos comentários, como vocês organizam seus projetos?

  • Felipe Vialle

    22/04/2013 às 18:38

    No meu projeto de 2 pessoas estou usando o symphonical.com pra manter as coisas minimamente organizadas e saber o que precisa ser feito e com qual deadline. Achei válido pra projetos pequenos.

  • Diogo Matheus

    22/04/2013 às 19:48

    Não conhecia essa ferramenta Vialle, obrigado pela sugestão.

    Olhei rapidamente, vou adicionar na lista de gerenciador de tarefas e testar depois.

    Abraço

  • Felipe Girotti

    23/04/2013 às 11:31

    Eu uso para projetos privados o bitbucket.org, e bastante as issues para descrever bem as tasks para desenvolver.
    E para documentar ainda uso alguma coisa de UML, mais os diagramas de caso de uso.

  • Diogo Matheus

    09/09/2014 às 21:42

    Felipe,

    Obrigado pela recomendação, estou utilizando bastante o bitbucket, me ajudou até mesmo no controle da minha monografia da pós. ;)

Deixe uma resposta

O seu endereço de e-mail não será publicado.. Campos obrigatórios são marcados com *