Multiple programming processes are performed for a plurality of
non-volatile storage elements. Each of the programming process operates
to program at least a subset of said non-volatile storage elements to a
set of target conditions using program pulses. In one embodiment, a first
programming pass includes soft programming and additional programming
passes include the programming of data. In another embodiment, all of the
programming process include programming data. For at least a subset of
said programming processes, a program pulse associated with achieving a
particular result for a respective programming process is identified. The
identified program pulse is used to adjust programming for a subsequent
programming process.