Then as a senior programmer, the system analyst, that is, for a program project designers, in addition to having all the above qualities, but also need to have the following qualities:
First, demand analysis capability
For programmers, understanding the requirements can complete the code, but for the organization and managers of research and development projects, they not only need to understand the needs of customers, but also to develop some of their own needs, why say so?
In general, research and development tasks, perhaps the needs of the customer, may be the market and marketing Department of the demand, this time for the research and development department, they see is not a complete demand, generally speaking, the demand is only some functional requirements, or more formal, may get a complete user view; but that's not enough. , because the customer is more non-technical factors, they may be difficult to propose complete and clear, or professional performance requirements, but for the project organizers and planners, he must be able to clearly understand the existence of these requirements and in the completion of the requirements Analysis report, the appropriate presentation, At the same time, it should be fully and clearly embodied in the design manual, so that programmers can code without losing these guidelines.
The programmer must correctly understand the user's needs in the environment, and to make a specific analysis of the needs, for example, the same software through the ASP leasing and release through the license way, performance requirements may be differentiated, the former emphasizes better support capacity and stability, The latter may emphasize the universality of the various platforms and the simplicity of installation and use.
Second, project design methodology and process capability
Programmers must be able to master not less than two to three kinds of project design methods (such as top-to-bottom design methods, such as rapid prototyping, etc.), and can be based on project requirements and resource collocation to select the appropriate design method for the overall project design.
Improper selection of design methods will delay the development cycle, waste research and development resources, and even impact research and development results.
A programmer also needs to put a lot of effort into the design and processing of the flowchart, he needs to do a data flow diagram to establish the dictionary; he needs to process the logic flows to form the overall system process.
A system with problems in the process, even if the code is beautiful, each module is more exquisite, it will not become a good system. Of course, good process analysis and selection of project design method, all need to be in demand analysis ability to have enough certainty.
Thirdly, multiplexing design and modular decomposition capabilities
This seems to be the same old talk again, the basic quality of the front has not already explained the problem?
As a programmer working on module tasks, he needs to consider the reusability of the specific functional modules he is facing, and as a system analyst, he is confronted with many more complex problems that need to be decomposed into many reusable function modules and functions according to a modular analysis capability of the whole system. and to form a separate design requirement for each module. For example, as is the automobile production, the earliest each car is independent installation, each component is tailor-made, but later not the same, the machine is large production, a car factory began to produce cars through the assembly line, independent parts began to have a certain degree of reusability, in the later standardization has become a major trend, different models, Brands and even different manufacturers of automotive parts can be easily dressed and upgraded, at this time, the efficiency of car production to achieve maximum. Software engineering is the same reason, a mature software industry, in some related projects and systems, different parts can be arbitrarily dressed up, such as Microsoft's many desktop software, in many operating modules (such as open files, save files, etc.) are reused the same set of functional modules, And these interfaces are provided by some class libraries to the desktop application developers to hook up easily, this is the reuse of the module design is a clear evidence.
The basic qualities that a senior programmer should have