What is software development? An easy-to-understand explanation of the ten flows of software development
Here, we will explain the flow of software development and its occupations. Software development refers to a series of processes for producing game software and business systems for companies. Also, the type of job in charge of each method will be different. For example, sales, system engineers, and programmers. What kind of business is there in software development? I want to explain them.
What is software development?
Software development is a series of processes that consider the needs of users and customers and marketing analysis and then incorporate it into a software product. The software development flow will be described later, but it starts with sales, delivery, and then maintenance. Products made by software development can be classified into the following three categories.
- System software
- Application software
- Embedded system
System software refers to the software needed to run a computer. Typical examples include operating systems ( OS) such as Windows and Linux and file and data storage processes. Application software refers to software that has functions according to the user's purpose of use. Typical examples are game software, word processors such as Microsoft Word used in general office work, and spreadsheet software such as Excel. Embedded systems refer to software embedded in home appliances and machines.
Software development flow
Software development begins with sales. The main business contents are how to improve the efficiency of the current business and new business of new customers and customers of continuous transactions, and whether it is possible by improving the system currently in operation, the introduction of a new system We will consider whether it is necessary. Here, we hypothesize the issues that our customers are suffering from.
2-2. Hearing with customers
After-sales, we will conduct interviews with customers. In customer hearings, based on the information collected in the previous stage, we will ask about what the customer is having trouble with and what they need. This hearing is crucial and will affect subsequent development work. Here, it is essential how deeply the customer's issues can be dug. In addition, we will conduct hearings on the budget, the start time of operation, and the systemization status of other companies in the same industry and incorporate them into specific plans.
2-3. System planning/proposal
In system planning and proposals, we will sort out the matters heard in customer interviews and consider how to solve them. We will consider what kind of system to develop, how much it will cost to develop, and how much it will be possible. In this project proposal, it is common to repeat it multiple times, not just once. Once the project is completed, we will propose it at this moment, collaborating with customers. It is possible to prevent mutual recognition mistakes, estimation mistakes, and differences in the content of software products to be developed. In addition, you can build relationships of trust with your customers.
In software development, it is essential to be able to listen to customer requests and incorporate them into concrete projects. Therefore, it is necessary to revise the planning proposal until the customer is satisfied with the planning proposal.
After the project proposal, it will be a contract. In the contract, we will provide detailed estimates (development cost, development period, delivery date, etc.) according to the plan. If the customer's approval can be obtained here, it will be a contract/order.
Depending on the customer, we may be compared with other companies in the same industry, so to lead to contract orders, we can see close communication with customers, superior functions, and cost-effectiveness compared to other companies. It is essential to present benefits, such as low development costs.
2-5. Requirement definition
Once you have a contract with a customer and have received an order, the next thing you need to do is define your requirements. Requirement definition is an essential task for software development and refers to clarifying the functions to be implemented.
This requirement definition impacts the subsequent design, development, and testing processes. Therefore, it can be said that the requirement definition determines the success or failure of the project.
In the requirements definition, we will put the considerations into a document called the "requirements definition document." Things to consider
- Current business flow system design document
- Customer-development relationships
We will sort out technical problems and issues by understanding the current situation. In addition to that, we will clarify the points. By checking the recent business flow system design document, you can grasp the current status of the existing system. to be improved by hearing the maintenance staff of the client company, the employees of the IT department, and the related parties. Necessary for each other.
Solutions should also be considered in the requirements definition. Here, we will consider how to incorporate the needs and desires of customers into the software. When considering a solution, you need to think about how you can achieve your customer's needs and incorporate them into your design. Therefore, it is essential to communicate with customers and internal sales and user departments even when defining requirements.
In the design, we will consider the overall picture and specifications in software development based on the requirement definition document created in the previous stage. Here, it is necessary to consider items related to future development/testing, maintenance/maintenance after delivery, such as input/output (screen, database, etc.), processing method, test method, operation method, etc.
In addition, there are mainly external design (basic design) and internal design (detailed design) as design methods. Exterior design, also known as basic design, determines how software or a system works when viewed from the outside.
In this process, you need to create a basic design document. That your customers can understand. In the internal design, the internal structure of the system or software, that is, the design invisible to the customer, is determined based on the basic design document determined by the external design. Here, the system functions, database design, and For these items, the specific development process is incorporated into the specifications, not the design document.
The program is written based on the design document and specifications in development. Much software development uses languages such as Java and C.
The test verifies whether the system or software works according to the design and specifications. A program-only test is called a unit test, an integration test when multiple programs are combined, and a system test when the whole program is combined. If it does, In that case, debug again and remove the bug. By repeating this several times, you will be able to run the program normally when it comes to large-scale.
In system and software development, the source code to be verified is enormous, and it takes a lot of time to debug. If you clear this, you will proceed to the operation test step. Operational testing verifies whether the system works appropriately based on the data handled by the customer.
2-9. Delivery of materials
After passing the operation test, the system and software will be delivered to the customer. We will start operating the system and delivery system design documents, programs, and operation manuals in delivery.
After delivery, we will respond to system failures, maintenance, and system function additions. The procedure for adding system functions is the same as this software development.