What is the system development process? Explain types such as flow and waterfall models

What is the system development process? Explain types such as flow and waterfall models

table of contents

"I'm considering system development and would like to know the basic process."
“I want to know the tips for successful system development.”

Many people who are considering system development may have the same concerns as mentioned above. First, I would like to introduce the general flow of system development as follows.

  1. Requirement definition
  2. design
  3. programming
  4. test
  5. Operation/maintenance

All are important parts of system development. By understanding the role of each part and what each part should do, you will be able to increase the probability of success in system development.

In this article, we will explain in detail the basic flow, methods, and tips for success in system development. At the end, we will also answer some frequently asked questions about system development, so please refer to it if you want to check the basics.

What is the system development process? Explaining the flow

Here, we will explain the flow of system development from the following two aspects.

  • Basic flow of system development (flow schedule)
  • Specific details of each process

Basic flow of system development (flow schedule)

The basic flow of system development is divided into five stages as follows:

  1. Requirement definition
  2. design
  3. programming
  4. test
  5. Operation/maintenance

By following a set process, you can expect to be able to proceed with the work in a planned manner and prevent omissions. Each process is further divided into smaller parts. For example, there are two types of design: internal design and external design, and three types of testing: unit, combination, and system. It is important to understand the roles of each and proceed with development work appropriately.

Also, even though it is called system development, there are only a handful of people involved in all stages of the process. Programming and testing, in particular, are often handled by specialists in each field.

Please refer to the article below for details on the system development schedule.
What is the system development schedule? Explaining how to create WBS etc. and tips for managing it well

Specific details of each process

Let's take a look at the specific details of each process.

ProcessMain Contents

1. Requirement definition

Understanding user needs, etc.

Settings such as functions that the system should satisfy

2. design

External design: Design user interface, screen transition, etc.

Internal design: Design algorithms, databases, etc.

3. programming

Create a program to run the system based on the design document

Four. test

Unit test: Check if each module works according to specifications

Integration test: Check if each module works correctly when linked together

System test: Check the performance of the completed system

Five. Operation/maintenance

Regularly check that the system is working properly

How to deal with problems, etc.

Requirements definition is the stage in which the client defines the functionality they want from the system.We will clarify the necessary functions based on the needs identified through interviews with the field. The following steps proceed based on what was decided in this requirements definition, so it can be said to be the most important point. Depending on the development method you choose, strict definitions are required.

Next, we create the "external design" that incorporates the client's requests, and the "internal design" that is necessary to actually operate the system. Simply put, the external design refers to the system's hardware, while the internal design refers to the system itself. The internal design also becomes the specification for subsequent programming, so it is set in detail at this stage.

Programming is the stage of creating the programs that actually operate the system. In the field of system development, it is sometimes called "coding." Programs are created using a variety of computer languages, and even a single character difference can cause the system to malfunction, so accuracy is required.

Once programming is complete, we test the system to make sure it works properly. Examples of each test are as follows:

test nameConcrete example

unit test

Check the function

Check login function

Check database

Combined test

Verify that the entire login process works correctly

Verify that order processing is working properly

Check if the frontend UI and backend API can exchange data

system test

Check if the entire app meets user requirements

Make sure it works properly on different devices and browsers

Check performance and stability under normal use

These tests play an important role in ensuring the quality and reliability of the system. Quality can be improved by understanding the purpose of each test and implementing appropriate testing methods.

If there are no problems with the test, we will begin release and operation. However, system problems are common, and regular monitoring is necessary for early detection and early response. In some cases, you may be forced to troubleshoot. Data obtained through monitoring and response is generally shared with the development team and used to improve the system.

The above is the general process for system development. Next, we will explain the system development method.

Types of system development including waterfall

The following models are available for system development:

  • Waterfall System Development Model
  • Agile system development model
  • Spiral Model System Development Model
  • V-shaped system development model
  • W-shaped system development model

Please refer to the following articles for details on each method.
What is the system development method? Explaining the advantages and disadvantages of waterfall etc.

Waterfall System Development Model

The waterfall system development model can be said to be a traditional and basic system development method.The steps to develop Waterfall are as follows.

  1. Requirement definition
  2. design
  3. programming
  4. test
  5. Operation/maintenance

In the waterfall system development model, you can see that the basic process is the same as the one described above. The advantages and disadvantages of such a waterfall system development model are as follows.

