The entire software development process is a rather complex process. Instead of simply writing software on the other side by a few design engineers, we need to start from the beginning to the end, including many people and different experts, different specialties and different knowledge are combined to form a complete software product. The entire process from decision start to plan, design, and finally to program writing and execution, and then testing, error correction, stability, release, deployment, and debugging is quite long, it is not a simple program. In order to ensure the quality of the software and meet the requirements of the customer and the market, it is very important to do the work. The earlier the work was done, the more comprehensive and careful It was to avoid subsequent work, rework and waste caused by incomplete procedures play a key role. You may have read about the authority of software project management in the United States on the Internet and have written many books on software management. It is a very famous theory that he has done a lot of research and research, it is found that if the early work is not done well, the rework of the subsequent work will result in a great waste. There is a chart like this, he makes a conclusion that if there is a problem in the design phase, in the design phase, if you did not find and correct it in time, it will not be found until the implementation phase, you will see three different curves. The more early the error was not found, the higher the cost due to rework. If there is no problem before, only half of the correction was found at the end, the cost is quite low, because you have corrected the error and then re-tested it. However, if the program is programmed incorrectly during execution, and then re-compiled and re-tested, the cost will be relatively high. If an error occurs during design, the customer and market requirements are wrong because the requirement management is not well managed, and the developed items are completely re-executed and re-corrected later, we can see that this curve is almost geometric, increasing exponentially. It can ensure that the cost during the product development process is increased and the early work is complete. The earlier the design is, the more comprehensive it is, the more significant it will play a role in controlling the subsequent consumption.
From this point of view, the example I gave in the morning is the same. The blueprint for building a house is of great importance to building a house. It also plays a role in improving the early design.
What is a design specification. You have heard of many different names and different names. First, it is a summary of software functions, performance, and use solutions. It describes a product, what services should it provide to customers, what roles it plays, and what tasks it can accomplish, A summary of the software products is a summary of the provision of software functions, performance, and use solutions. That is to say, what he should include is a detailed description of how the software should work, a summary of his use plans, and a summary of his functionality, it should not include the specific design architecture of the product, how to implement it, and how to design it. In fact, there are no documents or documents to summarize. As mentioned in the morning, when the design manager and Project Manager finish configuring software functions, the design team should develop the product. In some of Microsoft's relatively large teams, we have so-called designers, specific developers and development team leaders and developers. Each of them summarizes the specific design implementation solutions based on the functional descriptions, this should not be written in the design specification book. Therefore, we need to understand clearly that the design specification book describes how the product is used to the customer, rather than how the specific development logic of the product is implemented, this is related to development. The Project Manager works as a design specification to clearly describe the functions of this product. Do not confuse the content included with the content not included.
There are many factors that affect the design specification. First, the most important thing is the functional requirements. The customer has certain requirements on the use of software. What kind of service should the software provide and what kind of task should be completed, this is called a functional requirement. In fact, there are several factors that affect the overall functional requirements. The analysis of market competition shows what features our competitor's products have, in this way, we can find out what features our products should have, or even better functions than others. This is an influence on functional requirements. There are feedback from customers. He said that my product works for my industry. This is obviously a specific requirement of the customer. There is also a requirement for users to solve the problem. For example, he said that I don't care how your product is developed, No matter what features your previous product or the product you developed previously have, to solve new problems, you must add such a feature. There is also a user's so-called use scheme, which truly solves the problem and what the solution process is like, because there is a direct relationship between the operations of his business, if the customer's business process determines the order of operation, your software equipment should also work with the customer's solution design. All of these are the most critical factors that affect functional requirements. Functional requirements are also the first and most important factors that affect the design specification book to clearly describe and solve.
In addition, it is a performance requirement. It is not enough to write a number using a single key. If the customer asks me to write a number within 0.3 seconds, or after I press the button, I print 5 million words. How is the data speed displayed by him? His requirements also affect the design specifications. He includes the requirements of the entire system. If a large software, operating system, hardware, memory, and network are used, all these requirements affect the performance. Whether the operating environment is compatible with different operating platforms or different operating platforms. It also has an impact on software functions, as well as installation and deployment, especially for large systems, because I have been engaged in industrial control for many years and know the requirements for installation and deployment, it is completely another thing for software to run in a lab to a really large factory. Environment installation and deployment requirements. In a very dirty environment, there are various interference factors on the edge. In such a software running, is the performance guaranteed, there will be no errors in data, or the response to errors, which will affect the requirements of software development. There are also quality requirements, some of which can be solved, and some of which cannot be solved. The quality requirements in the middle can be dealt with in what situations and how to deal with them, these different users will have detailed requirements, which are the content that should be summarized in the normative Design book.
In addition to these, there are also non-functional requirements, but the design must take into account, including regional, industrial, and even national standards in a certain industry. In the European and American markets, each industry has its own standards. If you are designing software and designing for a certain industry, the software design interface standards may use data standards. For many standards, if you are not familiar with or do not understand, if an error occurs, it is necessary to change it if it does not meet the requirements of those customers. These are irrelevant to the functions of real products. However, to ensure that such errors can be avoided during future product development, we need to clarify these requirements because of such errors. There are limitations in technology development. If you want to develop it like this, you want to provide such features. But first, you must understand the hardware of the equipment currently used by the customer, or is there some limitations in the operating system environment that he operates? If you want to develop performance, he cannot achieve it. If you want to clarify these things, avoid making an unclear argument with the customer. When describing a function, you can clearly describe what kind of ability this function has and what kind of ability it has.
There is also a dependence on time. It takes time to depend on external factors. The so-called Triangle Theorem in project management allows you to develop so many functions with so many resources. If you cut your time by half, you cannot develop it by time or quality without changing other factors. These will affect the writing of your design specification book. You need to be clear about what software development capabilities can accomplish and what cannot be done. There is also a demand for availability. To win the hearts of customers and the market, it is very important for the software not only to be used by developers, the customer will not feel very confused when using it, it is still very troublesome, it is very easy to use, the availability here, these things are also very important. What factors determine availability, user characteristics, different users, and different users also decide that software development should follow the appropriate requirements. The developed software is used by some specialized designers. Those who have received higher education are very familiar with it. They are different from those who have developed the software for grandparents, all have special features, so Microsoft divides different users into different types of groups. What are the requirements here. All these affect availability requirements. The entire design specification book describes the complete software process, which must be taken into account. If you don't care about it, write the software. If you develop these mistakes, the final quality of the software will be affected.
Who is the reader of the Software specification? What exactly does the Project Manager Do as a developer. The first is for the development team to use the architecture design, development and execution plan. The development team is the first reader and needs this to build a house. In addition, the test team also describes the function when setting the test plan. Therefore, if a software calls up more than one thousand features, more than one thousand, or even three thousand, five thousand testing solutions are required. The test team is also a reader of the design specifications. Document team, to make it easy for customers to understand and familiarize themselves with your software products, it is important that you have a dedicated user manual. If the software is pushed to the market, I have never used this software for my grandparents. I can see how a manual can help those who have no technical skills to use it in a short time. Document collaboration is very important. The editors do not know computers, but can only describe this product. The content they need is also from here. The availability team should use products to find customers to conduct internal surveys. How do they design test and availability cases? They also need to decide based on the content of the design specification. Finally, you are the marketing team. When you have a complete design specification and marketing product, when the product is sold out to the market, the marketing staff will have a clear understanding, what kind of functions does this product have, what kinds of tasks can it accomplish, and then describes the benefits of this product to the market. So you can see that the design specifications are generally used by so many teams and so many people. We also provide customer leaders with software specially designed for a product and customers before developing your products, I did not sign an agreement, but told me to write something and then develop it. Before development, if you have a complete specification, let the customer understand the entire development plan from start to end, the development content, the features I want to provide, if you cannot provide it clearly, he will know that it does not meet his requirements after reading it. Help the customer understand the entire development plan, and give feedback to you to help you make adjustments. Leaders can follow up on the entire project. If you have made it clear, as the enterprise leader, you can know when to complete the overall development plan from a high-level leader, with your original plan and a specific schedule. Therefore, it plays a very good role in communication and helps maintain consistency between teams and leaders.
What steps should I take to write a Standard Book and what can be done to achieve the final result? Before writing, you must first determine the problem you want to solve. The most important thing is to understand what the software should do from market demands, what kind of person is the service of this software, and what kind of thing is it. Before you determine the functions you want, you must first understand the use scheme, three-step method, and the customer's use scheme. Then, based on the actual requirements, determine which functions you want to design. These functions are summarized based on these requirements and finally designed based on the three-step method. In this way, the features you designed are designed to solve the specific usage of the customer, rather than the designed features are useless. If you do not follow this method, developers are often asked to develop some functions at will. The function development looks very good and we call it cool, however, it does not play a specific role in the customer's use plan. You can click the menu of a software to do something, but the customer does not need this, this kind of development is a big waste. Let the function establishment design be based on understanding the use scheme, and the resulting requirements can avoid waste. In this way, each developed function has a purpose.
Before writing, on many large and complex systems, the development team hoped to have some time to investigate the technical feasibility and first write a sample. The design manager thinks that I should have such a function, but the development team thinks that the function you designed may not meet your requirements. I want to see it on my current platform, can I use the current technology to design the technology you want. Make a simple investigation to check whether it is feasible. The sample was made. Before the team took the time to write the final Specification book, they invited the customer to the room surrounded by glass windows for investigation. The whole process of using the solution can be filled with this number by pressing this key to achieve this effect. You are not really a software, it is a fake, or even a combination of images, let the customer use this item to see if it meets your requirements. If he says it is good, you will know that your design scheme is correct. If 50% think it does not meet your requirements, you will know that your design scheme has a problem. Finally, you have decided to write the Standard Book. The canonicalized book is not finished once, but also several replies. Let's write a publication and call the developers, the development team leader, testers, and engineers for review, is the design reasonable. After the first draft was released, the team immediately overturned it. it was unreasonable for the development team to finish the work. There was no way to develop it and it was necessary to design it again. First published, reviewed, and then written in genuine version. There is a reply. After the reply is finished, you can go back here. This is a process. As the leader of our project development, you will see that every specific job requires time and people to do it. There is no time to determine a project development plan. If you want to go back and forth five times, but you only have to go once, your plan must go wrong. At last, I wrote a genuine copy and reviewed it. All of them were signed by everyone, saying that this was something we could develop. In some cases, ask the customer to sign and the Customer agrees to say that your design fully complies with my ideas. If the previous things are done at home, it will play a major role in the subsequent things.
The content of the outline is generally included in Microsoft's general process of writing a cutting-edge or outline, which is explained in a very simple section for the leaders or the customers. Do you have a clear understanding of the high-level level of product development, and summarize how the product software you have developed is implemented and what functions are available. Can your understanding of the functions of a product be simplified to a few words? Not only can you speak out as a project manager, but all the members of your development team can speak out clearly, this is very important. Especially when the customer asks you to read this file to him, you can clearly understand the customer's requirements. When the specifications are not complete, we finally go back and compare them. Let's take a look at my previous summary to complete these tasks. After the design is complete, check whether it is the same as the original plan. From a high level to help you guide the overall development direction.
In addition to the simple beginning, you must have a detailed summary of the entire document. It not only describes the content of a standard book, but also helps many readers who read the Standard Book for the first time to effectively read your Standard Book. Some normative books are very long and complex. There are various symbol marks. How do you understand the symbols you use. The general summary includes the author, date, and version. Sometimes several versions are put on the internal website. You can tell him that you should check the third edition instead of the second edition. These contents help readers understand that the history of version changes in the design specification book is very important, because during the entire version change process, even though all the changes are complete, the final version is signed by everyone, in the real implementation of the discovery of some functions missing, and finally add. After your product is developed, you may find that there is a problem, so that your design should be changed. As a design specification, you should go back and rewrite it. The modified part should be clearly marked as different. In the previous summary, some versions should be added. In this way, it will be a good reference to track when any problem occurs during the entire software development process. A large product cannot be solved by a design specification. Sometimes it is done by several, a dozen, and several different project managers. As a customer, reading a book alone may not be enough. You have to do a set of books, several design specifications, and the relationship between them. You may refer to the book or read it before, the reference content should also be written in the Standard Book. Therefore, in the document summary, write the content in it.
Important members of this project, project summary, including development team members, development team or test team contact methods. I don't know who to look for, especially the team leader. There is also a summary of the timetable. What about your total product development, major milestones, and number of months. There are also dependency Factors on external teams. Many developers may rely on several teams to provide you with some functions and finally integrate them. What you need to complete in September 3 when you make your product, but in August 30, I want other teams to provide me with such things that I can complete in September 3. If I cannot provide them, I won't be able to do it in September 3. All of them are clearly written so that you can understand them.
In many cases, we may need to write a reason for development. Why should we develop this software? Especially when a company develops a lot of different software, as a team or lead, or as a marketing manager, you may first need to know what your software is, what is the role of the entire strategic direction in the overall enterprise strategy. Many products are being developed, and technologies may be intertwined. It is important to clarify why the team has spent so much money and energy developing this technology. Why not use the existing technologies of other teams, or similar technologies, what kind of suggestions should they develop and everything should be written. The general content is explained as follows. The reason for development is that if I do not develop this, or I use someone else's or my features are not developed, what is the impact on the company's long-term enterprise performance and our market competitiveness. If we do not develop the product, our competitors will develop it six months later, and our market may fall from the first to the fifth and sixth. The leaders will feel different after reading it, you need to use specific numbers to prove why such a function should be developed. There are also required resources, consumption, and non-development costs are also very important. I want to develop things. I want to spend so much energy, people, and resources, but if I don't develop, what is the loss of the market? This helps the leaders or customers make decisions, what should you do. The impact on successful enterprises and the impact on the entire market is different if development is not required, or if development is performed a few months later. Before describing specific functions, we should first explain why we need to develop these things. To clearly understand your development goals, we call them Vision goals. What is the purpose of development and what is development. Why do you want to develop software. This is to sum up and list the long-term objectives you want to develop. In the final analysis, what tasks should be completed and what goals should be achieved.
First of all, the impact on the company's corporate strategy, the impact on the market, the technical, functional, and everything from these levels describes what tasks we should accomplish. You should clearly define the target before development, and then help you solve the problem. Under what conditions should you use the technology during development, if it meets my goal, and if it does not meet my goal, at that time, we decided to have a comprehensive goal. At that time, it played a major role.
It is easier to develop products for a single customer. Generally, your products are used by thousands of users. At this time, we should consider that different users should be taken care of, and their product capabilities are not the same. Users of different levels should be clear about what they want to achieve. You have summarized this to help you easily make decisions when designing later. How should you design this design function. There is often no big difference between writing these functions and not writing them. In the end, the software does not have any key impact. However, as a result of these jobs, as a designer, Project Manager, you are forced to think about these problems, if you have never thought about these issues in advance, it is impossible to design the software to achieve the previous functions. If you have done this in advance, thought about it, discussed it with the development team, and done this for a purpose.
The above is a high-level summary. Before you describe the features you actually developed, we will talk about a very important summary and use plan. How customers use your software to solve their problems, who they use, who they are, how they use them, how they use the software sequence, and clearly describe them. Generally, we use the story-telling method. When the third party comes to work, the machine may inject a number, save the document, and hand it to Li Si and Li Si for the document, so that we can use the story-telling method to describe it. Another important point is that your description can be of great help to the testing team. During his testing, the internal testing team members can think of themselves as a customer and test the software according to the usage plan you described. Perform the test in sequence according to the usage plan you described. This is a major role for the test team to design their testing solutions.
The customer summed up your functional requirements from the specific use of the software. He used this because Michael Jacob needs to press this key to open the machine, and there should be an output and input column, enter the data and generate the document after you press it. Because of this process, your required function must have this key, and there are several data columns and functional documents to generate. How to use the story described above, and then design and summarize the features to meet your needs, to ensure that the features you designed can meet the customer's needs to follow this step to execute their solutions. In fact, we develop software in Microsoft based on three steps. He wants to avoid having nothing to do with the features you have developed, waste of development. To meet the specific use scheme, we can sum up the usage scheme, because it is such a job to press the key to close the number. The details are described only when the function is described, however, you must first have this key and data column. The priority of dispensable functions should be kept in sequence. All of our functions include P1, P2, and P3. It is important for customers to win the market, develop and be dispensable, which of the following products can be redeveloped. Do this well before development.
With these features, you can describe specific functions. Here we will describe how to use the software. We will first explain why it should be developed, how it should be developed, why it should be used, and finally how it can be used by customers. This part gives a detailed description of all functions and interface designs. For this part of content, you can use an image from start to end to draw out the functions you use. You can use this article to summarize them. It is very important to use a large number of images, because after you become an image, how can you help testers test the image? The function that helps developers develop is to conform to the image you designed. You can draw an image so that the availability engineer can create a sample based on this, and then find the customer to perform a usability survey. These things help manage the entire use function to control operations and quality.
In addition, there is also a very important point. In the design process, there are often many issues that have not yet been solved. In the middle of the design function, it is not to say that development can be done if something is solved, the product is already under development, but there are still many things to solve. Some technical issues, I have to wait for other teams to tell me, or some technical issues to be investigated, or some technical issues that I don't know, after I buy hardware, after the platform is used for debugging, we can understand that such a problem cannot be omitted. to prevent these problems from being forgotten, we also write these problems into the specification book, and a table is all listed in it, with this method, you can check whether the unsolved problems have been solved and should be solved in a few months, which need to be investigated and which need to be further determined. List unresolved issues and make a summary. Who is responsible for the issue? For example, the development team is responsible for a technical survey and writes the names of the persons in charge in the survey. Whether the current status has been resolved or is under investigation. The status is listed in a table and divided into three levels. With such a summary, we can clearly help you track the unsolved problems and the status during the development process. If the project is too large, you can even take out the content and write another additional file. A special document specifically summarizes such things and shows it to other teams, not necessarily in the design specifications, but these content helps you to write down the problem to be solved and help track and manage the process afterwards.
How to write? We have the content of this outline. This is generally the case when writing an outline. First, you organize the content and materials. before writing it, make sure that the content I should write is written in it, just like the outline of each section, write down your ideas. At the beginning, it was written in a skewed way, but it was not perfect. However, ensure that the content to be written is in it, and then go back and change it slowly. Pay attention to the types of your readers. The specification book was read by design engineers and test engineers. The document editing should look at it. They have their expectations for the design specification book, the content they know should be kept in your mind when writing, and you must write the content of these different readers. At last, write your content, make the content as clear and brief as possible, and describe your software development ideas with a large number of images, which is better than writing in ten millions of sentences, there is a saying that the number of words is fixed.
The design specification book for enhanced versions. Sometimes I write a specification book, which is not a new version. Our company already has this product and is already on the market. We are now working on a new version for this company. At this time, we will talk about the changes I want to make to the existing product base. To solve problems that have not been solved before, why should we develop them now and solve problems that have not been solved before? What kind of design should I use to change the unsolved problems in the design of the previous generation. This problem won't occur if you write a brand new product, but in many cases our product already exists and we just need to constantly improve it. In this case, you need to write this content. Another point is that there is not only a picture in the design field, but also a key, data column, and image, which clearly describes what will happen after I press the key, what will happen when the numbers are filled in? Sometimes, you can use the mouse to control what happens when you press the left button or right-click what happens, which should be listed in it. When you build a house, you can clearly describe what kind of bricks and tiles are used to build the house, and what kind of doors and windows and glass are clearly described. The house you build must be what you need, if you draw a rough sketch, the house you build may not be what you need. Also, do not forget the structure of some basic articles, including the title, diary, number of versions, number of pages, the previous directories and chapters, and the markup of different chapters. Will someone else be confused when reading a 200 or 300-page design version, and how to make readers understand what you are writing in it. There is also the internal name of the Company project. If there are many projects in the company, sometimes the project has a code, too many codes may be unclear to the readers, and an explanation of the project content is given. In many cases, documents are used internally and are kept confidential and cannot be circulated. As a project manager, you should clearly inform the team members that this document cannot be published for product development. When writing a complete design document, these normative books should be written in it.
The diagram in the software design specification book shows the software we are currently developing. There is an image showing what the various software components are, mark out what the elements on the specific UI are. After you press the key, what is the role of each key. In my current design, I think it is to bring the existing software together with the software for drawing, and piece together the elements of the existing software using the interface. The software designed seems to be exactly the same. Although there is no such software, there is already such an image, and it will be clearly visible to testers, test teams, or project document editors. However, this practice is very troublesome for many people. I will not draw pictures. There is another method. Microsoft has a template designed using the interface. This is not a real software, but it is similar to it. Describe what each specific function does.
To sum up the requirements, a simple method is to use a column and a number to divide it into several major grades. Generally, we call it 1st. It is easier to use this number, when there is a problem with the design, when talking to others, read my Requirements Specification summary to read my 1A and so on, you can find it. There is a menu, there are all options on it, there is a horizontal bar under the menu, there was no such design at that time, the test team complained to me, said not to clearly mark this, the development team did not test it, and I was unable to test it during the test. So I learned it now and I wrote it clearly. Right-click a menu and make it clear. In the early design, it was determined to be wrong later and should be removed. When testing, the tester saw that the original design was there. Later, they decided not to write it all in it, so that the Tester could see it clearly. Next, we will describe all the user interfaces and see what is going on when the software is started, as well as detailed functions. There will be a detailed description of how to use the storage key. If there is no detailed description, the tester will not know. With such a detailed description of the function, everyone will understand when reviewing the specification book, your design was originally like this. It was reasonable or unreasonable. The elements of each software user interface are summarized in a table. First of all, what is his behavior? It is very important to list all his behaviors, because these are functions that help the development and testing teams test and develop, whether the behavior meets the standards. The situation of the capture and release process is clearly described. All the components in the user interface are listed as follows. What is the shape and color of the cursor? After the design is complete, the development team will not argue about the development by following the developer's instructions, and avoid confusion after the design. If the functional specification description of the entire software is labeled with many images, you need to spend a lot of time describing words, but the key actions are described, key image developers can easily develop Images Based on your needs.