Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

Lucas Mazza @lucasmazza http:/ /lucasmazza.github.io

Slide 3

Slide 3 text

https:/ /sp.femug.com https:/ /github.com/braziljs/femug

Slide 4

Slide 4 text

http:/ /j.mp/femug-am

Slide 5

Slide 5 text

http:/ /www.casadocodigo.com.br/products/livro-html-css

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

. . .

Slide 8

Slide 8 text

10 lições que eu gostaria ter aprendido mais cedo

Slide 9

Slide 9 text

um monte de coisas que eu aprendi enquanto eu (não) fazia software

Slide 10

Slide 10 text

E ainda estou aprendendo

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

. . .

Slide 13

Slide 13 text

#10 - Programar é facil, construir software nem tanto

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

‘08

Slide 16

Slide 16 text

‘08

Slide 17

Slide 17 text

‘10

Slide 18

Slide 18 text

Talvez eu entenda alguma coisa agora.

Slide 19

Slide 19 text

Talvez eu entenda alguma coisa agora. Eu acho.

Slide 20

Slide 20 text

Talvez eu entenda alguma coisa agora. Eu acho. Talvez.

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

Programar!

Slide 23

Slide 23 text

Todo o resto Programar!

Slide 24

Slide 24 text

✗ Refatorações e manutenção.

Slide 25

Slide 25 text

✗ Refatorações e manutenção. ✗ Sistemas e times distribuídos.

Slide 26

Slide 26 text

✗ Refatorações e manutenção. ✗ Sistemas e times distribuídos. ✗ Deployments e monitoramento.

Slide 27

Slide 27 text

✗ Refatorações e manutenção. ✗ Sistemas e times distribuídos. ✗ Deployments e monitoramento. ✗ Mudanças de escopo, prazos e prioridades.

Slide 28

Slide 28 text

✗ Refatorações e manutenção. ✗ Sistemas e times distribuídos. ✗ Deployments e monitoramento. ✗ Mudanças de escopo, prazos e prioridades. ✗ Estimativas e previsibilidade.

Slide 29

Slide 29 text

✗ Refatorações e manutenção. ✗ Sistemas e times distribuídos. ✗ Deployments e monitoramento. ✗ Mudanças de escopo, prazos e prioridades. ✗ Estimativas e previsibilidade. ✗ Onboarding e aprendizado.

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

A maioria dos problemas em desenvolvimento de software tem raizes sociais.

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Desenvolvimento não é apenas código

Slide 34

Slide 34 text

É também resolver problemas e ajudar os outros

Slide 35

Slide 35 text

E depende de muita colaboração e trabalho em equipe

Slide 36

Slide 36 text

#9 - Não seja um herói.

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

You Cannot Win Engineering Kevin Stevens https:/ /blog.engineyard.com/2013/how-improvisational-theater-can-improve-team- collaboration

Slide 39

Slide 39 text

Você trava em alguma coisa complicada.

Slide 40

Slide 40 text

Você trava em alguma coisa complicada. Busca no Google/GitHub/StackOverflow/etc.

Slide 41

Slide 41 text

Você trava em alguma coisa complicada. Busca no Google/GitHub/StackOverflow/etc. Tenta resolver o problema por 15/30 minutos.

Slide 42

Slide 42 text

Você trava em alguma coisa complicada. Busca no Google/GitHub/StackOverflow/etc. Tenta resolver o problema por 15/30 minutos. Pede ajuda aos seus colegas.

Slide 43

Slide 43 text

Você trava em alguma coisa complicada. Busca no Google/GitHub/StackOverflow/etc. Tenta resolver o problema por 15/30 minutos. Pede ajuda aos seus colegas. Volta para casa.

Slide 44

Slide 44 text

Você trava em alguma coisa complicada. Busca no Google/GitHub/StackOverflow/etc. Tenta resolver o problema por 15/30 minutos. Pede ajuda aos seus colegas. Volta para casa. Trabalha mais no dia seguinte.

