Os 6 melhores livros para estudar metodologias ágeis

Vez ou outra eu recomendo livros que já li aqui no blog, geralmente relacionados à empreendedorismo, que é o que mais tenho lido nos últimos anos. Hoje resolvi falar de livros sobre uma outra paixão minha: gerenciamento ágil de projetos. Desde 2010, quando conheci e me especializei no uso de Scrum e outras metodologias ágeis que não parei mais de estudar e ensinar o assunto para outras pessoas.

Após algum treinamento ou palestra, sempre vem aquela pergunta: que livros você recomenda? Pois bem, aqui vão eles!

Os livros que eu recomendo são:

Clique nas capas para mais detalhes e para adquirir os livros. Não, eu não faço pirataria e não vou colocar (nem permitir nos comentários) livros para download que não sejam realmente gratuitos.

Boa(s) leitura(s)!

Guia do Scrum
Guia do Scrum

O Guia do Scrum

Download gratuito

Existe uma frase popular que diz: “O Scrum é um framework simples de entender, mas difícil de dominar”. Por que isso?

Estamos falando de um framework ágil, e não de uma metodologia de desenvolvimento de software como RUP, ou seja, não há uma receita pronta aqui, mas sim uma estrutura mínima a ser seguida em um eterno fluxo de construir-medir-aprender assim como o do Lean Startup. Há apenas esse livro gratuito, de 19 páginas, para ser estudado e praticado ad infinitum.

Este guia é a base para entender o básico do Scrum e deve ser usado, na minha opinião, como ponto de partida de qualquer equipe que queira se tornar ágil. No entanto, conforme a equipe avança e percebe a necessidade de mais ferramental e informações, entram os demais livros abaixo listados.

Aqui no blog tem um bom resumo dele, caso queira saber mais, neste post.

Scrum: A arte de fazer o dobro do trabalho
Scrum: A arte de fazer o dobro do trabalho

Scrum: A arte de fazer o dobro de trabalho na metade do tempo

Comprar na Amazon

O Scrum foi co-criado por Ken Schwaber e Jeff Sutherland. Esse sr. Jeff serviu como militar e mais tarde, durante vários anos, atuou como gerente de projetos em grandes empresas públicas e privadas incluindo o FBI, sendo que essas experiências foram adicionadas ao que mais tarde ele e sr. Ken chamariam de Scrum.

É um excelente livro que conta as aventuras de Jeff Sutherland na aeronática americana em meio à guerra do Vietnã e como isso influenciou seu modo de gerenciar projetos. Também conta como aprendeu os princípios do Lean, das artes marciais japonesas e como isso tudo influenciou seu modo de pensar e acabou originando o Scrum. Em meio às histórias das origens do Scrum, ele fala muito sobre princípios e conta cases de aplicações bem sucedidas, de software à jornalismo.

Sinceramente? É uma leitura prazerosa e rica, mas não ensina Scrum para ninguém, gosto de indicar pois ajuda a entender os princípios, o mindset que originou o Scrum.

Implementando o desenvolvimento Lean
Implementando o desenvolvimento Lean

Implementando o desenvolvimento Lean de software: Do Conceito ao Dinheiro

Comprar na Amazon

Outro excelente livro que li já tem vários anos, desta vez de Mary e Tom Poppendieck. A Mary é uma engenheira com algumas décadas de desenvolvimento nas costas, que fala muito bem sobre Lean Software Development, outra técnica adaptada da indústria japonesa Toyota para o mercado de software, assim como o Kanban e até mesmo o Scrum (em partes).

Assim como o livro “Scrum: a arte de fazer o dobro de trabalho na metade do tempo”, que citei logo acima, a autora se prende demais em contar cases de sucesso e acaba demorando para entrar no Lean em si. No entanto, é muito enriquecedor do ponto de vista de princípios.

Programação Extrema
Programação Extrema

Programação Extrema Explicada: Acolha as mudanças

Comprar na Amazon

