Walk out of the software workshop (25)

Source: Internet
Author: User

25. What is the document?

 

Last year, we wanted to step up the software development team management.

Because we are in the field of enterprise management software development, most of the List of Japanese outsourcing is management software, but the project management, progress, quality are better than ours, if they work with the management consulting company as a partner and add a large number of service call centers, is there a way out like us?

So we thought about the Development Process Management of outsourcing to Japan.

When we think of outsourcing to Japan, we think of a lot of documents and a lotCodeThe worker thought of a detailed design instruction or even functional or pseudo-code level.

When we want to introduce it, we have made an internal debate. If I think that outsourcing to Japan is larger than that of domestic customers, I can also recruit large-scale employees and outsource to Japan, the Japanese have a rational view of the project cycle (domestic customers require that the project be launched after one month of development ), in addition, the Japanese did research and design analysis from six months to one year (the domestic research was almost just one morning, sitting together and chatting, and there was no way at all ). Therefore, outsourcing to Japan is not suitable for us. We don't have the money to hire a certain number of people (even if we only need ordinary employees, not talents, we don't have extra money ), of course, we cannot separate so many full-time project management, development, testing, documentation, and configuration management positions. Our customer's perception of the Software determines that we cannot make too much effort in research and design (the amount of the list is so large, and the customer thinks that the software is worth so much money, of course, you do not need to pay attention to all aspects of software production ).

However, I still insist on introducing it. It's a scorpion or a horse. Let's pull it out and walk it out. You can't do it. Didn't the pony cross the river as a child?

Introduced, the partner sent us a Quality Control Department staff.

First, we found that there was a critical problem, the source of the method.

Because it is outsourced to Japan, it is a single production, mainly coding, testing, to ensure the production progress and quality requirements. However, it is unclear about outsourcing companies to Japan in all aspects before coding. They only know how to get the Design book from someone else.CodingIt is unclear how the design book came from and what documents were generated in the previous step.

Fortunately, we used a systematic survey method to describe the requirements from the survey description of the current situation, and then analyzed the optimized organizational structure, workflow, assessment report, and job responsibilities. The customer's optimized process and tools contain manual paper information,ExcelInformation and software information.

Transform these functions, permissions, and reports into software in one go. The organizational structure and responsibilities determine the functional points and permissions, and the workflow determines the software process, the paper information used in the workflow,ExcelInformation and software information are data input, and reports are data output. This is the four major modules of an enterprise management software: Organization permissions, input, processing processes, and output.

Therefore, the development of enterprise management software involves methods and rules, which are relatively easy, and even the most difficult research and demand management methods. Therefore, the development of enterprise management software is now mainly focused on the organization, task scheduling, and personnel training of large-scale development teams (large-scale development requires general quality personnel, rather than senior talents, it is impossible to have so many funds to achieve large-scale development.) The quality and progress of large-scale development teams (there are more people, and there are people at all levels, understanding is different. It is critical to ensure the quality and progress. Otherwise, the project budget may be out of control. In general, there are more people with high quality, and the management requirements are high. It is easy to become a public, only consume and not generate ). I envyKFCNo matter where we are, we are late.KFCIt is of the same taste and quality, and the services and environment enjoyed are similar, which is difficult. There are so many stores and all are authorized stores rather than self-owned stores. There are so many general employees, and there are also a lot of employee loss and temporary employees. This can ensure the same level of management. So I often learnKFCHow to make general employees work with Toyota on a large scale.

For documents in the process of enterprise management software development, we generally have the Requirement Analysis Statement, which is written in the same format and way of thinking as our demand research method. That is to say, the results of our demand research are as follows, after implementation on paper, there will be a demand analysis statement, and there is also a demand Research Report, which is biased towards the project process description.

After the requirement analysis statement is returned, the R & D department will learn and understand it and discuss it.

The discussion was mainly attended by the requirement investigator, business group leader, and test group leader. Process one by one. Because during the demand investigation, only the investigators were involved, and there may be some incomplete questions. If this is the case, development will be carried out directly, and there will undoubtedly be many vulnerabilities. In this way, the development and testing are all reworked and modified, and the project management is also adjusted on the project progress and task allocation. The disruption of the plan also indirectly affects the quality management.

According to the requirements analysis manual after discussion, we can easily get the documents in the following sections.

First, we will provide the function documentation.

We will list all the business functions in the requirement analysis manual, which belong to the organization structure establishment, organization role, permission assignment, login verification, basic data maintenance, and so on. System management, various enterprise management software is similar, we have a public system management module, there is no need to re-invent the wheel. Therefore, we mainly focus on analyzing business functions.