Slide 45

Slide 45 text

“Sleep deprivation is not a badge of honor" DHH https:/ /signalvnoise.com/posts/1006-sleep-deprivation-is-not-a-badge-of-honor

Slide 46

Slide 46 text

“your career is a marathon, not a sprint” Miller Medeiros https:/ /twitter.com/millermedeiros/status/614278181344935936

Slide 47

Slide 47 text

Não tenha pressa

Slide 48

Slide 48 text

Pedir ajuda nunca é ruim

Slide 49

Slide 49 text

Não se esqueça de dormir

Slide 50

Slide 50 text

#8 - Programar é um trabalho criativo.

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

“The generative mechanisms that underlie creativity are universal” Robert Epstein Generativity Theory

Slide 53

Slide 53 text

“[The programmer] builds castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures." Fred Brooks The Mythical Man-Month

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

No content

Slide 56

Slide 56 text

Programar não é fritar pastel ou apertar parafuso

Slide 57

Slide 57 text

Programar é baseado no processo criativo de cada um

Slide 58

Slide 58 text

#7 - Open Source é muito importante

Slide 59

Slide 59 text

Open Source

Slide 60

Slide 60 text

Open Source Você

Slide 61

Slide 61 text

No content

Slide 62

Slide 62 text

Soluções compartilhadas para problemas comuns

Slide 63

Slide 63 text

Open Source é muito importante. Mas não é o mais importante.

Slide 64

Slide 64 text

Open Source não é uma competição

Slide 65

Slide 65 text

Open Source não é uma competição ✗

Slide 66

Slide 66 text

No content

Slide 67

Slide 67 text

Open Source não deveria ser um concurso de popularidade

Slide 68

Slide 68 text

Open Source não é o seu trabalho. a não ser que realmente seja o seu trabalho.

Slide 69

Slide 69 text

Fazer bom uso de OSS é muito mais produtivo

Slide 70

Slide 70 text

No content

Slide 71

Slide 71 text

Reporte bugs

Slide 72

Slide 72 text

Reporte bugs Ensine os outros a usar

Slide 73

Slide 73 text

Reporte bugs Ensine os outros a usar Teste versões betas

Slide 74

Slide 74 text

Reporte bugs Ensine os outros a usar Teste versões betas Tente enviar patches

Slide 75

Slide 75 text

Reporte bugs Ensine os outros a usar Teste versões betas Tente enviar patches Não seja um idiota no Twitter

Slide 76

Slide 76 text

Já existem diversos projetos incríveis precisando de bons usuários por aí

Slide 77

Slide 77 text

Manter um projeto dá muito mais trabalho do que publicar a primeira versão

Slide 78

Slide 78 text

Você não precisa se sentir obrigado a contribuir

Slide 79

Slide 79 text

#6 - Somos todos amadores.

Slide 80

Slide 80 text

No content

Slide 81

Slide 81 text

“Dude, sucking at something is the first step towards being sorta good at something.”

Slide 82

Slide 82 text

Aprender é um subproduto

Slide 83

Slide 83 text

Aprender é um subproduto Trabalho → Colaboração → Aprendizado → ??? → Lucro

Slide 84

Slide 84 text

Trabalhar com tecnologia requer evolução

Slide 85

Slide 85 text

Além de humildade e constante aprendizado

Slide 86

Slide 86 text

#5 - Não use MongoDB. Sério.

Slide 87

Slide 87 text

#5 - Seja opinado. E tente não ser um idiota.

Slide 88

Slide 88 text

“The exalted ideal: To have no emotional connection to the workbench. Hogs and wash.” DHH https:/ /signalvnoise.com/posts/3727-finding-your-workbench-muse

Slide 89

Slide 89 text

…At the end of the day, nobody should tell you how to feel about your tools" DHH https:/ /signalvnoise.com/posts/3727-finding-your-workbench-muse

