I've come across the phrase 'sustaining software engineering' but don't know exactly what it means. There seems to be some DoD connection? Is it related to Agile Development?
Sustainable Software Engineering: Consideration of the social and environmental effects of software projects in managing the project. Managing a software project in order to maximize the positive and minimize the negative social and environmental effects of the project.
Alternative (Sustaining): Consideration of the long-term support requirements during the design and development of a software project. The process of conducting the long-term support required when development is complete.
I believe "sustaining" is another word for "maintenance": it's what happens after software is released, i.e. support, bug fixing, enhancements ...
It's about customer support and customer service. It's used in military (Sustainment Brigade). Here is a definition.
It's definitively not related to Agile Software Development.
Sustaining Software Engineering, at least in the cases where I've come across it, is the department responsible for implementing hot-fixes for released products, and handling customer service issues that the tech-support guys can't resolve on their own.