Each process in the requirement analysis specification is first presented as a feature. Then, compare the current functional points and compare them one by one. If the process is complicated, split it into several functional points with the same complexity as the estimated workload. After such splitting, the final functional point document is formed.

However, functional points are split based on the above method to form a functional group.

The function becomes the minimum unit for function permission control. The function group is one of the software menus. Several associated functional groups have become a business subsystem.

In this way, make the subsystem-Function menu-Function Points (may be functional buttons in a function window) are separated from the organizational structure.-Employee-Role-User-Permissions. What will a software look like in the future? The big framework will come out.

A list of functional points is similar to a field where the project is very large. I first framed the project boundary, instead of making the project infinitely unbounded, naturally, there will be no feasible project progress and project management. Once you know how big the project is, you can decide whether the loss is to earn, whether to do it or not, whether to do it, whether to do it, whether to have time and manpower to do it.

Then, the priority of each function is marked based on the list of function points. We usually divide the priority into three levels. This means that a project is roughly divided into three stages. Level 1 is required, and even if it is postponed, it is required to schedule more workers and work overtime. After completing Level 1, if you have time, you can complete level 2. If the time exceeds the limit, the second level can be postponed if possible, but it should also be based on the budget and time. If the appropriate extension cannot be completed, we will launch the implementation for the customer, change the implementation side and perform parallel development, so that the implementation team and the development team can perform parallel work. Therefore, level 2 is also an important feature. Level 3 means that if time is used up, the level 3 function should be discarded and not developed.

Generally, the priority is based on the importance of the function. As we have mentioned before, when we investigate the needs, we will separate common and abnormal businesses and separate daily businesses, it is separate from the business performed every week, every month, every quarter, and every year. Several closely integrated and correlated interfaces will also divide them into the same priority. The basic data maintenance interface that needs to be developed separately will also be given the same priority. In this way, as long as our project expires or we are subject to sudden changes in competition, we will launch a complete system that can be used at any time. Although the system may have simple functions, it can completely process the entire common business process without interrupting it and cannot be processed.

Many development teams develop dictionary functions, business functions, and reports. This development method has led to a lot of business systems. When the customer goes online and uses it, the data is input and no output is made. As a result, the business system becomes boring and the user does not get the value of use, which may only reduce the workload, this accelerates work efficiency and increases the automatic cooperation between departments. What's more, business functions are half developed, and open circuit is everywhere. As a result, it cannot be a complete system, that is, a semi-finished product. It cannot adapt to changes in competition.

We started to write our feature design specification for the feature list.

We compile the functional design specification according to the priority. We will not start coding after writing all functional design manuals. Instead, we first write a detailed functional design with the highest priority to start development. The second-level function compilation is performed concurrently when developers perform the first-level function encoding.

The detailed functional design specification is compiled by the business development team lead. System-class or public-class functions are all written by public code personnel and require complexAlgorithmThe APIs with high performance, high security, high data volume, and unknown future changes to the final solution are all written by public code personnel. Therefore, a development team, high-tech public code personnel, business development team leaders who have a deep understanding of the business, and commonCodingPersonnel. Generally, the business development team leader is familiar with the customer's business and has many coding experiences. However, the team leader has average technical skills and is responsible for team management.

The function design specification is described in detail based on each function point. Generally, a function is composedExcelDocumentation.

Excel the first Sheet in the document is the version information. Each modification has a change record. The second Sheet is the page layout. We usually use PPT or a development tool to create an interface sketch and paste it. The third Sheet is the description of each field on the page, such as the default value, cannot be blank, input constraints, primary key unique, input length, reference input, and so on. Fourth Sheet if necessary, use Visio draw a business flow chart. The fifth Sheet is about operational requirements, such as ease of use, security, performance, data volume, and concurrency, these features are classified into three levels: High School and low school. In addition, the minimum operating system and memory are required. For a function, we must consider the computer level of its users. Otherwise, the function is very practical, but it is not used to the operation. The customer must change the method that the customer is used to. We often face such requirements. Rather than making customers drive us in that way, it is better for us to require ourselves in advance when designing. In the demand research phase, we will investigate the current information situation of our customers, such as it maintaining personnel and information application capabilities, the customer's boss understands informatization and the end user's informatization operation capability.

