1. the real time web
Desenvolvimento ágil com Python
Christiano Anderson
diretor de desenvolvimento
anderson@nodeware.com.br
Twitter: @dump / @nodeware
Blog: http://christiano.me
2. Sobre o palestrante
● Trabalha com software livre desde 1995;
● Sócio fundador da Nodeware;
● Ex-desenvolvedor do Projeto GNU;
● Trabalha com Python desde 2000;
● Evangelista NoSQL, Django e Node.JS
● Colabora com equipe de tradução do MongoDB;
● Fundador do MUG-SP
Twitter: @dump
3. Sobre a Nodeware
● Empresa nova, mas com corpo técnico atuante
desde o início da internet comercial no Brasil;
● Foco em Python, soluções emergentes, nuvem,
NoSQL, Node.JS, georreferenciamento e CMS;
● Parceira 10gen, Amazon AWS;
● Conheça mais em http://www.nodeware.com.br
Twitter: @dump
4. Qual o desafio?
● Toda empresa de software precisa estar inovar, estar vários
passos à frente de seus concorrentes;
● Precisa desenvolver soluções rapidamente;
● Precisa reduzir ao máximo qualquer desperdício (seja
tempo, código mal escrito, bugs, etc);
● Manter equipe sempre motivada e produtiva;
● Colaborar com a comunidade de software livre;
● Ter tempo para tomar uma cerveja, ninguém vive só de
trabalho! :-)
Twitter: @dump
5. O que fazer...
● Escolher uma boa metodologia para desenvolvimento de
software;
● Criar padrões e metas de qualidade;
● Reduzir ao máximo qualquer desperdício (seja tempo,
código mal escrito, bugs, etc);
● Motivação, um dos fatores de sucesso;
Twitter: @dump
6. Metodologia SCRUM?
● Processo de desenvolvimento ágil, iterativo e
incremental;
● Entregas menores, mas regulares;
● Equipes multi-disciplinares;
Twitter: @dump
8. União faz a força
● A equipe precisa estar unida;
● Se um membro da equipe SCRUM cair, pode
levar todo o time junto;
● Todo mundo se ajuda;
● Equipes são auto-gerenciáveis;
Twitter: @dump
11. Sprint
● Um Backlog (conjunto de requisições) é
definida nas reuniões de Sprint;
● Cada Sprint dura de 2 a 4 semanas (geralmente
fazemos de 2 semanas);
● Ao finalizar um Sprint, uma retrospectiva é
feita para verificar prós e contras;
Twitter: @dump
14. Kanban
● Ótima ferramenta para controlar backlog e
manter a equipe motivada;
● Cada postit representa uma tarefa que deve ser
realizada naquele dia;
● No fim de cada dia, as tarefas devem ser
movidas para a coluna "feito".
Twitter: @dump
15. Kanban
● É uma maneira eficiente para identificar rapidamente
impedimentos;
● Em caso de impedimentos, o gerente de projetos deve agir
imediatamente e determinar a solução mais rápida para não
prejudicar o Sprint;
● Sprint bom é Sprint concluído sem impedimentos;
● Dica: Ótima ferramenta para Kanban Online: http://trello.
com
Twitter: @dump
17. A metodologia foi definida, agora vamos
à linguagem de programação
Twitter: @dump
18. Python?
● Criada em 1991 por Guido van Rossum;
● Linguagem de alto nível, interpretada, orientada
a documentos e com tipagem forte;
● Pode ser aplicada para servidores, desktop,
desenvolvimento web e mobile;
Twitter: @dump
19. Python?
● Muito utilizada por grandes empresas, como
Google, Amazon, Governo Federal, Globo.com,
etc;
● Possui uma comunidade forte e atuante;
Twitter: @dump
20. Python?
● Linguagem madura, estável, segura
● Possui uma ótima curva de aprendizado;
● Um ótimo mercado de trabalho, muitas vagas
em aberto! Está na hora de aprender Python!
Twitter: @dump
21. Python para ciência
● Módulo SciPy permite usar Python para
aplicações científicas, cálculos, matplotlib, entre
outros.
● http://www.scipy.org/
Twitter: @dump
30. Django?
● Framework web, desenvolvido em Python;
● Permite desenvolvimento de aplicações web de forma ágil,
com alto índice de reaproveitamento de código;
● Utiliza modelo MVC (ou melhor, MTV);
● O framework para quem se preocupa com prazos!
Twitter: @dump
31. Django?
● Possui suporte completo a GIS
(georreferenciamento);
● Sistema de templates avançado;
● ORM bastante poderoso;
● Permite dividir o projeto em aplicações
separadas;
Twitter: @dump
32. Django?
● Além disso, ótimo para trabalhar com
metodologias ágeis, como SCRUM;
Twitter: @dump
36. DRY - Don't Repeat Yourself
Não faça repetições, seja produtivo!
Twitter: @dump
37. Conclusão
● Qualquer indivíduo ou empresa pode desenvolver
softwares com qualidade e agilidade, escolhendo as
ferramentas e metodologias adequadas;
● Python com Scrum fez da Nodeware uma empresa
altamente produtiva, capaz de desenvolver softwares
complexos com eficiência;
● O mercado está precisando de bons programadores Python
que pensem de forma ágil. #ficadica
Twitter: @dump
39. Obrigado!!!!
Se não deu tempo de responder sua dúvida durante a
palestra, me pare no corredor ou entre em contato:
Christiano Anderson
anderson@nodeware.com.br
http://christiano.me
@dump
Twitter: @dump