De todos os livros que vou indicar aqui, este é o único que nunca li. No entanto, conheço a trajetória de seu autor principal, que hoje trabalha no Facebook como mentor dos desenvolvedores mais jovens, Kent Beck.

Este livro é indicado pois é a obra-prima de Kent Beck (com a ajuda de Cynthia Andres), um dos signatários originais do manifesto ágil, movimento que difundiu as metodologias ágeis pelo mundo, e criador também das metodologias TDD (Test Driven Development) e XP (Extreme Programming).

Apesar do XP ser uma metodologia “concorrente” ao Scrum (que é a minha favorita), há conceitos muito valiosos no XP que cobrem “furos” do Scrum, como Pair Programming, só para citar um exemplo. Vale a indicação.

SBOK
SBOK

Guia SBOK: Um guia para o conhecimento em Scrum

Download gratuito

A Scrum Study é uma empresa que dá cursos e aplica provas de certificação em Scrum (embora eu sugira fazer direto com a Scrum.org) e, o SBOK (Scrum Body of Knowledge), é o guia que eles criaram (em analogia ao PMBOK) para ajudar que profissionais consigam tangibilizar melhor a adoção do Scrum em seus projetos, uma vez que o Guia do Scrum original não ajuda muito neste ponto.

O Guia SBOK tem vários pontos positivos e negativos: ele é muito útil ao discutir mais à fundo alguns conceitos pouco explorados no Guia do Scrum, levantar questões importantes e ensinar algumas novas técnicas de aplicação. Por outro lado, cria termos novos que não necessariamente (na minha opinião) enriquecem o Scrum, apenas complicam-o.

Enfim, é uma leitura muito boa que as vezes eu revisito para lembrar de algumas coisas.

Scrum e Métodos Ágeis
Scrum e Métodos Ágeis

Scrum e Métodos Ágeis: Um Guia Prático

Comprar na Amazon

E por último, mas não menos importante, o livro que eu escrevi sobre Scrum e Métodos Ágeis em 2016. Trabalho com Scrum desde 2010, principalmente como Scrum Master, o responsável por garantir e aperfeiçoar os processos dentro do time. Depois de tantos anos, Sprints e times diferentes, resolvi exteriorizar o que eu considero que funcionou nos times que eu trabalhei para complementar o Guia do Scrum, ou seja, não é um substituto ao Guia do Scrum, mas um adendo ao mesmo.

O Scrum fala por exemplo sobre fazer a Sprint Planning, mas não te diz como estimar as tarefas. Ele fala a Definição de Pronto, mas não te diz como criá-la. Fala sobre transparência no projeto, mas não te dá dicas de como alcançá-la. O meu livro procura preencher estas lacunas e só coloquei ele aqui por último na lista para não soar favoritismo. Mas eu realmente acho que ele é um bom livro. 🙂

Padrões de Arquitetura de Aplicações Corporativas – Resenha

Quem me conhece sabe que eu não leio muitos livros de programação. Isso é curioso para alguém que trabalha há 11 anos com programação, mas sim, eu não costumo ler livros de programação. Isso não quer dizer que eu não leia nada à respeito, é claro. Eu leio muito em diversas fontes, atualmente muito no Medium, aliás. Como estou sempre envolvido com um projeto ou outro, acabo aprendendo conforme a demanda surge, fazendo algo parecido com a Dieta Pobre de Informação que o Tim Ferriss sugere no livro dele.

No entanto, existem alguns livros que considero leituras altamente recomendadas e que me ajudaram muito enquanto programador. Além disso, existem alguns autores que eu realmente recomendo pois são profissionais incríveis que contribuíram e ainda contribuem para a evolução da forma como desenvolvemos software. Um desses livros é o Padrões de Arquitetura de Aplicações Corporativas. Um desses autores é Martin Fowler, o autor desse livro aliás.

O Livro