meritDemerit

Easy to manage progress

It has a long history of use

Difficult to change specifications

Difficult to get feedback

A major advantage is that it is easy to manage progress. The waterfall system development model takes a step-by-step approach, with each phase proceeding in a fixed order. This makes it easier to track project progress.

On the other hand, because specifications and designs are fixed, there is also a tendency for delays in responding to sudden changes or modifications to specifications. Also, since obtaining feedback from clients and users is delayed until later phases, if the project progresses without accurately grasping the requirements, a mismatch of requirements may occur later on.

It can be said that this development model is suitable for projects with clear requirements and few changes.

Agile system development model

The agile system development model is a development model that emphasizes flexibility and efficiency.The development steps in the agile system development model are as follows.

Function AFunction BFunction CFunction D

1. Requirement definition

1. Requirement definition

1. Requirement definition

1. Requirement definition

2. design

2. design

2. design

2. design

3. development

3. development

3. development

3. development

Four. test

Four. test

Four. test

Four. test

Five. release

Five. release

Five. release

Five. release

*In the agile system development model, it is common to develop each function simultaneously.

Unlike waterfall, the agile system development model is a development model in which small units of functionality (sprints) are repeatedly developed and released. After release, we return to requirements definition and perform design, development, testing, and release again. It is characterized by repeatedly developing and releasing the required functions one by one in a short period of time.

The advantages and disadvantages of such an agile system development model are as follows.

meritDemerit

merit

Demerit

highly flexible

Easier to increase customer satisfaction

The direction of development tends to deviate

Difficult to manage budget and resources Risk of increased costs

By frequently repeating "design, develop, test, and release," new requirements and changes can be easily incorporated as the project progresses. In doing so, we incorporate the customer's needs, so in the end we will be able to create a system that is more efficient and has the desired functionality.

On the other hand, while this flexibility allows for flexible responses, it also has the disadvantage that the direction of development is easily affected. Because needs are incorporated on an ongoing basis, project requirements and priorities are likely to change frequently. This can lead to deviations from the original purpose and vision.

Another disadvantage is that it is difficult to check the overall budget and resources because each function is developed separately. For example, if the specifications of a certain feature are updated rapidly without your knowledge, the costs will increase. If multiple such cases occur, the scope, duration, and cost of the project may deviate significantly from the original plan.

This method is suitable for projects where requirements are uncertain or change easily.

Spiral Model System Development Model

The spiral model system development model is a development method that emphasizes risk management and quality improvement.The specific steps are as follows.

1. spiral 1

Requirement definition

design

Prototype development

test

Get feedback from the client

2. spiral 2

Requirement definition

design

Prototype development

test

Get feedback from the client

3. Spiral 3

Requirement definition

design

Prototype development

test

Get feedback from the client

Four. release

Let users see the final product

The progression process of the spiral model is characterized by multiple repeated phases. At the end of each spiral, a portion or prototype of the system is completed and improved based on feedback.

The advantages and disadvantages of such a spiral model system development model are as follows.

meritDemerit

Easier risk management

Easy to incorporate customer opinions

Development costs tend to be high

Highly difficult to manage

The spiral model system development model identifies potential risks in the system by actually operating and verifying the prototype. It will be possible to detect and deal with risks early. Another benefit is the ability to continuously incorporate customer feedback during the development process. You can expect high quality system development that will satisfy your customers.

However, the prototype created at each iteration of the spiral model system development model is used only to utilize client/user feedback in the next process and reduce system risks. Please note that this method is intended to more accurately reflect system requirements during development.

On the other hand, one disadvantage to keep in mind is that development costs can easily become high. Repeating risk analysis and other processes will increase quality but will also inevitably increase costs. Also, because each spiral involves many steps such as risk analysis, creating prototypes, and incorporating feedback, it will be difficult to keep scheduling these accurately. Compared to waterfall, which makes it easier to manage progress, it can be said to be more difficult to manage.

Based on the above, the spiral model system development model can be said to be a suitable method for high-risk projects and projects based on customer opinions.

V-shaped system development model

The V-system development model is a method that closely links development and verification.The corresponding development and testing processes are as follows:

Upstream processdownstream process

1. Requirement definition

7. System testing

2. basic design

6. Combined test

3. Detailed design

Five. unit test

4. Development

The V-shaped system development model uses unit tests and integration tests to check and verify whether the contents of each design are implemented correctly. Then, we conduct a final system test to confirm that the requirements definition has been implemented correctly.

