User:Toddsedano/sandbox

Sustainable Software Development (or Sustainable Development) is an agile method that reconciles practices from User-centered_design][User-Centered Design to determine what to build with practices from an evolved form of Extreme Programming and Kanban to determine how to build the software.

Sustainable Software Development is a kind of continuous software engineering in that it follows Dual-Track Agile where Track One led by a product designer identifies and validates product features, Track Two led by engineers implement features, and Boundary Spanning led by a product manager determines the sequencing of what to build. "Tracks are not phases. The team does not iterate between them. The whole team is involved in both tracks."

Track One has two sets of activities, Sensemaking and Context-Solution Coevolution. Sensemaking is where the team tries to understand its context by following these and other practices: Stakeholder Mapping, Interviewing, Persona Modeling, Affinity Mapping. Context-Solution Coevolution is where the team alters its understanding of the problem, the tentative problem frame, which causes an update to its understanding of the solution, the fledging solution by following these and other practices: Design Studio, '' Sketching / Mockups, Usability Testing, Writing User Stories''

Track Two is about coding where the team implements a software solution by following these practices: Continuous Pair Programming, Overlapping Pair Rotation, Knowledge Pollination, Test Driven Development / Behavior Driven Development, Continuous Refactoring, Integrate Frequently

Boundary Spanning is managing the Product Backlog and determining which parts of features to build when by following these practices: Story Showcase, Backlog Grooming, Accepting Stories.

Sustainable Software Development explains how software teams apply design thinking in complex systems.