1. A method for determining a set of programming conditions for a given type of a non-volatile memory device comprising a charge-trapping layer of multiple discrete charge storage sites isolated from each other in which charge is to be stored according to a desired spatial charge distribution, the device further comprising a channel region which extends underneath the charge-trapping layer in a bulk between two junction regions and a gate region which extends above the charge-trapping layer, the method comprising: a) selecting different sets of programming parameters to be applied to the junction regions, the bulk and the gate region of a corresponding number of non-volatile memory devices of said type, b) programming said number of non-volatile memory devices by means of the sets of programming parameters, c) determining an actual spatial charge distribution of the charge trapping layer of each of the devices programmed in step b), d) determining the influence of at least one of the programming parameters on the spatial charge distribution by comparison of the actual spatial charge distributions determined in step c) while taking into account the programming parameters selected in step a), e) determining an optimised value for at least one of the programming parameters in view of the desired spatial charge distribution, based on its influence determined in step d), and f) entering each optimised value determined in step e) in said sets of programming parameters and repeating steps b) to e) at least once.