The advantages and disadvantages of utilizing the V-system development model are as follows:

meritDemerit

merit

Demerit

Easier to clarify test phases

Easy to enhance quality

less flexible

Difficult to receive user feedback

In the V-system development model, tests that correspond to each development phase are clearly defined. This allows you to efficiently and thoroughly verify that each component of your system meets your requirements. A clear development process also helps project teams focus on quality. Having clear quality standards at each stage will help you plan and implement your quality assurance activities more efficiently.

On the other hand, in the V-system development model, it is difficult to go back and make changes to a completed phase. This makes it difficult to change requirements while the project is in progress. Additionally, since it is not possible to see or touch the actual operation of the product until the final stages of development, it is difficult to proactively incorporate user feedback. As a result, the final product may not meet user expectations.

The V-system development model is suitable for projects where requirements are clear and stable, and where quality assurance is emphasized.

Please refer to the article below for details on the V-shaped system development model.
What is the V-shaped model for system development? Explaining the process, benefits, and differences from the W-shaped model

W-shaped system development model

The W-shaped system development model refers to a system development management model in which the development process and testing process are carried out at the same time.The corresponding development and testing processes are as follows:

Upstream process

downstream process

1.

Requirement definition

2.

Feedback from personnel

system test design

12.

system test

13.

correction

3.

basic design

Four.

Feedback from personnel

Integration test design

Ten.

Combined test

11.

correction

Five.

Detailed design

6.

Feedback from personnel

unit test design

8.

unit test

9.

correction

7.

development

The basic flow is the same as the V-shaped system development model. The difference is that feedback from the person in charge and system design are performed in the upstream process.

The advantages and disadvantages of such a W-shaped system development model are as follows:

meritDemerit

merit

Demerit

It is easy to find hard-to-notice bugs early on

Easy to improve quality

Difficult to manage parallel work

Difficult to respond to changes

In the W-shaped model, tests are checked by testers from the upstream stage. Therefore, a big advantage is that you can quickly discover problems and mistakes that you can notice from the perspective of the field. Also, like the V-shaped model, we place emphasis on testing at each stage of development, so we can expect overall quality improvements.

However, the disadvantage of the W-shaped model is that it is difficult to manage because it requires parallel work. Additionally, because testing and each design are tightly coupled, it can be difficult to incorporate changes in requirements if they change during the development process.

The W-system development model places a high emphasis on quality, and is suitable for projects where you want to find bugs and errors at a relatively early stage.

Explaining tips for successful system development

The following four points are considered important for successful system development.

  • Clarify the purpose of system development
  • Choose the best development method for your company
  • Frequent communication between stakeholders
  • Specifications are finalized as early as possible in the process

Clarify the purpose of system development

For the success of system development, it is important to clarify the development purpose.This is because if the development purpose is clear, it becomes easier to define specific requirements.

Even if you say, ``I just want a system that improves productivity,'' if the purpose remains vague, system developers will remain unclear about what they should develop. And with only ambiguous information, system developers will have no choice but to proceed with development by groping their way through the process. As a result, you may end up with a system that is different from what you expected. If this happens, not only will the system become unusable, but the development costs and time will be wasted.

Therefore, it is necessary to present a specific purpose, such as ``I want to automatically transfer the contents of invoices sent by email to accounting software, I want to automatically transfer the cost and product name of materials ordered by the site to accounting.'' is.

To clarify the purpose, it is important to verbalize what you want to improve or enhance in the target business. If you cannot clarify the purpose by yourself, it is a good idea to interview the people on-site and clarify their needs.

Choose the best development method for your company

Choosing the most suitable development method for your company is also a key to successful system development.This is because choosing an inappropriate method may increase costs and result in unsatisfactory results.

For example, if you are thinking, ``I want to decide on strict requirement definitions and functions while watching the situation,'' you will find that Agile is suitable because it is relatively easy to change specifications and add functions during the process. Inflexible waterfalls should be avoided. By choosing the most suitable development method for your company, you can increase the probability of success in system development.

If you are unable to make a decision on your own, one option is to request a consultation.

Frequent communication between stakeholders

It can also be said that frequent communication between the parties involved is important.This is because system development is a team project, not an individual project.

Everyone should work as professionals. If a project progresses with this kind of thinking, it will be difficult to communicate within the team. As a result, you may end up with a system full of defects.

