Don't hog development time on details that are important only to you. Don't waste money on features that won't end up providing value to your users. Don't insist on a programming aesthetic that burdens your teammates without providing benefits that matter to them. Beyond being considerate with time and money, you also need a light hand with less-tangible resources such as performance, features, environment capabilities, and even understandability. Hogging more than your fair share of any of these can leave those users downstream from you in a resource bind.
Performance is a good example.
Total available performance remains constant for any computing platform. A component that delivers more features than the consumer can use causes an unjustifiable performance hit. Burnishing your particular piece so beautifully that it puts a drag on system performance is not only wasteful, it's rude. Developers should also try to be circumspect about architectural features such as memory, threads, processes, and sockets. These are finite resources, and a greedy component can use them up, leaving little or nothing for downstream developers.