O documento discute o papel da engenharia de software no sucesso de startups. Ele apresenta uma pesquisa que mapeou 26 práticas ágeis em startups brasileiras de tecnologia, identificando quais são mais ou menos utilizadas. As práticas mais utilizadas lidam com fatores humanos como propriedade coletiva e motivação, enquanto design simples e planning poker são pouco usadas. A análise mostra a importância de usar práticas ágeis de forma flexível ao invés de métodos rígidos, e de valorizar o time.
Startup Engineering - Aspectos sobre o desenvolvimento de software em empresas inovadoras
1. STARTUP
ENGINEERING
L I Ç Õ E S E I N S I G H T S D O U N I V E R S O D E
S O F T WA R E E M E M P R E S A S I N O VA D O R A S
2. ROTEIRO
• About
• Startup: que diabos é isso?
– O que saber para não falar besteira?
• Engenharia de Software
– Ontem, hoje e amanhã
• O que startups usam?
– Sobre a pesquisa, seus resultados e aprendizados
• Wrap up!
2
3. ABOUT - MARVIN FERREIRA
[2009-2012]
B.Sc. Computer Science – PUCSP
[2013-2016]
M.Sc. Computer Engineering – POLI-USP
Software Engineer - Team Lead
Webmotors S/A
Professor
Universidade Anhembi Morumbi
More info:
https://www.linkedin.com/in/marvinferreira
3
4. STARTUP: QUE
DIABOS É ISSO?
A L G U N S C O N C E I TO S PA R A N Ã O
FA L A R M O S B E S T E I R A
4
5. “STARTUP É UM NEGÓCIO QUE VOCÊ
CRIA UMA EMPRESA E VAI AJEITANDO
ELA ATÉ O NEGÓCIO COMEÇAR A
ANDAR E VENDE O MAIS RÁPIDO
POSSÍVEL PARA NÃO TER QUE
APRENDER A ADMINISTRAR TODOS
OS PROBLEMAS DE UMA EMPRESA”
- EXECUTIVO EM UM CENTRO COMERCIAL DE SP
5
6. UM POUCO DE FORMALIDADE
- O QUE É UMA STARTUP?
“Uma pequena companhia explorando novas oportunidades de negócios, trabalhando
para resolver problemas onde a solução não é bem conhecida e o mercado é altamente
volátil.” (GIARDINO; ET AL, 2014)
“Um grupo de pessoas iniciando uma empresa, trabalhando com uma ideia diferente,
escalável e em condições de extrema incerteza.” (SEBRAE, 2014)
“Uma instituição humana designada para criar um novo produto ou serviço sobre
condições de extrema incerteza.” (RIES, 2011)
6
7. CARACTERÍSTICAS
• Jovens e imaturas:
– é uma empresa (não se assuste) nova e sem experiência, em relação a outros tipos de empresas
e negócios
• Recursos limitados:
– Financeiro, pessoal e tempo. Os primeiros recursos que este tipo de empresa investe são na
produção, na promoção do produto e na construção de alianças estratégicas
• Influências múltiplas:
– Investidores, clientes, parceiros e por outras empresas que competem no mesmo mercado, atuais
ou potenciais
• Tecnologias e mercados dinâmicos:
– Geralmente surgem com as mudanças na área de tecnologia
7
8. ALGUNS DADOS
• 65% das startups não sobrevivem aos primeiros cinco anos de existência e 75% das
startups que recebem investimentos de venture capital falham (NOBEL, 2011)
– Isso se mantém atual, um estudo da Fundação Dom Cabral (2014) constatou que ao menos
50% das startups brasileiras não sobrevivem aos primeiros 4 anos
• Estudos relacionados a Engenharia de Software tem negligenciado estas
empresas
• Não sabemos até que ponto a Engenharia de Software influência em seu fator de
sucesso
8
9. FATORES MAIS IMPORTANTES E MENOS
IMPORTANTES PARA A SOBREVIVÊNCIA*
Mais importantes:
• Aceitação do produto/tecnologia/serviço comercializado pelo mercado
• Sintonia entre os fundadores (e do time principalmente)
• Capacidade de adaptação dos gestores às necessidades/mudanças do mercado
Menos importantes:
• Facilidade na produção da tecnologia/produto inicialmente idealizado
• Bom relacionamento e entendimento entre fundadores e investidores
• Disponibilidade de capital para investir no negócio
*Fundação Dom Cabral, 2014 9
10. UM FATOR MEGA IMPORTANTE: TUDO
É TRABALHO DE FORMIGUINHA
• TENHA UMA VISÃO DE PRODUTO (BUSINESS PLAN)
• EXPERIMENTE DIREÇÕES DISTINTAS PARA O QUE ESTÁ FAZENDO (E MEÇA)
• CONSTRUA POUCO A POUCO E TESTE HIPÓTESES (MVP E DESIGN THINKING SÃO
GRANDES ALIADOS)
• VOCÊS NÃO SÃO UM CORINGA, BUSQUEM PESSOAS QUE OS COMPLEMENTEM
• TENHA SEMPRE EM MENTE O “PORQUÊ” DAQUILO QUE FAZ (Simon Sinek)
11
11. E O QUE A
ENGENHARIA DE
SOFTWARE TEM A
VER COM ISSO?O P A P E L D O P R O C E S S O D E
D E S E N V O L V I M E N T O C O M O F A T O R D E
S U C E S S O
12
12. UM POUCO DE FORMALIDADE?
- O QUE É ENGENHARIA DE SOFTWARE?
“The systematic application of scientific and technological knowledge, methods, and
experience to the design, implementation, testing, and documentation of software.“
(IEEE Systems and software engineering – Vocabulary)
“An engineering discipline that is concerned with all aspects of software production.”
(Ian Sommerville)
13
13. DE ONDE VIEMOS?
• Crise do software – décadas de 60 a 70
– Estouro de orçamento e prazo do projeto
– Software de baixa qualidade e que não atingiam seus requisitos
– Projetos ingerenciáveis e de baixa manutenibilidade
• Nesta época surgiu o famoso Waterfall (Royce, 1970)
– E com isso novos problemas
• Processos iterativos e incrementais começam a se popularizar
– Em fevereiro de 2001 é assinado o mítico MANIFESTO ÁGIL
14
16. DE TUDO ISSO PODEMOS TIRAR 3
CARACTERÍSTICAS BÁSICAS:
• Transparência continua
• Receptividade a mudança
• Aumento na entrega de valor
Tudo isso pode ser resumido através do conceito de AGILIDADE:
• Highsmith (2002), “a capacidade de criar e responder a mudanças a fim de lucrar em
um ambiente de negócios turbulento”
• Krutchen (2010), “a habilidade de uma organização de reagir à mudança em seu
ambiente mais rapidamente que a taxa de mudanças”.
17
24. ONDE ESSE PAPO DE STARTUP E
PRÁTICAS COMEÇOU?
• Estudo desenvolvido entre 2013 e 2016 na POLI-USP
– Título: ANÁLISE DA ADERÊNCIA DE PRÁTICAS ÁGEIS NA CULTURA DE STARTUPS DE
SOFTWARE: O MAPEAMENTO DE PRÁTICAS ATRAVÉS DO SEMAT KERNEL
• Objetivo: Analisar a aderência de práticas ágeis, independentes de seus métodos no
ambiente de startups brasileiras de tecnologia (Ah vá?)
25
25. MAS NÃO É SÓ USAR O QUE JÁ TEM?
- NÃO!!!
• Os problemas encontrados em startups se diferem dos encontrados em empresas
comuns
• Problemas eficientemente resolvidos pelos métodos ágeis podem NEM EXISTIR em
startups
• Aplicar um método ágil BY THE BOOK é inviável em um ambiente com tantas
restrições como o de startups (por exemplo: pair programming, TDD e etc..)
• Modelos de maturidade e padrões (CMMI ou ISO) NÃO se aplicam
26
26. E ALGUÉM DEU BOLA PARA ISSO NO
PASSADO?
• Pouquíssimas pesquisas nos últimos 10 anos
• Foco maior no ciclo de desenvolvimento em empresas com negócios consolidados
• A maioria dos estudos analisavam apenas os métodos em si e não a importância e
relevância das práticas que o constituem
• Alguns estudos pioneiros reconheceram a importância e potencial do estudo de
startups
– Fayad 2000, Sutton 2000, Yau e Murphy 2013, Giardino el al 2014 e 2016
27
27. E O QUE FOI FEITO?
• Levantamento de métodos ágeis mais utilizados...
– Scrum, Scrum/XP híbrido, Scrumban, Kanban e Lean
• Mapeamento de suas práticas de forma independentes em um modelo agnóstico*
que represente a essência de todos os aspectos da Engenharia de Software
– Chegando a um total de 26 práticas (algumas foram agrupadas por similaridade)
• Estudo de 27 startups através de um questionário baseado em escalas Likert para a
identificação da aderência de práticas independentes de seus métodos
*OMG ESSENCE (http://www.omg.org/spec/Essence/About-Essence/)28
28. O QUE VOCÊ DIZ COM AGNÓSTICO?
Fonte: SEMAT, 2012 29
29. E ONDE AS PRÁTICAS ENTRAM?
Fonte: SEMAT, 2012
30
30. E ONDE QUE VOCÊ
CHEGOU COM
TUDO ISSO?
S H O W M E T H E D ATA
31
31. PRÁTICAS COM UTILIZAÇÃO <= 40%
(OU POUCO UTILIZADAS)
• Design Simples
• Planning Poker
• Três perguntas
• Reunião Diária
• Opções de Decisão
• Decidir no Último Momento
32
32. PRÁTICAS COM UTILIZAÇÃO > 40% E <=
50% (OU MEDIAMENTE UTILIZADAS)
• Seleção Voluntária de Tarefas
• Integração Contínua
• História de Usuário
• Testes (Código)
• Testes (Aplicação)
• Limitação do Trabalho em Progresso
• Realimentação de Informação
33
33. PRÁTICAS COM UTILIZAÇÃO
> 50% E <= 60% (OU UTILIZADAS)
• Implantação Contínua
• Padrões de Codificação
• Implementar Ciclos de Feedback
• Aumentar Colaborativamente e Evoluir Experimentalmente
• Estimativa Relativa
• Desenvolvimento em Conjunto
34
34. PRÁTICAS COM UTILIZAÇÃO
> 60% (OU MUITO UTILIZADAS)
• Propriedade Coletiva
• Refatoração
• Visão do Fluxo de Trabalho e Riscos
• Kanban Board
• Tornar o Processo Explícito
• Desenvolvimento Iterativo
• Desenvolvimento Incremental
• Desenvolvimento Timeboxed
• Integridade Conceitual
• Integridade Percebida
• Taskboard
• Backlog
• Tratamento de Backlog (Grooming)
• Estimular o Sistema
• Motivação
35
35. E Q UA L O
R E S U LTA D O D E S TA
A N Á L I S E ?
• Divisão/Classificação de
práticas por grau de
aderência;
• Identificação de não
homogeneidade de
métodos;
• Identificação de um
conjunto práticas iniciais
para o ambiente de startup
(não somente);
• Confirmação da hipótese de
que o melhor método é
aquele que respeita o
contexto a que se aplica
(composição sempre);
Fonte: Marvin Ferreira (2016)
36
36. WRAP UP: O QUE PODEMOS
APRENDER DE TUDO ISSO?
• Métodos seguidos à risca (ainda que ágeis) podem engessar o dinamismo do
negócio
– Pense sempre em utlizar práticas, experimentando sempre!
• Valorize seu time! S-E-M-P-R-E !
– Práticas mais usadas lidam com o fator humano!
• Pilote MVPs (trabalho de formiguinha)
– Teste cada hipótese sobre seu produto, colete dados e analise sua performance
• O seu papel como Engenheiro de Software (a.k.a pedreiro digital) vai muito além de
fazer IF’s
– Busque conhecimentos além das fronteiras do mundo do software
• Conselho: Busque DEVOPS (o mínimo) a partir do dia 0
37
37. STARTUP
ENGINEERING
L I Ç Õ E S E I N S I G H T S D O U N I V E R S O D E
S O F T WA R E E M E M P R E S A S I N O VA D O R A S
O B R I G A D O !
M A R V I N . F E R R E I R A @ O U T L O O K . C O M
https://goo.gl/JLjjie
Notas do Editor
16,2% de sucesso, onde os projetos foram finalizados no prazo correto e dentro do orçamento esperado com todas as funcionalidades inicialmente especificadas;
52,7% como desafio, o projeto foi finalizado com estouro de orçamento e com estouro no prazo estimado, oferecendo menos funcionalidades do que inicialmente especificado;
31,1% de fracasso, o projeto foi cancelado em algum ponto durante o seu ciclo de desenvolvimento;
E ainda temos os 12 princípios em torno destas ideias centrais...