Slide 90

Slide 90 text

No content

Slide 91

Slide 91 text

MAS…

Slide 92

Slide 92 text

“You’re not wrong. You’re just an asshole” The Dude

Slide 93

Slide 93 text

Contextos serão diferentes

Slide 94

Slide 94 text

Contextos serão diferentes Respire fundo e seja construtivo

Slide 95

Slide 95 text

Contextos serão diferentes Respire fundo e seja construtivo Algumas coisas podem ser diferentes

Slide 96

Slide 96 text

Contextos serão diferentes Respire fundo e seja construtivo Algumas coisas podem ser diferentes Outras não valem o esforço ¯\_(ϑ)_/¯

Slide 97

Slide 97 text

Hater funcional™

Slide 98

Slide 98 text

“A critique of your project is not tantamount to a personal attack. An alternative take on the problem your software solves is not hostile or divisive. It is simply the result of a regenerative process, driven by an unending desire to improve the status quo.” “You Are Not Your Code” http:/ /sstephenson.us/posts/you-are-not-your-code

Slide 99

Slide 99 text

Código é só código

Slide 100

Slide 100 text

“Continue na linha, sua opinião é muito importante para nós”

Slide 101

Slide 101 text

#4 - Gestão é um mal necessário.

Slide 102

Slide 102 text

#4 - Gestão é um mal bem necessário.

Slide 103

Slide 103 text

No content

Slide 104

Slide 104 text

Gestão mal feita sempre vai ser ruim

Slide 105

Slide 105 text

Julie Zhuo https:/ /medium.com/the-year-of-the-looking-glass/average-manager-vs-great-manager-cf8a2e30907d

Slide 106

Slide 106 text

Boa gestão não vai

Slide 107

Slide 107 text

Julie Zhuo https:/ /medium.com/the-year-of-the-looking-glass/average-manager-vs-great-manager-cf8a2e30907d

Slide 108

Slide 108 text

“Management is the practice of constantly identifying what a team needs in order to be successful and then delivering on those needs.” Julie Zhuo https:/ /medium.com/the-year-of-the-looking-glass/so-you-think-you-want-to-manage-1229723a4501

Slide 109

Slide 109 text

Suporte no dia a dia.

Slide 110

Slide 110 text

Suporte no dia a dia. Orientação no decorrer do projeto.

Slide 111

Slide 111 text

Suporte no dia a dia. Orientação no decorrer do projeto. Reduzir ruídos e interrupções externas.

Slide 112

Slide 112 text

Ellen Chisa http:/ /blog.ellenchisa.com/2014/07/20/engineers-pm-sucks-heres-fix/ O seu gerente pode…

Slide 113

Slide 113 text

Ellen Chisa http:/ /blog.ellenchisa.com/2014/07/20/engineers-pm-sucks-heres-fix/ O seu gerente pode… • Não fazer o trabalho que o você espera

Slide 114

Slide 114 text

Ellen Chisa http:/ /blog.ellenchisa.com/2014/07/20/engineers-pm-sucks-heres-fix/ O seu gerente pode… • Não fazer o trabalho que o você espera • Não fazer o trabalho corretamente

Slide 115

Slide 115 text

Ellen Chisa http:/ /blog.ellenchisa.com/2014/07/20/engineers-pm-sucks-heres-fix/ O seu gerente pode… • Não fazer o trabalho que o você espera • Não fazer o trabalho corretamente • Estar atarefado demais para conseguir focar

Slide 116

Slide 116 text

Ellen Chisa http:/ /blog.ellenchisa.com/2014/07/20/engineers-pm-sucks-heres-fix/ O seu gerente pode… • Não fazer o trabalho que o você espera • Não fazer o trabalho corretamente • Estar atarefado demais para conseguir focar • Não ter contexto para tomar as decisões

Slide 117

