Startup: do zero ao deploy

Júlia Rizza

Engenharia de Computação - UFU

juliarizza.com

contato@juliarizza.com

@juliarizza_

Tive uma ideia, e agora?

Etapa 1: Negócios

  • Validação da ideia
  • Plano de negócios
  • Metodologia
  • Equipe
  • MVP

e por aí vai...

comecei, e agora?

Etapa 2: equipe

A equipe é a base de uma startup. O sucesso (ou não) da sua ideia depende (e muito!) de ter uma equipe que vestiu a camisa. Neste momento, tenha em mente:

  1. Você não é o patrão
  2. Conhecimento = vontade de aprender

Equipe? Quem?

empreendedor(es)

São aqueles que já estão vendo o sucesso da ideia antes mesmo dela surgir completamente na sua cabeça. Inspiradores, confiantes e líderes.

Ser o empreendedor não significa que você não vai ser também o cara das vendas ou do TI. Estamos falando de uma startup!

Equipe? Quem?

dev front-end

O desenvolvedor é o responsável por construir o produto. Um desenvolvedor front-end lida com a parte que vai interagir com o usuário e, geralmente, está mais próximo da equipe de design.

Conhecimentos de um front-end:

  • HTML & CSS
  • JavaScript
  • APIs REST
  • SEO

Equipe? Quem?

dev back-end

Um desenvolvedor back-end geralmente é o faz-tudo do seu software. Mas não se engane, procure logo um responsável para banco de dados, outro para o servidor e um técnico e deixe o dev fazer suas obrigações em paz!

Conhecimentos de um back-end:

  • Pelo menos uma linguagem de programação
  • Frameworks back-end
  • Envio e tratamento de dados do front-end
  • Criação e comunicação com APIs REST
  • Banco de dados e migrações
  • Configuração e manutenção dos servidores
  • Plantão do tipo "meu site tá fora do ar!!"

E muito mais...

Equipe? Quem?

designer

Não se engane com a ideia de que você e seu front-end podem se virar fazendo um layout qualquer para um produto genial. Isso pode dar certo às vezes, mas seu sucesso também depende de agradar o usuário. Nada melhor que um rostinho bonito para isso!

Conhecimentos de um designer:

  • UX
  • Teoria das cores
  • Photoshop e similares

Equipe? Quem?

Full stack

Dev Front + Dev Back (+ Designer)

tenho uma equipe, e agora?

Etapa 3: tecnologias

Bom, você quer ter um software, então entenda do que ele é feito:

  • O app (zilhões de linhas de código)
  • Banco de dados
  • Versionamento
  • Hospedagem (servidor & domínio)
  • Ferramentas específicas
  • Documentação*
  • Testes*

Documentação e testes são muito importantes, mas no contexto de startup, talvez sejam a última coisa que você quer se preocupar. Sempre que possível comece a fazê-los junto do desenvolvimento e quando não for possível, faça depois. Não deixe de fazê-los!

tecnologias? quais?

o app

A forma como sua aplicação é construída vai depender do tipo de plataforma e de quem está fazendo. Mas é importante que seu app siga modelos de organização e de construção de software, assim você pode ter um desenvolvimento mais rápido e facilita para que mais pessoas contribuam com esse app no futuro. Afinal, queremos ter muitos engajados nesse projeto, não é?

tecnologias? quais?

o app

Modelos de organização: MVC, Redux, Flow, Flux

 

Metodologia ágil:

  • Kanban & Scrum
  • TDD
  • Pair Programming
  • Integração contínua

tecnologias? quais?

Banco de dados

Existem várias opções de bancos de dados, assim como a opção por um banco de dados SQL e um NoSQL. Ao escolher um, devemos analisar seu desempenho e seu valor ($$$).

tecnologias? quais?

versionamento

Um dos pontos mais essenciais do desenvolvimento de código de um projeto é o versionamento. Ele vai armazenar as informações de todas as modificações que seu código sofreu, te permitir atualizar ou voltar atrás no seu software e facilitar o trabalho em equipe.

tecnologias? quais?

Hospedagem

A hospedagem é o lugar onde fica armazenado seu software, um servidor. Caso você não tenha local, técnicos ou money suficientes para manter um servidor próprio, fica mais em conta pagar um cloud.

Seu servidor precisa ser configurado, assim como suas informações de domínios e DNS (para que pessoas possam acessá-lo) e isso requer tempo e, claro, dinheiro.

tecnologias? quais?

Hospedagem

Para configurar um servidor você precisará ter noções de:

  • Linha de comando
  • Sistema operacional
  • Ferramentas de servidor (Apache, Nginx, etc)
  • IPs, domínios e DNS
  • Mais sistema operacional

tecnologias? quais?

documentação

Documentação é a parte chata de um software. Ninguém quer documentar um projeto depois que existem mais de 5 mil linhas de código e nem antes de saber o que se está fazendo.

Cada linguagem possui diferentes ferramentas para auxiliar nisso, automatizando o processo e deixando os desenvolvedores felizes.

tecnologias? quais?

testes e tdd

Os testes vêm para salvar a vida do seu projeto. Se você não fizer testes, a chance de que seus usuários encontrem problemas na hora de usar o software é imensa.

O TDD é uma metodologia ágil para se desenvolver e realizar testes. Nela, você cria primeiro o caso de teste e depois cria o código que faz aquele teste passar.

tecnologias? quais?

Monitoramento

É interessante que você mantenha o monitoramento do software e do seu servidor. Dessa forma, você pode receber relatórios dos acessos e atividades do software e também realizar o logging dos erros e alertas.

Ferramentas de monitoramento:

  • Google Analytics
  • NewRelic
  • OpBeat

tecnologias? quais?

Integração contínua

Integração contínua é uma forma de automatizar todo o processo de "colocar no ar" da sua aplicação. Uma ferramenta de CI vai pegar a mudança que sua equipe fez localmente, testar ela e, se os testes passarem, já mandar essa modificação para o ar na hora!

Ferramentas de CI:

  • Travis CI
  • Jenkins

tecnologias? quanto?

custos médios

Hospedagem

        Cloud: U$0 ~ 150 /mês

     Domínio: a partir de R$30/ano

Banco de Dados

     Licença: variável, a partir de U$0

        Hospedagem: U$0 ~ 100/mês

Versionamento

     Conta (GitHub, Bitbucket, etc): US$ 0 ~ 21/mês

Monitoramento

     Por ferramenta: U$0 ~ 200/mês

Custos adversos

     Licenças e ferramentas que você

        não planejava: U$300 ~ 800

tecnologias? como?

cACHO.LA

O app

Django, web2py, Flask

API front-end: AngularJS

 

Hospedagem

AWS & Heroku

Linux (Debian)

Apache

Banco de Dados

PostgreSQL

Versionamento

Git

Bitbucket

Monitoramento

OpBeat

Google Analytics

tenho tecnologias, e agora?

etapa 4: o produto

E você vem me perguntar? Seu produto está pronto! Saia e venda como se sua vida dependesse disso!

 

Volte suas ideias para a parte de negócios

e coloque em prática tudo aquilo que aprendeu.

 

Boa sorte na sua jornada! ;)

ObrigadO!

Júlia Rizza

contato@juliarizza.com

Créditos (imagens): @Dooder pelo Freepik

Startup: do zero ao deploy

By Júlia Rizza

Startup: do zero ao deploy

  • 1,323