device programming complexity