Categorias

Como planejar e construir um projeto de programação

Por onde começar? Não existe pior momento em qualquer projeto do que o início, quando o escopo daquilo que pensamos em fazer se ergue de forma gigantesca no horizonte. Ainda assim, não há demanda complexa que não sucumba diante de um bom planejamento.

Em contrapartida, até mesmo o projeto mais simples pode ocultar obstáculos inesperados e se arrastar por muito mais tempo do que deveria se não tiver também um bom planejamento.

Peter Lynch é um desenvolvedor australiano full stack com múltiplos interesses: produtividade, programação, empreendedorismo, marketing, desenvolvimento web, autodidatismo, finanças e aperfeiçoamento pessoal. Em um artigo publicado na internet, ele revela seu método de preparação para qualquer projeto, de forma simples e direta para iniciantes e veteranos.

Com sua autorização, traduzimos e reproduzimos o artigo na íntegra:

“Este é um post que tenho pensado em escrever há muito tempo, originalmente publiquei no meu blog com mais detalhes. Mas, eu pensei que poderia ajudar mais pessoas nesta comunidade, então eu queria compartilhar uma versão mais rápida.

Neste artigo, vou explicar como planejar e construir um projeto de programação. Vou mostrar como dividir um projeto, para que você possa começar a fazer projetos incríveis para ajudá-lo a aumentar o nível de suas habilidades de codificação.

Este artigo tem como objetivo ajudar iniciantes em código a se sentirem menos intimidados ao tentarem sair do purgatório do tutorial e construir seus próprios projetos de codificação incríveis. Então, se esse for o seu caso, continua lendo.

Projetos são super intimidantes quando você está começando, pode parecer uma montanha tão grande de escalar quando você não consegue nem reproduzir os resultados do tutorial do YouTube que você acabou de assistir sem olhar para ele novamente 30 vezes.

Quando comecei a aprender código, eu começava um curso ou seguia um tutorial e pensava que estava entendendo as coisas. Mas, quando parei de assistir e tentei reproduzir o projeto, não consegui chegar a lugar nenhum.

Para superar isso, postei minha frustração no popular subreddit r/learnprogramming. As respostas que recebi foram todas centradas na construção de meus próprios projetos. Esse conselho parece ótimo à primeira vista e era o conselho certo, mas o problema para mim era que eu não conseguia nem assistir a um tutorial e reproduzir os resultados. Como eu deveria construir um projeto? Um projeto está 10 níveis acima de um tutorial e na época parecia que os projetos estavam muito longe de minhas habilidades. Eu não tinha ideia de como começar, muito menos como eu iria colocar tudo junto. O problema essencialmente era que eu não sabia como ir do ponto A ao ponto B.

Este é um problema que vejo o tempo todo em r/learnprogramming. Iniciantes como eu ficam frustrados por não conseguirem sair do purgatório do tutorial, então procuram conselhos. Mas, o que eles conseguem é um redditor bem intencionado criticar a resposta dos projetos de construção na cara deles, sem nem mesmo considerar que, se o novato não consegue nem mesmo replicar um tutorial, como eles vão criar seu próprio projeto? Em meu tempo aprendendo a programar, vi muitos exemplos da mesma pergunta que tive e as mesmas respostas. Achei que já era hora de fazer algo a respeito e retribuir ao universo.

Então aqui estou eu, escrevendo um post que realmente explica como construir seus próprios projetos para que você possa se tornar um desenvolvedor melhor e cimentar o que está aprendendo.

Para planejar e construir um projeto de programação, existem três etapas principais que agora utilizo ao construir projetos, então vamos começar com a primeira etapa.

Etapa 1: Definindo o projeto

A primeira etapa ao planejar um projeto de programação é defini-lo.

Quando estou definindo o projeto, me pergunto estas 4 perguntas:

Qual é o projeto?
O que é o MVP (Produto Viável Mínimo)?
Quais são as coisas boas de se ter?
Quando o projeto será concluído?

Exemplo de definição de projeto

Para dar um exemplo simples, digamos que vamos construir um aplicativo de calculadora, teríamos uma definição básica de projeto como a abaixo.

Projeto de aplicativo de calculadora

Qual é o projeto? – O projeto da calculadora é um projeto para construir uma calculadora que pode ser acessada em um navegador da web. O projeto vai ser resolvido usando HTML, CSS e JavaScript. Isso permitirá que os usuários insiram números e calculem os resultados desses números com base na operação aritmética que escolherem.

Qual é o MVP? – O produto mínimo viável é uma calculadora que roda em um navegador da web que pode realizar operações de adição, subtração, multiplicação e divisão com base na entrada do usuário e mostrar ao usuário o resultado dessa equação.

Quais são as coisas boas de se ter? – O que é interessante neste projeto é estilizar a calculadora, usar os pressionamentos do teclado como entrada, não apenas os usuários clicarem em botões e adicionar operações de ordem superior como ‘à potência de x’.

Quando o projeto será concluído? – O projeto estará concluído assim que todos os recursos do MVP forem implementados e a calculadora tiver sido estilizada.

A definição acima é simples e direta. Se minha mãe o pegasse, ela entenderia do que se trata o projeto. Ela entenderia porque diz a você o que o projeto é, os recursos do MVP que você deve construir, recursos bons de se inserir e quando estará completo. Ao definir o projeto, você o torna menos intimidante.

Depois de ter a definição do projeto, você pode começar a próxima etapa.

Etapa 2: Criação do fluxo de trabalho

