A software methodology is the
									set of rules and practices used to create computer programs. A heavyweight methodology has many rules, practices,
									and documents. It requires discipline and time to follow correctly. A lightweight methodology has only a few rules
									and practices or ones which are easy to follow.  
									 In the late 1960s and early
									1970s it was common practice for computer programmers to create software any way they could. Many programmers excelled
									at creating software too complex for anyone to understand. At that time it was a miracle if a program ran without
									any bugs. Making computers useful was considered a worthy quest and not unlike an adventure into the old west.
									 
									 In 1968 Edsger Dijkstra wrote
									a letter to CACM entitled GOTO Statement Considered Harmful. The central ideas of software engineering were
									being born. At that time we believed that bigger, more disciplined methodologies would help us create software
									with consistent quality and predictable costs. The lawless cowboy coders were being reined in. | 
								
									   
									 The 1980s were good times for
									computer programmers. We had a few rules and practices to create software that was far superior in quality to what
									we were creating only a few years earlier. It seemed like if we could just create enough rules to cover the problems
									we encounter we could create perfect software and be on time. We added more and more rules and practices to cover
									all the potential problems. 
									 Now in the 21st century we
									find these rules are hard to follow, procedures are complex and not well understood and the amount of documentation
									written in some abstract notation is way out of control. Trying to come up with a bigger and better methodology
									was like a California gold rush; everyone headed west only to be disappointed. 
									Continued
									on Page 2  
								  |