In this article, we will explain in detail the skills required for upstream processes, as well as their suitability and unsuitability.
table of contents
- 1. What is the upstream process?
- 1-1. Upstream processes play an important role
- 1-2. Which process corresponds to the upstream process?
- 1-3. Types of engineers in charge of upstream processes
- 1-4. There are a limited number of companies that can engage in upstream processes
- 2. Four tasks that engineers are involved in in the upstream process
- 2-1.Requirements analysis
- 2-2.Requirements definition
- 2-3.Basic design
- 2-4.Detailed design
- 3. Six skills necessary for upstream process operations
- 3-1.A wide range of IT skills
- 3-2. Knowledge of business knowledge and laws and regulations related to business
- 3-3.Logical thinking ability
- 3-4.Skills to properly design and create documents
- 3-5.Communication skills
- 3-6.Ability to appropriately estimate business volume
- 4. Advantages and disadvantages of having engineers in charge of upstream processes
- 4-1. Benefits of being in charge of upstream processes
- 4-2. Disadvantages of being in charge of upstream processes
- 5. There are pros and cons to upstream processes.
- 5-1. Engineers suitable for upstream processes
- 5-2. Engineers unsuitable for upstream processes
- 6. Understand the work content of upstream processes and acquire the necessary skills
For many engineers, being involved in upstream processes is one of their goals. Upstream processes have a large impact on the entire system, so they require a wide range of skills. Upstream processes involve many meetings and document creation tasks, so it may not be suitable for those who want to continue programming.
If you are aiming for an upstream process, it is recommended that you learn about the work in advance. In this article, we will explain in detail the skills required for upstream processes, as well as their suitability and unsuitability.
What exactly is an upstream process?
First of all, what role does the upstream process play in system development? It is also important to know about the engineers and companies that can handle upstream processes. First, I will provide a detailed overview of the upstream process.
Upstream processes play an important role
The upstream process is an important process that determines the system specifications and determines subsequent quality. Upstream processes determine how the system will operate and how the company will solve its problems. In the downstream process, development proceeds according to the matters determined in the upstream process.
If there is a misunderstanding about the system specifications between the customer (orderer) and the developer, it is necessary to go back to the specification development stage and start over. Depending on the progress of development, there may be significant rework, which may hurt quality and schedule.
Which process corresponds to the upstream process?
Several tasks fall under the upstream process. In the case of system development work, this includes requirements analysis, requirements definition, and basic design. Additionally, depending on the company, the detailed plan may also be included in the upstream process. Waterfall development is a well-known development method that progresses in an orderly manner from upstream processes to downstream processes that include implementation and testing.
Upstream processes are also defined in the field of infrastructure. Requirement definition and design work are in the upstream process, and operation, maintenance, and monitoring work are in the downstream process. Construction is classified into either upstream or downstream processes depending on the company.
Types of engineers in charge of upstream processes
There are a wide variety of job types for engineers in charge of upstream processes. Typical occupations include:
·Project manager
・System engineer (SE)
・IT consultant
In addition, infrastructure engineers, network engineers, database engineers, and cloud engineers may also be responsible for upstream processes such as design work.
There are a limited number of companies that can engage in upstream processes.
Unfortunately, not all IT companies offer opportunities to be involved in upstream processes. In particular, IT companies such as SES and third-tier subcontractors find it difficult to receive orders for upstream process work.
If you feel that it is difficult to get opportunities to work in upstream processes at the company you work for, changing jobs is an effective option. By joining the companies below and having your skills recognized, you may be able to open a path to higher-level processes.
・Companies that develop and operate their own packages and web services
・SIer of the primary contractor and secondary contractor
・System company belonging to a major corporate group
Four tasks that engineers are involved in in upstream processes
requirements analysis
Requirements analysis is the start of the upstream process and is also called requirements definition or system planning. Our main duties include identifying requirements from customers and investigating and analyzing systemization needs.
Skills are required to properly understand customer requirements. At times, you may need to ask questions to discover issues that users are not aware of. For this reason, in many cases experienced system engineers, project managers, and IT consultants are in charge.
Requirement definition
Not all requirements may be included in the system. Requirements definition is the process of determining the specifications of the system to be implemented in the project. The requirements to be defined are divided into “functional requirements” related to functionality, and “non-functional requirements” that define requirements for speed, security, etc. from aspects other than functionality.
Requirements definition is the process of determining the goals of a project, and since there are usually constraints such as delivery dates and budgets, the requests of the client and developer often conflict. Defining requirements as clearly as possible is the key to preventing problems later on. It is also important to create a requirements definition document and reach an agreement with the customer.
basic design
The basic design is the system’s design based on the requirements definition. Because it determines the behavior of the system as seen by the user, it is also called external design or functional design. This is an important process that is directly linked to user satisfaction, as it determines the appearance, usability, and coordination between systems.
Typical items determined in the basic design include the following:
・System operating procedures
・Screen types and layouts, transitions between screens
・Types and layouts of forms
・Input/output of various data (forms, files, databases, etc.)
・How to link with external systems
・Network configuration and hardware placement
・Selection of OS and various software
As with the requirements definition process, the decisions should be clearly stated in the document and agreed upon.
Detailed design
Detailed design is the process of creating the designs necessary for system implementation based on the basic design. It is also called internal design because it mainly deals with the internal parts of the system that are not visible to the user.
During detailed design, the following details are determined and documented as necessary.
・Classes and modules
・Communication procedures and internal processing flow
·state transition
Some companies treat detailed design as a downstream process.
Six skills necessary for upstream process work
Upstream processes require a variety of skills, including IT technology. Here, we will highlight six representative skills. Let’s take a look at why it’s important.
A wide range of IT skills
Upstream process operations require a wide range of IT skills. To understand the entire system and make appropriate decisions, you will need the following knowledge.
1. Network
2. Server virtualization and cloud utilization
3. Middleware such as databases
4. Security
This knowledge is also important for system speed, security, and data consistency. Be sure to check the latest information regularly to keep up with technological advances.
Knowledge of business and laws related to business
There may be cases where knowledge of the business is required to develop a business system. It is necessary to have a correct understanding of the business flow to be systemized and what kind of problems you want to solve with systemization.
Furthermore, many operations are subject to restrictions, to varying degrees, by industry rules and laws. When accepting orders for a project, it is essential to have knowledge of the relevant laws and regulations in addition to business knowledge of the relevant industry. Be sure to check the official websites of central government ministries, local governments, and industry organizations, and familiarize yourself with them before starting work.
Systems that violate industry rules and regulations cannot be used in the field. Not only will you be forced to make major reworks, but you may also receive harsh criticism from your customers.
logical thinking ability
Upstream process tasks also require logical thinking skills. To receive an order for a system, we must make a proposal that the customer can accept. You need to analyze the challenges presented and think logically about how to make the customer’s wishes come true. Then, it is necessary to explain it in a way that is easy to understand and makes sense so that the customer can understand.
On the other hand, there may be requests that seem logically achievable but are difficult to realize due to various constraints such as cost and schedule. Logical thinking skills will help explain the situation in such cases.
Skills to properly design and create documentation
Documents are important materials in the upstream process. Documents play the following roles in the progress of a project:
・Becomes the basis for the next process
– Serves as material for customers to understand the new system
For example, design is done based on the requirements definition document, and implementation and construction are done based on the design document. Those in charge of upstream processes must not only appropriately define requirements and design, but also have the skills to appropriately and verbalize agreed content. Create a document that everyone can understand the same way.
communication ability
Engineers in charge of upstream processes are also required to have communication skills that allow them to skillfully extract necessary information from customers. Customers offer a variety of requests, but they don’t always tell you everything. There are two reasons for this:
・There are latent demands that the customers themselves are not aware of.
・People who are not familiar with IT and do not understand the conditions necessary for system operation
Engineers must conduct interviews with customers and extract sufficient information necessary for system development and construction. If you proactively check for potential problems, you can prevent problems from occurring. This can be expected to have the effect of reducing rework and increasing the possibility that customers will be satisfied with the proposal.
Ability to appropriately estimate business volume
To complete a project, the ability to appropriately estimate the volume of work in the upstream process is essential. This is because the budget and delivery date are set at the stage of receiving an order, and it is difficult to change them later.
For example, if human resources are insufficient for the amount and period of development required, the following disadvantages will occur.
・Schedule delay
・Deterioration in quality
・Fatigue of personnel due to frequent troubles and continuous overtime/work on holidays
No one will feel good if they try too hard to meet the customer’s wishes but cannot do so. Of course, not everything will proceed as planned, but appropriate estimates in the upstream process are important to prevent the so-called “death march.”
Advantages and disadvantages of having engineers in charge of upstream processes
As with any other job, there are advantages and disadvantages to having engineers in charge of upstream processes. Let’s take a closer look at the advantages and disadvantages.
Advantages of being in charge of upstream processes
Engineers in charge of upstream processes can enjoy the following benefits:
・Annual income increases
・Easy to be assigned responsible work and easy to get promoted
・You can change jobs under favorable conditions
There may be many engineers who aim for upstream processes to obtain some of the benefits listed above. Upstream processes are more management-oriented than downstream processes, so there are often opportunities to hone management skills. It can be said to be a shortcut to career advancement.
Disadvantages of being in charge of upstream processes
Some engineers in charge of upstream processes may find the following disadvantages.
・I can’t concentrate on coding
– Busy with internal and external coordination
・Being busy with document creation
For example, the basic design phase requires creating numerous documents and obtaining customer agreements. People who want to make use of their programming skills or people who are not good at communication may not find the upstream process work rewarding.
Upstream processes have pros and cons.
As explained above, there are some unique items in the upstream process among the tasks that engineers are responsible for. Therefore, it is not a job suitable for every engineer. From here, I will explain the pros and cons of upstream processes.
Engineers for upstream processes
The following people are considered to be compatible with upstream processes.
・I want to solve corporate issues with my own hands
・I want to be involved in the entire project and deliver the best results.
・Be interested in technical fields that are not your specialty and actively learn about them
– Strong against pressure
・Able to create concise, clear, and easy-to-understand documents
・I like conversation
The above items reflect the characteristics of the upstream process, which involves many meetings and document creation, and requires a wide range of technical skills.
Engineers unsuited to upstream processes
Engineers who fit many of the items listed below are considered not well-suited to upstream processes.
・I’m not good at socializing with people
・I want to program silently
・I want to compete with specific technical skills
– Difficulty explaining clearly to non-technical people
-Not interested in management work
A typical example is someone who has always wanted to do programming. If such people are forced to take charge of upstream processes, they may lose motivation.
Understand the work content of upstream processes and acquire the necessary skills
Upstream process operations are significantly different from downstream processes. Decisions made in upstream processes are important in system development because they affect downstream processes. To deliver systems that meet customer needs, those who want to be involved in upstream processes should thoroughly understand the work and acquire the required skills.