May 13, 2025 • Knowledge, System Development • by Reina Ohno (Translated by Dennis T.)

System Development Methods and Characteristics – Waterfall Development, Agile Development, Prototyping Development

In system development, there are various methods depending on the characteristics and objectives of the project. In the article below, we will explain in detail the characteristics of representative development methods: Waterfall System Development, Agile System Development, and Prototyping System Development.

 

 

What is Waterfall System Development?

What is Waterfall System Development? - Timedoor

Waterfall development is one of the traditional methods in system development and is characterized by progressing step-by-step from upstream processes to downstream processes. The name “Waterfall” comes from the way the process flows in one direction like a waterfall.

Main Process

The Waterfall System development consists of the following step-by-step stages:

  1. Requirements Definition: Clearly defines the functions, performance, and constraints that the system must fulfill.
  2. External Design: Designs the user interface and overall system structure.
  3. Internal Design: Designs the detailed operations and data structures of each component.
  4. Implementation: Programs are coded based on the design.
  5. Testing: Performs unit testing, integration testing, and system testing to confirm quality.
  6. Operation & Maintenance: After system implementation, operations for stable functioning and maintenance as needed are performed.

Each stage proceeds linearly, and once completed, revisiting earlier steps is rare.

Advantages

  • Easy planning and progress management: The entire schedule, budget, and staffing are clearly defined, making it easy to manage.
  • Assured quality: Through reviews and testing at each stage, the final product’s quality can be improved.
  • Comprehensive documentation: Detailed design documents and specifications make it easier for project handover and maintenance.

Disadvantages

  • Lack of flexibility: It is difficult to make specification changes or add new requirements during development, and doing so may require significant rework.
  • Delayed customer feedback integration: Users cannot check the system until all stages are completed, increasing the risk of results that differ from expectations.
  • Long time to release: Since all stages are carried out in sequence, it takes time to reach the final release.

 

Cautions in Waterfall Development

While Waterfall development is a structured methodology in which each phase progresses sequentially. It offers the advantage of clearly defined schedules, budgets, and staffing. However, when applying this approach in offshore development, the following points require attention:

  • Communication challenges:

In offshore development, differences in time zones and language can hinder smooth communication. Because the Waterfall model defines each phase clearly, detailed and accurate information sharing during the early stages (such as requirement definition and design) is essential. Neglecting this may make it difficult to revise later, potentially leading to high costs and extra labor.

  • Handling specification changes:

The Waterfall model progresses on the assumption that there will be no going back. As a result, if specification changes occur during development, adapting to them is difficult and may lead to overall project delays and additional costs.

This method is suitable for large-scale projects with clear and stable requirements, or where high product quality is essential. However, due to the recent changes in business environments and the increasing diversity of user needs, more flexible methods like Agile development are gaining attention.

Other Articles: eFishery Startup Fraud: Why Financial Transparency Builds (or Breaks) Public Trust in Business

What is Agile System Development?

What is Agile System Development? - Timedoor

Agile development is one of the methods in software and system development, characterized by flexible and rapid development through repeating short cycles (iterations). The term “Agile” means “quick” and “nimble,” and as the name suggests, it is a development method that easily adapts to changes.

Background of Agile Development

In 2001, 17 engineers and programmers gathered to present the “Agile Software Development Manifesto” as a new value system for software development. The manifesto emphasizes the following four values:

  • Individuals and interactions: Emphasizing human communication over processes and tools.
  • Working software: Prioritizing functional software over comprehensive documentation.
  • Customer collaboration: Emphasizing cooperation with the customer over contract negotiations.
  • Responding to change: Valuing flexibility in response to change over following a plan.

Main Methods of Agile Development

There are various methods in Agile development, but the two main ones are as follows:

  • Scrum: A method where the entire team repeats short development cycles called sprints and releases deliverables regularly. It is characterized by clear roles such as product owner, scrum master, and development team.
  • Extreme Programming (XP): A method that emphasizes practices like test-driven development and pair programming to quickly respond to customer demands. It focuses on balancing code quality with development speed.

Advantages of Agile Development

  • Flexibility: Quickly responds to changes in specifications or additional requirements during development.
  • Early Releases: Prioritizing the development and release of high-priority features helps shorten time-to-market.
  • Improved Quality: By repeating testing and feedback in short cycles, product quality can be improved.
  • Increased Customer Satisfaction: Regular releases and feedback ensure products reflect customer needs.

