standards for working with software development contractors, which stated that "the contractor shall implement a software development cycle that includes the following six phases: Software Requirement Analysis, Preliminary Design, Detailed Design, Coding and Unit Testing, Integration, and Testing". Model In Royce's original waterfall model, the following phases are followed in order: System and software requirements: captured in a product requirements document Analysis: resulting in models, schema, and business rules Design: resulting in the software architecture Coding: the development, proving, and integration of software Testing: the systematic discovery and debugging of defects Operations: the installation, migration, support, and maintenance of complete systems Thus the waterfall model maintains that one should move to a phase only when its preceding phase is reviewed and verified. Various modified waterfall models (including Royce's final model), however, can include slight or major variations on this process. These variations included returning to the previous cycle after flaws were found downstream, or returning all the way to the design phase if downstream phases deemed insufficient. Supporting arguments Time spent early in the software production cycle can reduce costs at later stages. For example, a problem found in the early stages (such as requirements specification) is cheaper to fix than the same bug found later on in the process (by a factor of 50 to 200). In common practice, waterfall methodologies result in a project schedule with 20–40% of the time invested for the first two phases, 30–40% of the time to coding, and the rest dedicated to testing and implementation. The actual project organization needs to be highly structured. Most medium and large projects will include a detailed set of procedures and controls, which regulate every process on the project. A further argument for the waterfall model is that it places emphasis on documentation (such as requirements documents and design documents) as well as source code. In less thoroughly designed and documented methodologies, knowledge is lost if team members leave before the project is completed, and it may be difficult for a project to recover from the loss. If a fully working design document is present (as is the intent of Big Design Up Front and the waterfall model), new team members or even entirely new teams should be able to familiarise themselves by reading the documents. The waterfall model provides a structured approach; the model itself progresses linearly through discrete, easily understandable and explainable phases and thus