For those who are looking for a job in software development, we will take a detailed look at the actual situation of this industry as seen from the process and flow.
table of contents
- 1. What is software development?
- 2. What is the flow of software development?
- 3. What is the process of software development?
- 3-1.Requirements definition
- 3-2.Design
- 3-3.Development
- 3-4.Test
- 3-5.Delivery
- 3-6.Maintenance
- 3-7.Process when developing in-house products
- 4. What are the types of jobs related to software development?
- 4-1.Sales
- 4-2.System engineer
- 4-3.Programmer
- 5. Summary
Software development work involves many flows and processes before producing a product.
By looking at this workflow, it becomes easier to imagine the specific work content of positions such as system engineers and programmers, which are essential for creating software.
Therefore, here, for those who are looking for what kind of job to get involved in software development work, we will check in detail the actual situation of this industry as seen from the process and flow.
What is software development?
Software development is a series of processes that develop programs that run on computers to meet customer needs and release them as products. There are three main types of products created using this method:
・System software
・Application software
・Embedded system
Nowadays, with the spread of smartphones and IoT home appliances, software development is considered to be a job with a much higher future than the days when systems operated only on servers and computers.
What is the flow of software development?
Contracted software development typically begins with sales to customers who are looking to improve the efficiency of their current operations.
In customer interviews, which are the next step after sales, we discuss in detail with customers to find out what their specific problems are and what needs to be done to resolve them.
To develop software with a high level of satisfaction, it is essential to confirm the start date and budget, as well as analyze the systems of other companies in the same industry.
Furthermore, when planning and proposing a system based on this information, it is common for the customer to review the content and make several revisions.
Finally, once we have a plan that you are satisfied with, we will submit a quote at that stage, and if we can reach an agreement, the process will lead to a software development contract.
Therefore, before proceeding to the actual development process, cooperation from sales and system engineers, numerous interviews, and revisions to the plan are required.
What is the software development process?
In the software development process, there are slight differences in the workflow depending on whether you are creating a contract product or an in-house product. First of all, when we undertake development work on behalf of a customer, we create a deliverable in the following six steps.
Requirement definition
Requirements definition is the process of clarifying the tasks to be systemized and the required performance based on the planning proposal. To create a requirements definition document, it is first necessary to understand the business flow of the existing system and check the system design document.
Also, an important task in this step is to clarify the division of roles between the developer side and the customer side and clarify what tasks are mutually necessary. By the way, when defining requirements, we also consider solutions so that the requests can be incorporated into the design.
design
When designing the specifications and overall picture of software development based on the requirements definition document, it is necessary to consider a large number of items, such as the following.
・Input/output method (database, screen)
·Processing method
・Test method
·Operation method
・How to ensure security
・Post-delivery maintenance
By the way, when developing large-scale software, it is common to organize the functions into systems, subsystems, and programs in stages before proceeding with the design. The contents summarized in the basic design document are reviewed by the developer and customer and then used for the internal design of the system.
development
Based on specifications and design documents, we write programs in languages ​​that computers can process, such as Java and C. Language choices vary depending on the output device and product characteristics.
test
There are four types of tests to check whether the system operates according to specifications and designs:
・Unit test (verification of a single program)
・Integration testing (verification of multiple programs)
・System test (verification of the entire system)
・Operational testing (verification using data handled by customers)
Systems and programs that do not work properly even after testing always have a source code defect (bug) somewhere. At this time, debug again and remove the bug.
When developing large-scale software with a huge amount of source code to verify, it goes without saying that debugging takes a lot of time.
delivery of materials
Once the software has passed operational testing and is confirmed to work properly, it is finally delivered to the customer. At this time, we also hand over the operation manuals, system design documents, and programs created at the development site.
If a system is being introduced and the customer is likely to be unsure about how to use it, the development company may provide instructions on the series of operations.
Maintenance
Backing up important data, checking system operations, and providing support in the event of a failure are also important tasks at a software development company. For a certain period until stable operation is achieved, system malfunctions must be proactively addressed.
In addition, we may respond to system changes or customer requests by adding additional functions after delivery.
Process for developing in-house products
On the other hand, in the case of in-house package development, there is no customer interview, which is common in contracted development. Therefore, the process is to proceed through requirements definition, design, development, and testing based on internal product planning.
This type of development is characterized by the opportunity to be involved in product planning from the planning stage, which makes it easy for employees to grow attached to the services and packages they have created.
However, even in in-house development, you are required to work efficiently within a set budget, so please understand that man-hour management and schedule management are just as important as contract development.
What types of jobs are involved in software development?
Three types of jobs can be successful at a software development company:
sales
This is a position that involves sales activities to receive orders for system development. Salespeople who interact with engineers to obtain man-hour estimates also require communication and coordination skills.
In addition, knowledge of system development is also required for sales, which involves proposing plans to customers. By the way, there are various types of sales jobs in the software industry, such as contract development sales, package sales, and SES sales.
System Engineer
A system engineer is a position that is responsible for the upstream process from customer interviews to requirements definition to design. System engineers, also known as software development designers, design systems based on the results of customer interviews.
If necessary, you may also be involved in post-development work such as programming, testing, and delivery.
programmer
This position involves everything from programming development to testing based on materials created by system engineers.
At major software development companies, many new graduates aim to become systems engineers after gaining several years of experience as a programmer.
Therefore, system engineers who are programmers with extensive development experience are in high demand because they can be involved in a wide range of tasks from upstream to downstream.
summary
Software development, which refers to the series of work from system development to release, involves designing based on interviews with customers and then proceeding to programming.