##Apresentação

Opa, eu sou o Igor Souza, aluno de ciência da computação. Sou louco por tecnologia e hackathons. Uma frase que define o meu desejo enquanto desenvolvedor eu li em um livro e diz o seguinte: nós devemos tratar o celular como nossa armadura do homem de ferro; a armadura do homem de ferro extende as vontades do tony stark, o auxilia. E é isso que eu quero fazer com os meus projetos, extender as vontades dos usuários, facilitar a vida deles, tornar-los mais fortes, "super-heróis" nas pequenas e grandes tarefas do cotidiano.

O livro também diz que no final do dia o homem de ferro era só um homem, e eu levo isso tbm, é o homem que controla a tecnologia, não o contrário.

"Mobile phone is our Iron Man suit"

Estou quase sempre nos eventos das comunidades de devs do Rio, gosto de participar e ver o que está acontecendo no cenário de desenvolvimento.

##Introdução

O meu objetivo com essa proposta é mostrar de que forma posso somar enquanto diretor de projetos à In Junior. Em vários eventos em que estive presente, pude ver e aprender de que forma melhorar e automatizar processos de desenvolvimento, boas (diria até ótimas) práticas, cultura de empresa e de comunidade.

##Histórico na empresa e no MEJ

Durante esse ano na IN pude participar de atividades e crescer de uma forma que não esperava.

Fui o tutor (acho que o título de professor é forte demais) dos módulos de Javascript e Mobile; o segundo não fui um grande sucesso, pois a instalação no windows deu alguns problemas não esperados, e os trainees acabaram ganhando um tempo no projeto do sistema.

Participei, junto com os outros membros de projetos, de alguns processos. Destaco aqui o dia em que fomos todos pra casa do Cardoso. Lá, trabalhamos mapeando alguns processos da nossa diretoria, além de mapear o Controle Horas, o projeto interno dos (ex-)trainees. É claro que não conseguimos solucionar todos os problemas, mas o mais importante foi ver a união e a vontade de cada membro de querer ver a empresa avançar.

Sou gerente do Projeto GPU, do professor Esteban, e já estamos na fase final do projeto.

No MEJ em si, estive participando no UFF Juntos. Além disso, já realizei benchs com a EJCM e com a Empresa Júnior da PUC (esse foi mais informal, estava na PUC em uma hackathon e bati na porta para uma conversa).

##Auto-Avaliação na gestão anterior

O Daniel Callado aceitou o desafio de pegar a diretoria da empresa recém iniciada e fez um ótimo trabalho. Sempre esteve junto com os membros da diretoria, nos ouvindo e também dando feedback sobre o que fizemos. Talvez um dos poucos defeitos da sua diretoria foi que ele tomou muitas responsabilidades para si, até as que poderiam ser diluídas entre a diretoria.

Acho que essa proximidade que foi criada entre todos os membros nos tornou uma diretoria forte e sólida, e é algo que deve continuar.

##Planejamento Pessoal para dedicação à empresa

Desde o começo estou aprendendo agerir o meu tempo, de forma que a empresa terá o tempo necessário.

##Propostas e resultados esperados

###Métodos Ágeis

####Indivíduos e interações mais que processos e ferramentas

####Software em funcionamento mais que documentação abrangente

####Colaboração com o cliente mais que negociação de contratos

####Responder a mudanças mais que seguir um plano

###Extreme Programming

As metodologias existem para facilitar a nossa vida enquanto empresa de desenvolvimento. É claro que talvez nós, como não somos uma empresa sênior, não consigamos aplicar 100% das práticas apresentadas nessas metodologias, mas, bem, elas estão aí pra facilitar a nossa vida, então por que não pararmos ao menos pra ver o que as faz tão especiais?

É uma metodologia que, confesso, conheço mais, e que por conhecê-la, sei que é a mais difícil de ser aplicada. Não querendo transformar isso em uma explicação sobre o que é XP (não experiência, e sim eXtreme Programming), mas ela se encaixa perfeitamente no método ágil, e destaco os quatro valores dela, que definitivamente facilitam e agilizam os processos de desenvolvimento

####Comunicação

