As a system analyst or a senior programmer, it is to have the following quality of the designer of a program project: First, demand analysis capabilities For programmers, understand demand can complete qualified code, but for research and development Organization and manager of the project, they must not only understand customer needs, but also have some need to make some needs, why do you say this? In general, the R & D task is performed, perhaps the customer's demand, perhaps the demand proposed by the market and marketing department, this time for the R & D department, they are not a complete demand, usually, this demand is only some of the functions The requirements, or more or more, it is possible to get a complete user view; but this is not enough, because the customer may make it difficult to make complete and clear, or professional performance requirements due to non-technical factors, but Project organizers and planners, he must be able to recognize the existence of these needs and appropriate proposals when completing the needs analysis report, while the complete and clear reflection is in the design manual, so that the programmer is not lost when the programmer encodes These guidelines. The program designer must correctly understand the environment in which the user needs, and the analysis of demand, for example, the same software issued and released through the ASP lease, and the performance requirements may be different, the former emphasizes It is better support capabilities and stability, and the latter may emphasize the universal and installation use of universality and installation in a variety of platforms. Second, project design methods and process processing capability programming must be able to master a project design method of not less than two to three (such as design methods, such as rapid prototyping, etc.), and can be based on project requirements And resource matching to select a suitable design method for overall design. Improper design methods will delay the R & D cycle, waste R & D resources, and even affect the research and development effect. A program designer also needs to use a lot of effort to use the flowchart design and processing, and he needs to do data flow diagrams to establish a data dictionary; he needs processing logic flow diagrams to form an overall system processing process. A system with a problem with a problem, even if the code is more beautiful, each module is exquisite, and it will not become a good system. Of course, do process analysis and choose a good project design method, you need to have sufficient grasp on demand analysis capabilities. Third, reuse design and modular decomposition capabilities seem to be old-tonghua, do you have explained this problem in front of the basic quality? As a programmer engaged in module tasks, he needs to consider the reuse of the specific function module he faced, and as a system analyst, he has to face more complicated, need to follow the whole system according to one Modular analysis capability is broken down into many reused functional modules and functions and forms an independent design requirement for each module. For example, it is like automobile production. The earliest installation is installed independently, and each component is tailored, but it will not be the same, the machine is produced, and a bus factory begins to produce a car. The independent component begins with certain reuse. In the later standardization, the automotive parts of different models, brands, and even different manufacturers can also perform convenient dressing and upgrading, this time, the efficiency of automotive production maximizes.
Software engineering is also the same, a mature software industry, in some related projects and systems, different components can be discouraged, such as Many desktop software of Microsoft, in many operating modules (such as opening files, saving files, etc. Wait, it is a multiplexed function module, and these interfaces are provided to desktop application developers convenient to hook through some class libraries, which is a significant agreement for multiplexing module design. Decompose a large, intricate application system into some relatively independent, highly reused, and can only rely on several parameters to complete the data connection module combination, is the most important as senior programmer and system analyst Work, suitable project design methods, clear flow charts, is an important guarantee for achieving this goal. Fourth, the overall project assessment capability is a system designer, must be able to start from the whole, clear understanding of the project, such as whether the company's resource allocation is reasonable and in place, such as whether the project schedule can maximize the efficiency and not Complete on schedule. Evaluate the overall workload of the project and various modules, assess the resources required for the project, and the difficulties may encounter in the assessment project, it requires a lot of experience accumulation, in other words, this is a realm of continuous summing. The leaders in the Western software system design are very old, such as 4, 50 years old, even older, they are far less than the young people in the coding, but for the project assessment, they decades The experience accumulation is the most important and valuable wealth. China lacks such a series of programmers, mainly not lacking the programmer, but that aged programmer is basically the research unit, it is not from professional product software research and development, they There is no experience that can accumulate the product development, this is also something that there is no way. Fifth, the team organizes management capabilities to complete a project project, need to work together, as a leader of the project designer or R & D, should have the ability to maximize the overall strength of the team, technical management due to its professional nature, not big General personnel management, because this is designed to design some technical indicators and factors. The first is the quantization of work, it is difficult to do a suitable performance appraisal without quantifying, and the program quantization is not a simple code line number, so technical managers need to truly assess the complexity and workload of a module. Secondly, the adjustment of teamwork, generally, the cooperation of procedural development is usually divided into a group, and the team has the main program, and there is a democratic approach. According to the ability to level between programmers, and according to project development Demand, choose the right team method, and can closely combine the job task of the responsibility and members, so that you can maximize the efficiency of the team. A person with high code level, may not be a qualified project research and development supervisor, which is often easily ignored by the ability.