1. Observing performance of the first set of non-volatile storage elements during the first programming process; and performing a second programming process for the first set of non-volatile storage elements including dynamically configuring the second programming process based on the observing performance of the first set of non-volatile storage elements during the first programming process, in combination with other limitations.