Disadvantages of Agile Development

  • Difficulty in Schedule Management: High flexibility can make it difficult to grasp the overall schedule and progress.
  • Lack of Documentation: Emphasizing working software can lead to a shortage of documentation, which may impact future maintenance or handovers.
  • Dependence on Team Skill Levels: Agile development requires self-organized teams, making it highly dependent on the skills and experience of team members.

Projects Suitable for Agile Development

  • Projects in rapidly changing markets: Development in areas with frequently changing trends or user needs.
  • Projects with many uncertainties: Projects where requirements are unclear or likely to change significantly during development.
  • Projects requiring early releases: Projects that need to bring products to market faster than competitors.

 

Points to Note in Agile Development

This method is a flexible approach that advances development through short iterations, and it is suitable for projects with frequent changes or unclear requirements. Below are the key points to keep in mind when adopting Agile development for offshore development.

  • Effective Communication:

Agile development requires close communication within the team. In offshore development, it is necessary to leverage online meeting tools and chat tools to overcome physical distance and cultural differences, and strengthen both synchronous and asynchronous communication.

  • Use of Bridge SEs:

The presence of a bridge system engineer (Bridge SE) is crucial in adjusting language and cultural differences to support the smooth progress of the project. They act as intermediaries between the client and the developer, helping prevent miscommunication and supporting the project.

  • Clarification of Development Rules:

In Agile development, it is important to have common coding standards, source management, bug tracking, and design patterns. Since face-to-face communication is reduced in offshore development teams, it is important to clearly define and adhere to these methods.

  • Contract Structure:

When conducting Agile development offshore, it is common to adopt a flexible semi-delegated contract (lab contract). This allows for a rapid response to specification changes and additional requirements.

This method is widely adopted by many companies and projects due to its flexibility and speed. However, it is important to choose the appropriate development method based on the project characteristics and team situation.

Other Articles: How Mobile Apps Transformed Business for Pande Putri and OrangeCare Taiwan

What is Prototyping System Development?

What is Prototyping System Development? - Timedoor

Prototyping Development is a software development method where a prototype (an initial version) is created at the early stage of development, and improvements are made based on feedback from users or clients. This approach allows for early sharing of the product’s vision, clarifying requirements, and improving quality.

Types of Prototyping

There are several types of prototyping:

  • Paper Prototyping:

This method uses paper and pen to quickly sketch screen layouts and user flows. It is useful in the early stages for idea generation and concept validation.

  • Wireframes:

This method uses lines and shapes to visualize the elements and layout of a screen. It is often created using digital tools and serves as the foundation for UI/UX design.

  • Digital Prototyping:

This method uses graphic software to create a more detailed and realistic prototype. It helps in verifying user interfaces and design.

  • Code Prototyping:

In this method, actual code is written to create a functioning program. It is suitable for validating functionality and technical aspects.

Prototyping Process

Prototyping development follows this process:

  1. Requirements Definition: Organize the user’s or client’s needs and expectations, and clarify the items that need to be validated in the prototype.
  2. Design: Based on the requirements, the basic design of the prototype is created. At this stage, emphasis is placed on quick prototype creation rather than detailed design.
  3. Prototype Development: The selected method is used to create the prototype. It focuses on implementing the essential functions and design necessary for validation.
  4. Testing & Evaluation: The prototype is tested by users or clients, and feedback is gathered. Usability, functionality, design, and other aspects are evaluated from multiple perspectives.
  5. Improvement: Based on the feedback, the prototype is modified and improved. This process is repeated until the final product is refined.

Advantages and Disadvantages of Prototyping

Advantages:

  • Early Problem Detection: By receiving feedback early, potential problems and areas for improvement can be identified sooner.
  • Improved User Satisfaction: Development progresses with continuous input from users, resulting in a product that better meets their needs.
  • Enhanced Communication: Sharing a concrete prototype helps improve communication between the development team and clients.

Disadvantages:

  • Increased Cost and Time: Creating and evaluating prototypes requires additional resources, which can extend the overall cost and development time.
  • Scope Creep: As feedback is incorporated, the features and specifications may expand beyond the original plan.
  • Variability in Quality: The quality and accuracy of the prototype may lead to misleading feedback.

