layout: true name: titleslide class: center, middle
.footnote[ ####
@schmonz
[@octodon.social](https://octodon.social/@schmonz)
#morewithless
[schmonz.com/talk
/2024-lessnyc-may](https://schmonz.com/talk/2024-lessnyc-may/) ] --- layout: true name: footnotelinks .left-column[
] .footnote[ ####
@schmonz
[@octodon.social](https://octodon.social/@schmonz)
#morewithless
[schmonz.com/talk
/2024-lessnyc-may](https://schmonz.com/talk/2024-lessnyc-may/) ] --- template: titleslide # Not So Extreme Programming
## Amitai Schleier ??? 1. Press 'C' to clone and move it to projector 2. Press 'P' to show these here presenter notes --- layout: false template: footnotelinks .right-column[ # Code of Conduct ## Is there one for this meetup? ## Remind ourselves how we want to behave ## As with team agreements, declaring our shared intentions helps us live up to them ] --- .right-column[ # Who this talk is for Anyone involved with Agile (or "Agile"). Any role. Any scale. > "Pushing straight to trunk + TDD + mob programming > is way less #YOLO than > working on an isolated, long-lived feature branch, > with a delayed review, integration feedback, > and a lack of tests." -- [Dragan Stepanović](https://www.linkedin.com/posts/dstepanovic_yolo-activity-7050180084967583744-AGyP) ] --- .right-column[ # "Compared to what?" XP is not defined to include this question. But it's a very XP question. (Watch [Kent Beck ask it](https://youtube.com/shorts/TERSgM3jwOg?si=KNGWEMLJ6J9db5w_).) Let's come back to this. ] --- .right-column[ # "Extreme Programming" _Some_ of it's about what programmers do. _All_ of it's about what non-programmers need. (It might be Extreme for programmers. Depending on their upbringing.) ] --- .right-column[ # What we need from teams 1. R 2. O 3. I ## How: - Give us good options to choose from ### How: - Risk intentionality + cost control - Situational awareness - Predictability (in some actually useful way) - Conserve "surprise!" budget for discoveries ] --- .right-column[ # XP: defining behaviors
On-site Customer
Test-Driven Development
Whole Team
Design Improvement (Refactoring)
Planning Game
Continuous Integration
Customer Tests
Collective Code Ownership
Small Releases
Coding Standard
Simple Design
Metaphor
Pair Programming
Sustainable Pace
(Ron Jeffries, _[What is Extreme Programming](https://ronjeffries.com/xprog/what-is-extreme-programming/)_) ] --- .right-column[ # XP: defining behaviors (cont'd) - Informative Workspace - Energized Work - Stories - Weekly Cycle - Quarterly Cycle - Slack - Ten-Minute Build - Incremental Design (Kent Beck with Cynthia Andres, _XP Explained_, 2nd ed.) XP is also defined by its Values and Principles. These practices are strategies for enacting them. ] --- .right-column[ # XP: underlying ideas A few: - Systems Thinking - Theory of Constraints - Psychology of Computer Programming - Lean _XP Explained_ has a wide-ranging bibliography. ] --- .right-column[ # XP: adjacent ideas - Agile - Scrum - Crystal - FAST - Domain Driven Design - Trunk-Based Development Many, many conceptual connections. Impossible to list them all. ] --- .right-column[ # What's actually extreme Managing software projects like any other kind of project. Divvying up work to each person. _Someone else_ divvying up work to each person. Not talking about risks. Not worrying about maintenance costs. Not talking to customers. Not involving developers in customer problem-solving. Treating developers like interchangeable parts. Squeezing them harder hoping for better results. Investing a great deal of money, time, and effort without opportunities for feedback. "How's that working out for you?" ] --- .right-column[ # "Not so Extreme" > "Exponentially increasing the risk of something going wrong as you add more functionality is pretty extreme programming **compared to TDD** if you ask me." > -- [Dragan Stepanović](https://twitter.com/d_stepanovic/status/1548025937991573505) (emphasis added) Ah, there it is. ## _Compared to what?_ ] --- .right-column[ # XP: compared to now ## 1999: _XP Explained_, 1st ed. ## 2004: _XP Explained_, 2nd ed. ## 2024: _XP Expanded_, community ed. (?!?!) - Distributed teams - Pairing -> mob/ensemble/whole-teaming - Dynamic reteaming - Dependencies - Branching - Let go of Metaphor? (See also Benji Weber, _[Modern Extreme Programming](https://benjiweber.co.uk/blog/2015/04/17/modern-extreme-programming/)_) ] --- .right-column[ # XP: try a little By yourself, [guided TDD exercises](https://exercism.org) in your language of choice. With others, [open mob programming sessions](https://github.com/gregorriegler/mob-programming-rpg). ] --- .right-column[ # XP: finding community - Slacks: [Software Crafters](https://slack.softwarecrafters.org), [WeDoTDD](https://join.slack.com/t/wedotdd/shared_invite/zt-1c4v52w9u-1wj~L~yLcq0Gf7ltx9dH2g), [Legacy Code Rocks](http://slack.legacycode.rocks/) - LinkedIn: [XP group](https://www.linkedin.com/groups/147797/) - Mailing list: [extremeprogramming@groups.io](https://groups.io/g/extremeprogramming) - Twitter: [#ExtremeProgramming](https://twitter.com/search?q=%23ExtremeProgramming&src=typed_query&f=live), [#XPLives](https://twitter.com/search?q=%23XPLives&src=typed_query&f=live), [#refactoring](https://twitter.com/search?q=%23refactoring&src=typed_query&f=live), [#MobProgramming](https://twitter.com/search?q=%23MobProgramming&src=typed_query&f=live), [#EnsembleProgramming](https://twitter.com/search?q=%23EnsembleProgramming&src=typed_query&f=live), [#TDD](https://twitter.com/search?q=%23TDD&src=typed_query&f=live) - Meetups: [Mallorca Software Crafters](https://www.meetup.com/mallorca-software-crafters/), [Munich Software Craft](https://www.meetup.com/munich-software-craft-community/), [New York XP & Agile](https://www.meetup.com/xp-and-agile/), [Calgary Software Crafters](https://www.meetup.com/calgary-software-crafters/) - Conferences: [Agile & Beyond](https://agileandbeyond.com/2024/), [Agile Manchester](https://agilemanchester.net), [OOP](https://www.oop-konferenz.de/oop-2024), [GDCR](https://www.coderetreat.org/), [XP](https://www.agilealliance.org/xp2024/), [Agile](https://www.agilealliance.org/agile2024/) ] --- .right-column[ # XP: what Agile means to me ##
agilein3minut.es
> "Before Agile in 3 Minutes, I couldn't get my team to have a > conversation about important topics. Now I have to timebox it."
-
25: Release
-
29: Refactor
-
31: Integrate
-
32: Mob
## [leanpub.com/agilein3minutes](https://leanpub.com/agilein3minutes) ] --- template: titleslide # Not So Extreme Programming
## [Amitai Schleier](https://latentagility.com)