Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Extreme Programming - Introdução

Extreme Programming - Introdução

Slides for the talk delivered at the EngineOne Developers Meetup in Maputo on 09.03.2018 with focus on workflows and best practices.

Avatar for Paulo Phagula

Paulo Phagula

March 09, 2018
Tweet

More Decks by Paulo Phagula

Other Decks in Programming

Transcript

  1. Yo! • @dareenzo everywhere • tea not coffee (last 24

    hours) • vim not emacs • spaces not tabs
  2. Aviso Legal • Portinglês • Contains highly-contagious traces of controversial

    ancient wisdom that might break your most core beliefs. Hang tight! • YMMV • I didn’t/won’t violate any dark-secret/pacts I have with my employers / customers / family & friends today
  3. porquê importa? • "Software is eating the world” — Marc

    Andreessen, WSJ • "Many agile projects are now, steadily and iteratively, producing crap code” — Sandro Mancuso, The Software Craftsman: Professionalism, Pragmatism, Pride • "68% dos projectos de software no mundo falham” — Standish Group CHAOS Report
  4. –Kent Beck “XP is a lightweight methodology for small to

    medium sized teams developing software in the face of vague or rapidly changing requirements”
  5. Objectivo • Produzir software the alta qualidade de forma mais

    produtiva, melhorando a qualidade de vida dos desenvolvedores. • Reduzir o custo de mudanças de requisitos
  6. –Kent Beck “When I first articulated XP, I had the

    mental image of knobs on a control board. Each knob was a practice that from experience I knew worked well. I would turn all the knobs up to 10 and see what happened. I was a little surprised to find that the whole package of practices was stable, predictable, and flexible.” porquê “eXtreme”?
  7. Feedback rápido “A few seconds delay between the stimulus and

    response renders a mouse unable to learn red means food”.
  8. Assumir Simplicidade "Every time someone tries to end a war

    before it even starts, innocent people die” — Cap. América
  9. Quality Work “Don’t leave broken Windows” — The Pragmatic Programmer

    “Cease dependence on mass inspection to achieve quality. Improve the process and build quality into the product in the first place” — W. Edwards Deming
  10. Práticas Fine Scale • Planning Game • On-site Customer •

    Test-First Development • Pair-Programming Shared Understanding • Simple Design • System Metaphor • Collective Code Ownership • Coding Standards Continuous Process • Continuous Integration • Refactoring • Small Releases Programmer Welfare • Sustainable Pace (40-hour work week)
  11. • um requisito de funcionalidade descrito do o ponto de

    vista do utilizador em linguagem simples, que é usado para estimar, planear e validar o desenvolvimento de alguma funcionalidade • indica que funcionalidade é desejada, para quem é destinada, porquê precisa-se e os critérios de aceitação User Stories
  12. Adoptando 1. Busque o seu maior problema 2. Resolva-o usando

    XP 3. Se não for mais um problema repita.
  13. Desafios • É difícil fazer coisas simples • É difícil

    aceitar que não sabemos • É difícil derrubar barreiras emocionais • É difícil convencer o cliente a permanecer conosco
  14. • Sob pressão, retornamos aos “maus" hábitos • Testing e

    Refactoring são skills por si só e devem ser aprendidos • A sociedade valoriza o indivíduo - não pares, nem equipas
  15. Ideias / Tips • Fazer code Katas para aprender mais

    sobre testing e refactoring. Ver: http://exercism.io • Informar ao cliente que “It's developer’s (mis)understanding, not your knowledge that becomes software” • Aprender técnicas para descrever e aprender domínios mais rapidamente • Usar linters, .editorconfig & fmt tools, para nunca mais ter debates sobre espaçamento ou o posicionamento das chavetas • Em luz ao crescente número de metodologias agéis, Ivar Jacobson tem uma sugestão: “Matem todas as metodologias. Libertem as práticas”
  16. !=

  17. On XP • Extreme Programming Explained, Embrace Change by Kent

    Beck with Cynthia Andres - Seminal Book on XP • Extreme Programming 20 Years Later by Kent Beck • C3 Project Description on Martin Fowler's Bliki • What is eXtreme Programming by Ron Jeffries • System Metaphor Description on C2 On "agile" corruption and harm • Agile is Dead talk at GOTO Conference 2015 by Dave Thomas - "agile" manifesto signatory • The Corruption of Agile by Uncle Bob - "agile" manifesto signatory • Flaccid Scrum by Martin Fowler - "agile" manifesto signatory On Agile vs. Lean vs. … • Agile Vs. Lean: Yeah Yeah, What’s the Difference? - Abby Fletcher • Agile Versus Lean - Martin Fowler • How do the Agile, Lean and Kanban methodologies relate? - StackOverflow Question On user stories • User Stories Applied for Agile Software Development by Mike Cohn • User Stories for Agile Requirements by Mike Cohn On TDD • Growing Object Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce On Refactoring • Refactoring Improving the Design of Existing Code by Martin Fowler and Kent Beck • Refactoring from Good to Great by Ben Orenstein - Aloha Ruby Conf 2012 - • RailsConf 2016 - Succession by Katrina Owen • BathRuby 2015 - Here Be Dragons by Katrina Owen • Overkill @RubyConf Portugal by Katrina Owen Dedicated sites • http://www.extremeprogramming.org - dedicated site on XP • http://agilemanifesto.org - dedicated site containing "agile" manifesto • http://exercism.io - dedicated site for practicing code katas by Katrina Owen Referências