guide to programming methodology 9628211