An argument that programming should be regarded as a branch of engineering, combining scientific foundations with practical discipline and professional responsibility for reliability.