Slide 117 text

Eu não posso arrumar isso para você, mas você pode tentar.

Slide 118

Slide 118 text

Mínimo de Gestão Necessária™

Slide 119

Slide 119 text

Alguém precisa lutar contra a entropia do seu projeto

Slide 120

Slide 120 text

Gestão (de projetos) é muito importante para softwares/ambientes/empresas melhores

Slide 121

Slide 121 text

#3 - Queime seus ídolos

Slide 122

Slide 122 text

“everything around you, was made up by people that were no smarter than you.”

Slide 123

Slide 123 text

Muita gente não faz a menor idéia do que está fazendo

Slide 124

Slide 124 text

“[…] Óbvio que existem profissionais de expressão, mas isso aqui é um mercado de desenvolvedores, não de rockstar-jedi-samurai-ninja.” Daniel Filho https:/ /danielfilho.github.io/2014/08/20/queime-seus-idolos/

Slide 125

Slide 125 text

“[…] By idolising people, I gave up on my opportunity to change the world, learn something exhilaratingly new, call out the wrongs done, and contribute to right some of the wrongs.” Divya Manian https:/ /medium.com/@divya/burn-your-idols-e82131956096

Slide 126

Slide 126 text

“Keep pushing. Don’t simply do what the rest of us do— do it differently, do it better, do it faster. Take a stance and have an opinion. Don’t be afraid to be wrong. “ Mark Otto http:/ /markdotto.com/2012/08/17/take-action/

Slide 127

Slide 127 text

“you have little to lose and so very much to gain just by being yourself.” Mark Otto http:/ /markdotto.com/2012/08/17/take-action/

Slide 128

Slide 128 text

Contrário a crença popular, A grande maioria dos desenvolvedores são pessoas normais

Slide 129

Slide 129 text

#2 - Você pode escolher a sua própria aventura.

Slide 130

Slide 130 text

Ruby JavaScript Elixir Python Scala Swift Android Clojure Go Rust Haskell Java CSS PHP … Objective-C

Slide 131

Slide 131 text

Criar software.

Slide 132

Slide 132 text

Criar software. Escrever livros.

Slide 133

Slide 133 text

Criar software. Escrever livros. Ministrar cursos.

Slide 134

Slide 134 text

Criar software. Escrever livros. Ministrar cursos. Liderar outros.

Slide 135

Slide 135 text

Criar software. Escrever livros. Ministrar cursos. Liderar outros. Criar padrões.

Slide 136

Slide 136 text

Criar software. Escrever livros. Ministrar cursos. Liderar outros. Criar padrões. De qualquer lugar do mundo.

Slide 137

Slide 137 text

Você escolhe a sua carreira, não o contrário

Slide 138

Slide 138 text

. . .

Slide 139

Slide 139 text

#10 - Escrever código é facil, construir software nem tanto.

Slide 140

Slide 140 text

#10 - Escrever código é facil, construir software nem tanto. #9 - Não seja um herói.

Slide 141

Slide 141 text

#10 - Escrever código é facil, construir software nem tanto. #9 - Não seja um herói. #8 - Programar é um trabalho criativo.

Slide 142

Slide 142 text

#10 - Escrever código é facil, construir software nem tanto. #9 - Não seja um herói. #8 - Programar é um trabalho criativo. #7 - Open Source é muito importante. Mas não é o mais importante.

Slide 143

Slide 143 text

#10 - Escrever código é facil, construir software nem tanto. #9 - Não seja um herói. #8 - Programar é um trabalho criativo. #7 - Open Source é muito importante. Mas não é o mais importante. #6 - Somos todos amadores.

Slide 144

Slide 144 text

#10 - Escrever código é facil, construir software nem tanto. #9 - Não seja um herói. #8 - Programar é um trabalho criativo. #7 - Open Source é muito importante. Mas não é o mais importante. #6 - Somos todos amadores. #5 - Seja opinado. Só tente não ser um idiota.