I often see that many customers do notItThe maintenance personnel do not know about the server, but do not know what it is.SqlserverAnd do not know the backup. The understanding of informatization is to install software and installXPStill unknownWindowsUpgradeXP SP2If no firewall is installed and no Trojan is installed, you will know to install a rising anti-virus service. Every day, you complain that the machine is too slow. The machine is also old,2002Machines of the Year,128 mMemory. In addition, the operator's typing and mouse are not good, so that he can double-click or right-click the mouse, he does not understand. I told him on the phone that he could open a function menu. Why is there a menu on his computer? If your software is based on. NetHe connects. NetYou do not know where to download it during running. Therefore, our software needs to run on what hardware and what basic software, and the amount of data can still run smoothly. Our software must be easy-to-use, easy-to-use, and easy-to-maintain, we must take this into consideration during the design period.

Many software developers do not pay special attention to this aspect, so I would like to emphasize it here. Everyone should not laugh at users. Everyone's salary is what they give us, not the boss. Users are not computer experts. They do not understand double-click, scroll, and right-click operations. We should treat our food and clothing parents well. We should not fight against our money.

ExcelThe functional design document is missing. Is the data operation process.

We will not write data operation procedures first. We will first hand over to the testing team to verify the detailed design of this function point, whether it is consistent with the requirement process and requirements, and rectify the non-conformities.

The functional design document after rectification is consistent with the Requirement Description document and is designed correctly. At this time, specific implementation instructions are involved.

We will let the public code personnel output the interface input and output and the data structure in the business flow chart. The reason why we don't let the business development team lead organize the table structure is that the business development team lead is familiar with the business but not proficient in technology. The data structure will affect the performance and expansion in the future. Therefore, the public code personnel should design the table structure and create views and stored procedures.

To consider performance and scalability, the design of the table structure may be split into multiple tables, rather than the storage structure that the business development team lead naturally understands. Therefore, the public code personnel establish a view to ensure that the Business Code developers can see a natural Business Entity Data Structure at the view level, there is no need to understand the associations between internal table structures. In addition, there are stored procedures to ensure that you can add, delete, and modify data without having to know the association between tables.

From this division of labor, we adopt the development method from the back to the front. The data layer, basic table structure, view, and stored procedure are available first. Then, the Business Process Code is developed based on the view and stored procedure. Finally, the interface is dragged by common business developers to draw the interface. Therefore, business developers are neither familiar with the business nor the technology.

The public code personnel hand over the designed data structure to the business development team lead. The team lead will write data addition, deletion, modification, and query operations for each function.CompositionFile. Add this part of documentsExcelTo become the sixthSheet.

I have not studied the test driver. I have always advocated full testing, from requirement to design to code to documentation and packaging, all of which must be tested. Only when each link is correct can the results be correct. If you find that the Code is not correct after writing, or even the requirement is understood at the beginning or there are conflicting processes, this is terrible. Many people call for a change in requirements, and the project progress cannot be guaranteed. It is not only because there is no requirement investigator, business development team lead, or tester, but also a problem in the R & D process and method, and the whole process is not tested.

After writing a whole document (not all of the first-level functions are compiled), we will deliver it to the business development team for development. The specific developer Task Arrangement is determined by the business development team lead. The Business Development Team lead is developed by public developers based on their own development plans and the task list of public developers (we use the demand management system to arrange development tasks for each person ), inform public developers of the expected completion time.

In this way, public development and business development are in parallel, design writing and function development are in parallel, and design and test are in parallel, code and Code testing are in parallel (we adopt version management and daily build ). This situation is just like assembly line work. It is a bit like the assembly line production of Toyota. Once a problem occurs in a link, you can concentrate on manpower to solve it, this person will not be asked to postpone the drill-up. Otherwise, all project progress management will become empty talk. With no substantial progress, there will be no substantial project budget management. Whether or not we can make money is actually a question that the ghost knows.

Many of my friends have not written any documents during development. Once they have the idea of formalizing R & D management, they will often ask for the entire document. This document will put developers tired, at last, the product quality and progress are not guaranteed. Once the test fails, the system denies the entire document writing and returns to the situation where nothing is left. There are two extremes.

Hope this articleArticleWe can give everyone a peaceful view of writing documents. We didn't write documents for the sake of formality. Every document we write has a role. We are also striving to write less and write less. Based on the degree of consensus between the Team and the customer, we will cut down the document or link that does not need to be written.

We don't care about formal or informal, and we don't care about whether we look beautiful or not. We only need commercial development. What we want is to deliver quality products recognized by the customer within the limited human resources, contract amount, and contract period (not of high quality, it is acceptable to the customer, we never pay more for anything that has no return on interest ).

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.