Assim como o Ágil, a XP também visa a melhor e mais rápida comunicação entre as pessoas envolvidas, para que, assim, os problemas sejam solucionadas da melhor forma possível. Ora, foi isso que aconteceu depois da etapa trainee, quando vimos que o treinamento não foi totalmente efetivo, e que precisariamos aplicar uma tutoria.

Essa tutoria também se encaixa em uma ótima prática, pair programming, que nada mais é que dois desenvolvedores trabalhando lado-a-lado em um mesmo problema. Um desenvolvedor costuma ser mais experiente que o outro, mas nem sempre. Assim, a aproximação entre os dois aumenta, e ambos aprendem.

####Simplicidade

Por que pensar em todo o sistema em um primeiro momento? Sei que esse é o pensamento usual, como solucionar todo o problema de vez. Então, um grande professor sempre dizia que devemos desenvolver sempre em partes, divide to conquer. Nós sabemos que dificilmente utilizamos 100% do software, então por que não trabalhar com entregas curtas e contínuas? Assim, podemos entregar o que o cliente realmente quer, e de forma que ele sempre tenha algo utilizável, desde a primeira entrega.

####Feedback

O problema do treinamento entraria aqui também, mas destaco algo muito mais importante: Testes. Que sejam testes unitários, de integração, de aceitação, nós precisamos de métodos efetivos para testar os nossos sistemas. No Aval, nós passamos praticamente uma tarde testando cada funcionalidade, cada caso de uso, e encontramos alguns erros. Deixando de lado os "na minha máquina funciona", com esses tipos de testes automatizados, ficaríamos mais seguros enquanto a qualidade, pois receberiamos logo cedo o feedback de erros, se eles existirem.

####Coragem

Talvez o mais "não-tecnológico", mas o mais importante. É preciso coragem pra dar esse start e utilizar esse tipo de metodologia. As mudanças são grandes, e a mais difícil é a mudança de mindset. Precisamos pensar como desenvolvedores extremos, ágeis, para que possamos aplicar todas os métodos que estão ao nosso alcance.

###Incentivo à novas tecnologias e novos conhecimentos

A nossa área está em constante desenvolvimento. Para dar um exemplo, parece que a cada semana temos uma nova framework. Não quero dizer que precisamos saber de tudo sobre angular, sass, meteor, laravel, rails, django, node... (se eu continuar, vou acabar passando das 10 páginas) Não precisamos conhecer tudo, mas caso seja algo de interesse, seria no mínimo interessante dar essa abertura para que o membro aprenda, e utilize ao menos em projetos internos, novos conhecimentos.

Deixo aberto "novos conhecimentos", pois não devemos ficar fechados em programação. Como a nossa diretoria trabalha também com o setor comercial, contato com cliente, é bom que promovamos benchs e capacitações nessas áreas.

###Promoção de eventos internos, e incentivo à externos

Trabalhar, junto a diretoria de GP, na promoção de eventos internos, para que possamos compartilhar com os outros membros (e não-membros) coisas que estamos estudando e achamos interessante mostrá-las "ao mundo". O interessante de promover palestras, treinamentos, ou mesmo pequenas "talks" sobre assuntos diversos, é que nos forçamos a aprender mais sobre tal assunto, além de aprendermos a como falar, apresentar e compartilhar conhecimentos. Digo isso por experiência própria, e é o que vejo em todos os eventos em que fui.

Além dos eventos internos, precisamos incentivar os nossos membros a comparecer a eventos externos, sobre diversos assuntos. Isso vai agregar um grande valor ao membro, além de trazer um novo conhecimento, uma nova área, um novo pensamento à empresa.

##Considerações finais

Durante esse ano na diretoria de projetos, pude crescer enquanto desenvolvedor, profissional, e principalmente como pessoa. Minha candidatura é uma forma de retribuir tudo o que ganhei durante esse ano, e também compartilhar e aplicar o que aprendi durante o ano, claro que mantendo o ótimo trabalho da gestão anterior.

Tenho a ciência de que não consegui expressar todo o meu desejo e todas as minhas ideias pra diretoria, e creio que nem da pra explicar tudo aqui. Isso vai ser algo que vai ser construído durante o período de gestão, sempre levando em consideração todos os membros da diretoria.

https://github.com/IgorSFA/PropostaProjetos