What is SMT programming process