liveBook · Manning

Sustainable application

As explained in Software Design for Python Programmers

A sustainable application is software designed to remain reliable, flexible, and maintainable over a long life.

A sustainable application remains reliable, flexible, and maintainable throughout a long lifespan of deployment, use, bug fixes, feature additions, and changing requirements. section 1.0 section 1.3

Good design makes sustainability practical by ensuring that software:

  • Meets requirements and behaves as users expect. section 1.3
  • Passes tests, has fewer bugs, and avoids hidden runtime performance problems. section 1.3
  • Adapts systematically as features and requirements change. section 1.3

From patch tangle to sustainable release

A quick hack may suit a one-time task, but repeated patches for bugs and features can become an unmanageable tangle. Better design supports testing, reaches minimum viable product sooner, and accommodates later changes. section 1.3

Sustainability emerges through requirements analysis, design principles, design patterns, testing, and repeated development iterations; backtracking may be necessary to recover from poor decisions. section 1.0

How Software Design for Python Programmers covers it

How deep it goes
Defines lifecycle qualities and iterative design practices, while deferring implementation to object-oriented principles and patterns.
Examples
Uses quick hacks, patch tangles, bug fixes, feature releases, and minimum viable products as contrasting development outcomes.
What it assumes
Assumes beginning-to-intermediate Python, basic data structures and algorithms, object-oriented programming, and basic program development skills.
What you can do after
Apply design principles and patterns to analyze requirements, iterate toward tested software, and accommodate future changes.
How it connects
Connects requirements analysis, object-oriented design, design principles, design patterns, testing, reliability, flexibility, and maintainability.

Also explained in

Compare how 2 books explain sustainable application →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Software Design for Python Programmers. The section links point to the parts of the book it draws on.