O PEAA (da sigla em Inglês Patterns of Enterprise Application Architecture) não é o livro mais clássico sobre o assunto e também não é o mais famoso. Esse título pertence ao Padrões de Projetos da Gang of Four. No entanto, nesta década de experiência que tive desenvolvendo os mais inúmeros sistemas, nas mais diversas plataformas, o PEAA sempre me foi mais útil que o Padrões de Projeto, por isso que estou recomendando ele hoje.

É um livro imenso, com quase 500 páginas, que cobre aproximadamente 40 padrões de arquitetura de software recorrentes em diversos cenários. Mas ele não é apenas um listão de padrões, ele é extremamente bem organizado em seções de acordo com o contexto do problema que está querendo resolver (domain logic, data source, web presentation, etc).

E o autor não fica apenas nos conceitos mas mostra exemplos de código bem como diagramas UML para facilitar o entendimento de cada padrão. Além disso, ao contrário da sua contraparte mais antiga, é possível ver mais claramente a aplicação de cada padrão em cenários existentes nos projetos atuais. Não que isso diminua o Padrões de Projeto da GoF, mas sim que os padrões do catálogo PEAA são mais recorrentes, e até mesmo possui alguns em comum.

Esse não é o tipo de livro que você pega e lê da primeira página à última. Tenho um exemplar há uns 4 anos e certamente não li ele inteiro ainda. É o tipo de livro no qual você busca apoio quando tem algum problema arquitetural difícil de solucionar. Você até pode correr por suas 492 páginas dando uma “olhada geral” nos padrões e entendendo os principais em um nível mais alto, mas dificilmente vai gostar da leitura se lê-lo do jeito tradicional.

Enfim, é um excelente livro, o melhor que já li sobre arquitetura de software.

O Autor

Eu sou suspeito para falar de Martin Fowler. Durante a minha ascensão enquanto programador, de estagiário à gerente de projetos, eu consumi muito conteúdo desse autor, especialmente de seu blog o martinfowler.com. Esse engenheiro é simplesmente genial, estando à frente de projetos na ToughtWorks há décadas e mais de uma vez já pensei em aceitar propostas de emprego na TW só para ter a oportunidade de trabalhar com ele em algum projeto.

Ele não é apenas um programador genial, que muito me espelhei durante os anos iniciais aprendendo programação, mas ele também é um exímio gerente de projeto, estando entre os signatários originais do Manifesto Ágil, que oficializou o uso destas práticas pouco ortodoxas de desenvolvimento de software ao redor do mundo com frameworks como Scrum e XP.

Fowler é ainda autor de grandes citações sendo a minha favorita: “Bons programadores escrevem programas que máquinas entendem. Programadores excelentes escrevem programas que humanos entendem.“. Essa frase balizou muitas decisões de projeto em toda minha carreira, para dizer o mínimo. Recentemente estava lendo alguns excelentes artigos em seu site e me senti novamente um aprendiz de programação frente ao seu nível de conhecimento.

Poucos profissionais nesse mundo são capazes de me impressionar assim, sou do tipo difícil de agradar, mas esse autor com certeza é o meu favorito quando o assunto é programação. Espero um dia lançar um livro que ajude tanto os programadores quanto ele faz.

Espero que vocês gostem da recomendação também.

Os 7 livros de programação mais recomendados

Lembro que quando ainda era estudante de Ciência da Computação eu gostava muito de estudar usando livros pois passava horas por dia em ônibus. Em 2006 smartphones eram quase inexistentes (o iPhone só seria lançado no ano seguinte), os tablets ainda demorariam alguns anos para despontar e o que nos restava era o bom e velho livro de papel e tinta.

Uma dúvida comum que eu tinha na época era: qual livro é o melhor?

Lembro de entrar na biblioteca da Ulbra Gravataí, que não é nada imensa mas possui dois andares abarrotados de livros, e perder muito tempo pelas prateleiras de computação sem muita certeza do que pegar. Pior ainda quando ia em livrarias, pois o dinheiro era escasso e os títulos eram muitos. Pra complicar ainda mais, livros de programação são extremamente caros, na faixa dos R$100, e uma compra errada te prejudica financeiramente durante um bom tempo (não existiam ebooks como esses na época). 😛