Slide 145

Slide 145 text

#10 - Escrever código é facil, construir software nem tanto. #9 - Não seja um herói. #8 - Programar é um trabalho criativo. #7 - Open Source é muito importante. Mas não é o mais importante. #6 - Somos todos amadores. #5 - Seja opinado. Só tente não ser um idiota. #4 - Gestão é um mal bem necessário.

Slide 146

Slide 146 text

#10 - Escrever código é facil, construir software nem tanto. #9 - Não seja um herói. #8 - Programar é um trabalho criativo. #7 - Open Source é muito importante. Mas não é o mais importante. #6 - Somos todos amadores. #5 - Seja opinado. Só tente não ser um idiota. #4 - Gestão é um mal bem necessário. #3 - Queime seus ídolos .

Slide 147

Slide 147 text

#10 - Escrever código é facil, construir software nem tanto. #9 - Não seja um herói. #8 - Programar é um trabalho criativo. #7 - Open Source é muito importante. Mas não é o mais importante. #6 - Somos todos amadores. #5 - Seja opinado. Só tente não ser um idiota. #4 - Gestão é um mal bem necessário. #3 - Queime seus ídolos . #2 - Você pode escolher a sua própria aventura.

Slide 148

Slide 148 text

No content

Slide 149

Slide 149 text

#1 - Ouse ser um otimista.

Slide 150

Slide 150 text

Programar significa falhar constantemente

Slide 151

Slide 151 text

No content

Slide 152

Slide 152 text

No content

Slide 153

Slide 153 text

✓ código bugado

Slide 154

Slide 154 text

✓ código bugado ✓ projeto atrasado

Slide 155

Slide 155 text

✓ código bugado ✓ projeto atrasado ✓ estimativas erradas

Slide 156

Slide 156 text

✓ código bugado ✓ projeto atrasado ✓ estimativas erradas ✓ features incompletas

Slide 157

Slide 157 text

✓ código bugado ✓ projeto atrasado ✓ estimativas erradas ✓ features incompletas ✓ bikesheding ¯\_(ϑ)_/¯

Slide 158

Slide 158 text

(˽°□°҂˽Ɨ ˍʓˍ

Slide 159

Slide 159 text

Programar também é criar muito a partir de nada

Slide 160

Slide 160 text

“Programming gives us live video conversations with relatives around the world; a map of our own biology; widgets that monitor oil pipelines from the inside; spreadsheets that run entire businesses; games where you build cities, or pretend to be a goat.”

Slide 161

Slide 161 text

“Programming is like building structures out of Lego, but I never run out of Lego bricks, and if there’s no brick with the exact shape that I need, I can make that brick.“ Sam Stokes - What Programming Is Like http:/ /blog.samstokes.co.uk/blog/2014/05/01/what-programming-is-like/

Slide 162

Slide 162 text

“You are all better than you think you are, you are just designed not to believe it when you hear it from yourself.” Jeff Winger - Community S01E01

Slide 163

Slide 163 text

http:/ /positivedoodles.tumblr.com/

Slide 164

Slide 164 text

http:/ /positivedoodles.tumblr.com/

Slide 165

Slide 165 text

http:/ /positivedoodles.tumblr.com/

Slide 166

Slide 166 text

http:/ /positivedoodles.tumblr.com/

Slide 167

Slide 167 text

“You will need other people, and you will need to be that other person to someone else a living, breathing, screaming invitation to believe better things.” Jamie Tworkowski https:/ /twloha.com/blog/happy-birthday/

Slide 168

Slide 168 text

Desenvolvimento de software é difícil e incrível ao mesmo tempo

Slide 169

Slide 169 text

nada nessa indústria é permanente, completo ou perfeito

Slide 170

Slide 170 text

e tudo pode ser melhorado

Slide 171

Slide 171 text

Obrigado! @lucasmazza