Todd Sedano

Software Engineering, Improv, Craft of Software Development

Sustainable Software Development

This table compares Sustainable Software Development to Extreme Programming

Sustainable Software Development XP Primary Practices
Balanced Team Whole Team (Balanced Team)
Shared Schedule, Be Present Sit Together
Managing a Backlog Informative Workspace
Shared Schedule Energized Work (40-hr week)
(Remove Knowledge Silos) Continuous Pair Programming Pair Programming
(Remove Knowledge Silos) Overlapping Pair Rotations
(Remove Knowledge Silos) Knowledge Pollination
Managing a Backlog Stories
Story Showcase Meetings Weekly Cycle (Iteration Planning Meetings)
Quarterly Cycle (Planning Game, Small Releases)
not needed when there is no commitment to each week Slack
Ten-minute Build
Live on Master Continuous Integration
(Caretaking the Code) TDD / BDD Test-First Programming
(Caretaking the Code) Continuous Refactoring Incremental Design (Simple Design Refactoring)
Retro N/A
2.0 Corollary Practices
User Research, User Interviews, User Validation Real Customer Involvement (On-site customer)
This is a specific tactic for replacing legacy systems Incremental Deployment
???? Team Continuity
Shrinking Teams
???? We rarely do this, it depends on situation. Root-cause analysis
Team Code Ownership Shared Code (Collective ownership)
Caring about Code Quality Code and Tests
Short-lived branches Single Code Base (branches live a few hours at most)
Frequent Releases Each team releases when features are done or at a given cadence Daily Deployment
Flexible Scope Contracts Negotiated Scope Contract
Pay-per-use
Avoid Technical Debt ??