Hoje, na função de professor, vez ou outra algum aluno me pede a indicação de algum livro. Quando condizente, acabo indicando algum de meus livros, mas nem sempre são a melhor opção, principalmente se o aluno quiser impresso (os meus são ebooks).

Recentemente o site Dev-Books.com analisou mais de 40 milhões de perguntas e respostas do site StackOverflow.com para descobrir os livros mais recomendados pelos programadores. Caso você ainda não conheça o StackOverflow.com ele é o maior site de perguntas e respostas sobre programação do mundo!

Para este post eu separei alguns itens da lista que eu confirmo como muito bons, seja porque eu li, ou porque alguém que eu confio leu e recomenda. A lista completa pode ser encontrada neste link (em Inglês).

Clique na capa de cada livro para ver os preços na Amazon.

#1 Padrões de Projeto: Soluções reutilizáveis de software orientado à objetos

Número dois na lista mundial de recomendações da Dev-Books.com, o clássico da Gang of Four que definiu e formalizou os padrões de software mais conhecidos e utilizados da indústria. Referência obrigatória em qualquer disciplina de padrões de projeto em faculdades mundo afora, é um livro denso e que eu não recomendo para iniciantes em software, mas que é livro de cabeceira para programadores plenos e sêniors que busquem se tornar ainda melhores.

Caso esteja começando agora a se tornar um programador e deseje uma leitura mais light (embora não tão completa), sugiro o Use a Cabeça: Padrões de Projeto, citado mais abaixo nesse post.

#2 Código Limpo: Habilidades Práticas do Agile Software

Clássico de Robert C. Martin, o Uncle Bob, Código Limpo é o#3 da lista mundial, sendo um livro objetivo, pragmático para escrever código melhor desde a sua concepção, produzindo softwares mais robustos e manuteníveis.

Confesso que nunca li este livro, embora tenha “bebido” de seu conteúdo diversas vezes através de suas técnicas universais e muito difundidas de escrita e refatoração de código, uma vez que o Tio Bob é uma referência mundial no assunto. Além disso, muitos programadores de confiança leram e recomendam para todos os níveis de programação!

#3 Domain Driven Design: Atacando as complexidades no coração do software

Outro clássico sobre padrões de projeto, #5 da lista mundial, especificamente sobre DDD: Domain Driven Design, ou projeto orientado à domínio.

Uma arquitetura de software muito difundida atualmente, o DDD também não é uma leitura muito fácil para iniciantes, mas obrigatória para engenheiros de software.

Também não conheci o DDD através desse livro, mas através de tutoriais e aulas na Internet. O que não diminui, no entanto, a sua importância enquanto instrumento de ensino.

#4 Padrões de Arquitetura de Aplicações Corporativas

Novamente, mais um livro de padrões de projeto, #7 da lista mundial. No entanto, diferente do DDD do Eric Evans e do Design Patterns da Gang of Four, este aqui eu recomendo para todos os públicos. Isso porque além de ser extremamente bem organizado, tem padrões com as mais variadas complexidades, muito objetivos, com exemplos muito claros e muito prático.

Diferente dos GoF Patterns, o catálogo PEAA (em alusão ao nome original, Patterns of Enterprise Applications Architecture) é muito mais prático e é difícil de encontrar um padrão em que você não tenha um bom exemplo de uso em mente, enquanto nos design patterns originais alguns soam muito específicos e com pouca utilidade para o modelo moderno de desenvolvimento de software.

#5 – Use a Cabeça: Padrões de Projeto

Esse sim é um livro de padrões de projeto para iniciantes!

Como todos os livros da série Use a Cabeça, essa edição é extremamente didática, pouco ortodoxa e muito prática. Enquanto os mais conservadores torcerão o nariz para o #10 da lista mundial, os mais jovens vão achar o máximo os exemplos utilizados, a estrutura do livro e o conhecimento que irão adquirir lendo essa imensa (e cara!) obra.

