There is a myriad of system development methodologies, techniques, and tools that have been developed ever since businesses started using computers for information processing. However, there is no real consensus on the aptness or applicability of these methods. There are proponents and critics of each method, and different organizations use different methods. This article identifies many of the system development methods in use today. It, then, empirically assesses these methods on a comprehensive set of attributes. It also makes a contingency analysis of the applicability of the methods based on system life cycle stage, system type, and problem structure. These results should serve as a valuable set of inputs in method selection for system development.