To avoid such situations, we recommend that you create an environment where you can mutually confirm any doubts or incomprehensible points, such as holding regular meetings and using chat.

Specifications are finalized as early as possible in the process

It is also important to finalize specifications as early as possible in the upstream process.Depending on the methodology used, late-stage changes can often be costly in terms of both cost and time.

For example, suppose you are developing an online shopping system and the requirements for the cart functionality change during the process. This change may also impact other features that have already been developed. Specifically, you will need to change the product details screen, order confirmation screen, payment screen, related programs, etc.

In short, one change is likely to lead to many other changes. This is likely to increase as the timing of the change is in the downstream process. This is because the further downstream you go, the more features are already implemented. It is clear that the more changes there are, the higher the cost and response time will be. This situation is not desirable. We recommend finalizing specifications as early as possible in the upstream process.

In order to finalize specifications at an early stage, it is best to strictly define requirements. Conduct workshops, etc., and define requirements based on feedback.

Explaining frequently asked questions about system development

Here we will explain frequently asked questions regarding system development.

  • What is the difference between system development and system construction?
  • How much does it cost to develop the system?
  • Please tell me the terms frequently used in system development.

What is the difference between system development and system construction?

Although system development and system construction are sometimes used interchangeably, they have different meanings.

The purpose of system development is to materialize ideas for new systems and software and make them implementable. Basically, you can think of "development" as creating something new from scratch. Examples include the development of new systems and tools for your own company.

On the other hand, system construction refers to the process of deploying and operating a developed system in an actual operational environment. In other words, it's like building a system by combining existing things. Examples include hardware installation, software installation, network configuration, etc.

How much does it cost to develop the system?

The cost of system development varies greatly depending on the system being developed.In some cases, the scale may vary. The cost will vary depending on whether or not the system is linked and whether it is created from scratch.

One way to reduce the cost of system development is to get competitive bids from multiple vendors. By carefully selecting your business partners, you can also reduce costs. Depending on the system you want to develop, it may be better to introduce an existing system and develop only the missing parts rather than developing it from scratch.

Please refer to the article below for details on system development costs.
What is the average system development cost? Explaining how to reduce costs, success points, subsidies, etc.

Please tell me the terms frequently used in system development.

Terms that are frequently used in system development include open systems, general-purpose systems, and web systems.

An open system is a system that runs on a variety of hardware and operating systems and is built based on standardized technology and open standards. It is characterized by high compatibility and extensibility.

A general-purpose system is a system that is suitable for building large-scale or high-performance systems. Additionally, general-purpose systems are characterized by high stability and reliability.

Finally, web systems are systems that are used via a web browser. Web-based systems can be used from any location or device as long as there is an Internet connection.

Please refer to the articles below for details on each system.
There are mainly three types of system development methods: open system, web system, and general-purpose system! Features also explained

Other terms may also be used, such as:

Example termsFormal namemeaning

Example terms

Formal name

meaning

SP

System Planning

plan

S.A.

Requirements Analysis

requirements analysis

RD

Requirements Definition

Requirement definition

UI

User Interface

Something that connects the user and the tool

B.D.

Basic Design

basic design

SS

System Structure Design

structural design

FD

Function Design

Functional design

DD

Detail Design

Process of detailed design

P.S.

Program Structure Design

Detailed design

M

Manufacturing

manufacturing

CD

Coding

coding

UT

Unit Testing

unit test

IT

Integration Testing

Combined test

O.T.

Operational Testing

Operational test

In systems development, technical terms that you don't normally hear are used. Using the terms in the table above as a starting point, you can learn them little by little.

summary

This time, we have explained the basic flow, development methods, and key points for success regarding system development. Even though it is simply called system development, you may have learned that it is created through various processes.

There are several points to keep in mind in order to proceed with system development smoothly, such as clarifying the purpose of system development and selecting an appropriate development method.These methods are effective not only when developing a system in-house, but also when outsourcing system development to other companies. Please try.

If you would like to develop a system but do not have the resources within your company, please feel free to contact us.

Achievements left behind

48 years since its establishment.
We have a proven track record because we have focused on what is important.
It has a long track record in both the public and private sectors.

Number of projects per year

500 PJ

Annual number of business partners/customers

200 companies

Maximum number of trading years

47 years

Total number of qualified persons

1,870 people