Considerations for Prototyping Development

Prototyping development focuses on creating and refining a product with continuous user feedback. When applying this method in offshore development, several factors should be considered:

  • Delayed Feedback: Time zone differences and communication constraints in offshore development may delay user feedback, impacting the feedback loop and development timeline.
  • Misunderstanding of Requirements: Cultural and language differences can lead to misinterpretation of user feedback. Clear documentation and visual aids are needed to foster a shared understanding.
  • Managing Costs and Time: Prototyping requires additional resources for prototype creation and evaluation, potentially leading to extended budgets and timelines. Offshore development should focus on effective resource management to prevent overruns.

Comparison with Other Development Methods

  • Waterfall Development: This method follows a sequential process, making it difficult to revisit earlier stages. Prototyping development, on the other hand, allows for flexible requirement revisions through prototype iterations.
  • Agile Development: Agile uses short iterative cycles, and prototyping shares similarities with Agile in that it uses prototypes to gather feedback. However, the use and purpose of prototypes differ.

Prototyping is suitable for projects that prioritize user-centered design and rapid feedback loops. Depending on the project’s size and nature, combining prototyping with other development methods may be necessary.

Other Articles: Why Website Speed is Important? How to Check a Website Speed by Yourself

Summary

Waterfall development is a planned method that progresses through each phase sequentially and is suitable for large-scale projects. However, it has the disadvantage of being difficult to respond to specification changes.

Agile development is a method that proceeds flexibly with short-term iterative work and is suitable for rapidly changing projects. However, progress management can become difficult.

Prototyping development is a method of creating prototypes and improving them based on user feedback, and is suitable for user-centered design. On the other hand, there is a risk of increased costs and time.

It is important to select the optimal development method according to the characteristics and requirements of the project.

Glossary of Terms Used in This Article

  • Requirements Definition:

Functions, performance, and constraints informationthat the system should satisfy.

  • External Design:

Design of the user interface and the overall structure of the system.

  • Internal Design:

Design of the detailed operations and data structures of each component.

  • Implementation:

Coding the program based on the design.

  • Testing:

Conducting unit tests, integration tests, system tests, etc., to confirm quality.

  • Operation and Maintenance:

Operating the system after its introduction and performing maintenance as necessary for stable operation.

  • Iteration:

Short-term iterative work in Agile development.

  • Scrum:

One method of Agile development that repeats development cycles called sprints.

  • Extreme Programming (XP):

One method of Agile development that emphasizes practices such as test-driven development and pair programming.

  • Prototype:

Trial product in prototyping development.

  • Paper Prototyping:

A method of roughly drawing screen layouts and operation flows using paper and pen.

  • Wireframe:

Visualization of screen components and layouts using lines and shapes.

  • Digital Prototyping:

Detailed and realistic prototypes using graphic software.

  • Code Prototyping:

Creating a working program by writing code.

 

 

 

FAQ

Q1. What is the difference between Waterfall development and Agile development?

A1. Waterfall development is a planned method that progresses through each phase sequentially, making it easier to manage with clear schedules, budgets, and personnel assignments. Agile development is a flexible method that proceeds with short-term iterations, suitable for projects with rapid changes or unclear requirements.

Q2. What types of projects are suitable for Prototyping development?

A2. Prototyping development is suitable for projects that emphasize user-centered design and quick feedback loops. It is suitable for cases where user needs and expectations are unclear, or where visual design and user interface confirmation are important.

Q3. What are the advantages and disadvantages of each development method?

A3.

  • Waterfall development advantages include easy planning and progress management, ensuring quality, and comprehensive documentation. Disadvantages include lack of flexibility, delayed reflection of customer feedback, and long release times.
  • Agile development advantages include flexibility, early releases, improved quality, and increased customer satisfaction. Disadvantages include difficulties in schedule management, lack of documentation, and reliance on team skill levels.
  • Prototyping development advantages include early problem detection, increased user satisfaction, and smoother communication.

 

 

For business in Indonesia, choose Timedoor with 10 years of experience
System development, IT education business, Japanese language education and human resource dispatching business, business expansion support services

For inquiries, click here

 

Looking for E-commerce MobileApp for your Retail business? Learn more on APPMU

Testing