Skip to content

woliveiras/metamorfose

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 

Repository files navigation

Metamorfose Badge

Naturalmente evoluindo, esse repositório é uma metamorfose ambulante

Esse aqui é mais um daqueles repositórios sobre o workflow do Desenvolvedor de Software.

Meu fluxo de trabalho no Desenvolvimento de Software.

Por que um repositório para nosso fluxo de trabalho?

Por que pode ser útil para ajudar alguém a melhorar o seu fluxo de trabalho, outras pessoas podem comentar sobre o nosso fluxo e com isso podemos melhorar e pode ser uma maneira de contribuir com quem tem dúvidas sobre como é o nosso dia a dia.

Como nosso workflow está sempre mudando, acho o GitHub o melhor lugar para deixar isso registrado, pois podemos ir atualizando sempre. Um post no Blog poderia ficar defasado em poucas semanas, por exemplo.

Experiência pessoal

Um workflow com o qual aprendi bastante foi o do @vitorbritto: https://github.com/vitorbritto/workflow-guide

Durante minha carreira percebi que vale muito a pena perguntar para outras pessoas o que elas estão usando e acompanhar o que grandes empresas estão fazendo.

Se você quiser mais dicas sobre carreira, acompanhe esse repositório.

Índice

Workflow

Meu fluxo de trabalho ao iniciar um projeto/tarefa técnica:

  1. Entender a tarefa/o projeto
  2. Analisar o problema a ser resolvido
  3. Planejar como resolver esse problema
  4. Colocar a mão na massa

1. Entendendo a tarefa/o projeto

Podemos utilizar papel e caneta para levantar os requisitos de um projeto/uma tarefa ou o Wunderlist para essas notas depenendendo do que estiver nas mãos no momento de buscar esse entendimento.

Vale a pena questionar o máximo quem lhe passou a tarefa até entender bem o que deve ser feito para que não fique nenhum nó perdido, o que poderia gerar um retrabalho.

2. Analisar o problema a ser resolvido

Depois de levantar o máximo de informação sobre o que será feito vem a parte de analisar o que será feito.

Essa parte de analise pode ser para:

  • Classificar os tópicos por dificuldade
  • Estipular prazos para essas tarefas (normalmente já começamos a criar pequenos planos mentais sobre como vamos resolver o problema)
  • Excluir tópicos que foram levantados, porém são inviáveis (pode acontecer bastante)

3. Planejar como resolver o problema

Com os tópicos devidamente analisados podemos decidir, agora, por onde começar e como fazer.

Podemos iniciar por algo que vá entregar valor a curto prazo, algo que vá resolver um grande problema ou mesmo começar pelos mais fáceis para agilizar grandes entregas ou entrega de volume, conforme foi analisado no tópico 2.

Agora vem a parte mais técnica que é planejar/modelar como codificar a solução para o problema.

Algumas perguntas que você deve fazer quando for codificar essa solução:

  • Esse problema já foi resolvido por outra pessoa?
  • Podemos usar determinado padrão de projeto para resolver esse problema?

4. Colocar a mão na massa

Enquanto estamos codificando a solução, é ideal que se pense o seguinte:

  • Outra pessoa vai entender o nome dessa variável?
  • Outra pessoa vai entender o que essa função/método faz?
  • O assassino que está atrás de mim vai gostar desse código? (tópico muito importante)

Quando todas essas questões estão satisfatórias, é sinal que rolou um bom entendimento da tarefa.

Caso algo não esteja saindo como planejado, é ideal que peça ajuda de um companheiro de serviço. Uma segunda opinião sempre é boa, um code review é excelente. Não importa nosso nível, nem o tempo de experiência que possuímos, é sempre legal ouvir o que outras pessoas tem a nos dizer.

Seja curioso(a) e esteja sempre disposto(a) a aprender algo com outras pessoas, entender como as coisas funcionam.

Isso facilita seu workflow.

Ferramentas mais utilizadas durante essa fase:

  • Google!
  • Stackoverflow!
  • Perguntar para outras pessoas!
  • Editor de texto/IDE
  • Terminal
  • Navegadores para testes
  • Ferramentas de testes

⬆ índice

Ferramentas

Ferramentas de gestão

⬆ índice

Comunicação

  • Slack: Comunicação em geral
  • Gitter: Para projetos Open Source

⬆ índice

Inicializar novos projetos

  • Kibe: Gulp Boilerplate
  • Pastel: Grunt Boilerplate

⬆ índice

Ambiente de desenvolvimento

⬆ índice

Frameworks e linguagens

Front End

⬆ índice

Back End

⬆ índice

Qualidade de código

⬆ índice

Bancos de dados

⬆ índice

SEO

⬆ índice

Style Guides

⬆ índice

Metodologias

⬆ índice

Extras

⬆ índice