ICL Programming Procedures. A professional approach to the planning and control of programming