Sustainable development is a mindset (principles) and an accompanying set of practices that enable a team to achieve and maintain an optimal development pace indefinitely. Note that optimal doesn't mean fastest that would be pure coding, such as for a prototype.
Sustainable development is about efficiency and balancing the needs of the short and long term. It means doing just the right amount of work to meet the needs of customers in the short term while using practices that support the needs of the long term. There are not enough software projects today where over time a team can stay the same size (or even shrink) and still deal with the increasing complexity of its software and its ecosystem and increasing customer demands. In sustainable development, the needs of the short term are met by regularly producing software that has the highest possible value to customers. This is done while keeping the cost of change as low as possible, which lays the foundation for future changes and makes it possible to quickly respond to changes in the ecosystem.
Sustainable development, as depicted in Figure 1-1, is a liberating experience for the lucky teams who can achieve it. While they have to deal with stress in the form of constant change, they have the advantage that they are in control of the situation and can out ship their competitors because they are able to respond more rapidly and at a much lower cost. They are also able to be proactive about new technologies or new opportunities in any form.
Figure 1-1. In sustainable development, the cost of change stays low over time. The team is able to respond to changing requirements and changes to the software's ecosystem. This is a pace that the team can maintain indefinitely. Key indicators of sustainable development are an ability to keep the number of defects relatively constant over time while recognizing that the software must be modified to keep the cost of change under control.