This is a true story. They did their jobs, including the job of not creating problems. Many people, including many new developers, cannot resist adding every new whiz-bang graphic, button or bell that can be shoved into a product. One way around this is to get the entire development team to agree not to add extra features. Use peer pressure to clamp down on anyone who insists on adding functionality inconsistent with the development mission.
Some developers make it a practice to express new features in terms of dollars and cents.
Upper management should be briefed frequently on project progress and disruptions, so that everyone understands the consequences of adding unnecessary and unplanned functionality. The Society for Information Management reported recently that alignment of information systems with the enterprise mission is among the most important topics to its members. The people responsible for the business and the people responsible for the information systems which support the business must talk with each other. One way to achieve understanding is by creating models of the intended information system. Even before the first piece of code is written, many of the most successful software developers create a logical data model that they can share with others.