It is a methodology for systematically organizing the best ways to develop systems efficiently. It includes, for example, descriptions of work to be performed at each stage of the development process and drafted documents. Multiple methodologies—which differ according to viewpoint—are available. In terms of the development process, some example methodologies are "water-fall development," "spiral development," and "agile-software development." And in terms of the design approach, some example methodologies are the process-oriented approach (POA), the data-oriented approach (DOA), the object-oriented approach (OOA), and the service-oriented approach (SOA).