Tenho um grande apreço por esse livro pois foi com ele que finalmente consegui entender padrões de projeto para mais tarde poder ir atrás das fontes mais clássicas e me aprofundar no assunto.

#6 – TDD: Desenvolvimento Guiado por Testes

Talvez uma das maiores contribuições de Kent Beck para a humanidade, o #13 livro de programação mais recomendado mundialmente (#6 na minha lista). A metodologia TDD se une às suas demais invenções do autor, como a metodologia ágil XP, para nos trazer um mindset completamente oposto ao usual de programar > testar para testar > programar, focando o desenvolvimento nos requisitos do usuário e programando de “fora pra dentro”.

Este é um framework fácil de entender e muito difícil de ser dominado, semelhante ao que se enfrenta ao adotar o Scrum, mas mais especifico ao desenvolvimento de software em si. Vale a leitura ou ao menos (como eu) entender seus conceitos e tentar absorver o que puder.

#7 – Algoritmos: Teoria e Prática

O livro supremo de algoritmos e programação!

Muito usado por diversos professores ao redor do mundo para ensino de algoritmos em faculdades, o autor Thomas Cormen é uma lenda quando o assunto é este tópico e lembro de ter lido muito de seus materiais na época que fazia mestrado.

Embora eu não tenha lido especificamente este trabalho do autor que é o #14 mais recomendado do mundo, já li outro livro que é bem maior aliás e certamente é uma boa leitura para quem quiser dominar a base da programação e principalmente se quiser ensinar alguém um dia.

Note que nenhum dos livros fala de alguma tecnologia específica como Java ou C#, mas sim de conceitos e técnicas mais amplas, que são úteis a todos os programadores. Como já comentei em outras ocasiões, é a “base” que faz os programadores de verdade!

Bônus: Livros de Tecnologias Específicas

Devido à pedidos, atualizei o post com alguns livros que li e recomendo quando assunto é aprender alguma linguagem de programação ou tecnologia específica. Eles não estão em uma ordem específica, uma vez que citei apenas um por linguagem/plataforma.

Clique na capa para ver os preços dos livros na Amazon!

Java: Guia do Programador

Esse autor, o prof. Peter Jandl Junior, possui uma didática muito boa e me baseei muito na forma como explica os conceitos do Java quando escrevi o meu próprio livro sobre o assunto, o Java para Iniciantes. Na verdade eu literalmente aprendi Java com esse professor em 2006 e sou muito grato à ele por isso.

Google Android

O livro mais famoso de Android, do autor Ricardo Lecheta pela Editora Novatec. Eu poderia recomendar o meu livro também, o Criando apps para empresas com Android, mas nem se compararam ambos os livros (inclusive em preço :P).

C# 3.0: Guia de Bolso

Ok, nem de longe é o livro mais recente de C#, mas a didática é excelente. Vi que tem versões desse mesmo livro mais atuais, então dá uma procurada que você acha, é só se basear pela capa e pela editora: OReilly. Se um dia eu for escrever um livro de C#, certamente me basearei nesse aí. Me ajudou muito quando estava começando com essa linguagem em 2007.

Javascript: The Good Parts

Eu não li esse livro na verdade, mas está na minha lista desde que comecei a estudar Node.js com mais afinco. Foi uma recomendação de alguém que conheci em um evento e que entendia muito mais de Node.js que eu. Ele me afirmou que é excelente para realmente entender JS. Especificamente de JQuery tem um que eu recomendo muito que é o JQuery Fundamentals, que eu nunca mais encontrei.

Expressões Regulares: Uma Abordagem Divertida

Esse livro é fantástico e já fiz uma resenha completa dele aqui no blog. Mudou muito a forma coo passei a lidar com problemas de string e me ajudou a fundar minha primeira startup em 2010.

E aí, gostou da lista?

Tem alguma outra sugestão de livro que vale a recomendação?

Posta aí nos comentários!

* OBS: curtiu o post? Você já conhece os meus livros? Não? Então dá uma visitada neste link!