A próxima etapa é a mais simples. Normalmente, essa etapa pode ser combinada com a etapa 3. Mas, por enquanto, vamos examiná-la aqui como uma etapa separada para que eu possa mostrar a você como configurar um fluxo de trabalho muito básico para seus próprios projetos. Depois de fazer isso uma vez, pode ser uma etapa padrão para o restante de seus projetos.

Primeiro, você deseja usar algo como o Trello, uma ferramenta gratuita para gerenciar projetos.

Para configurar nosso quadro Kanban, queremos criar 4 colunas.

  1. PENDENTE (“TODO”, em inglês)
  2. FAZENDO (“DOING”)
  3. FEITO (“DONE)
  4. ERROS / NÃO TENHO CERTEZA DE COMO FAZER (“BUGS/NOT SURE”)

Dentro dessas colunas, vamos adicionar cartões. Conforme trabalhamos nos cartões, nós os movemos para a coluna de FAZENDO e, assim que terminarmos com esse cartão, podemos movê-lo para a coluna de FEITO. Se você tem um bug no qual está travado ou não tem certeza de como fazer algo, podemos movê-lo para a coluna ERROS.

Agora que configuramos nosso fluxo de trabalho, podemos ir para a última etapa, aquela que mais me deixou perplexo quando estava aprendendo a programar.

Etapa 3: dividir o projeto em componentes menores

A chave para construir seus próprios projetos começa com a divisão do grande projeto em componentes menores e menos intimidantes. Esses componentes menores são o que se tornam nossos cartões a partir da etapa 2.

Agora, isso parece bastante simples, mas quando eu estava começando, não me ocorreu que você pudesse fazer isso. Achei que a maioria dos desenvolvedores simplesmente começava a programar e o projeto fluía deles como você vê nos filmes. Achei que era isso que eu deveria ser capaz de fazer. No entanto, agora que tive a chance de trabalhar na indústria, sei que definitivamente não é o caso. Na verdade, um bom desenvolvedor dividirá esse projeto em tarefas menores.

No entanto, como um iniciante, pode ser difícil saber como dividir algo em tarefas menores. Se você não sabe como construir o projeto, como pode dividi-lo?

Bem, a primeira coisa que você precisa fazer é olhar para a definição do seu projeto e então dividi-lo em partes menores.

Vamos continuar usando o exemplo do aplicativo de calculadora para fazer nossos cartões de componentes:

Funções de cálculo – MVP
Obtenha a opinião do usuário – MVP
Interface de usuário HTML – MVP
Interface de usuário de estilo – firula
Listeners de eventos JavaScript – MVP
Adicionar animações para cálculos – firula

Você notará que, para cada cartão, atribuímos um rótulo de MVP ou firula para ajudá-lo visualmente a ver quais cartões são os mais importantes e, portanto, aqueles com que trabalhar primeiro.

O maior benefício dos cartões é que eles simplificaram o que já temos que fazer. Isso torna os projetos menos intimidantes, pois você não está fazendo um aplicativo de calculadora grande e assustador, mas sim 6 projetos menores que se combinam para criar um grande projeto.

Ao trabalhar em um cartão, você o move para a coluna de FAZENDO. Leve o tempo que precisar para fazer o componente funcionar antes de passar para a próxima coluna.

Mas ainda não terminamos, podemos simplificar e melhorar nosso fluxo de trabalho ainda mais para garantir que não fiquemos bloqueados pelo tamanho do projeto durante a construção.

Divida cada componente em listas de verificação menores

Assim que tivermos os cartões de alto nível, podemos dividir esses componentes novamente em tarefas menores, dividindo essas tarefas em listas de verificação para que possamos acompanhar nosso progresso.

O exemplo abaixo mostra como meu cérebro funciona, então você pode dividi-lo em itens menores ou maiores, dependendo do que funciona para você. Vamos usar o cartão de funções de cálculo como um exemplo de como decompor ainda mais um componente.

Como a tarefa é MVP e eu defini o MVP como cálculos básicos de adição, subtração, multiplicação e divisão, precisamos adicionar essas funções à lista de verificação.

Agora dividimos nosso cartão de funções de cálculo em 4 pequenos projetos nos quais podemos trabalhar. Isso é muito mais fácil do que a tarefa abstrata e assustadora de criar um aplicativo de calculadora ou mesmo escrever as funções da calculadora (o cartão).

Agora podemos nos concentrar e descobrir como fazer cada uma dessas funções. Ao fazermos isso, verificamos esses itens, o que nos dá uma sensação de realização e progresso. Então, uma vez que tenhamos feito todos esses quatro itens, podemos mover o cartão para a coluna concluída e começar a ler o próximo cartão.

A partir daqui, só precisamos repetir o processo para cada cartão. Então você está pronto para construir projetos incríveis.

Comece a construir seu projeto de programação

Agora você tem as ferramentas para planejar e construir um projeto de programação. Esperançosamente, este post tornou o conceito de construção de projetos menos abstrato e intimidante.

A chave é definir claramente o projeto, configurar seu fluxo de trabalho e, em seguida, dividir o projeto em componentes menores, todos construídos para a criação de um projeto maior. Ao fazer isso, o projeto não parece uma montanha enorme para escalar; em vez disso, deve parecer mais uma escada com cada degrau ajudando você a alcançar seu objetivo.

Se você vir alguém no r/learnprogramming no futuro lutando para sair do purgatório do tutorial, não diga a ele apenas para construir. Diga a eles como planejar e construir.

O planejamento é ótimo, mas a chave é então começar e construir. Então vá em frente e construa projetos incríveis e eleve o nível de suas habilidades de codificação.”

Publicado originalmente como “How to Plan and Build a Programming Project – A Legitimate Guide for Beginners” em 12 de abril de 2021. Traduzido e republicado com autorização do autor.