Few IT companies in China list document design as a part of software design. Many of them may be due to development costs. To do document design, more manpower and time are required, that is to say, more cost is required. I was also confused about this. Domestic IT companies are very competitive, and time and cost are often the first consideration. In fact, these are common faults of small companies, and many small companies are also ruined. The main reason is that development is in disorder until the final project cannot be delivered or the project cannot be delivered on schedule, or because some key employees leave, the project cannot be further developed (because there is no document, it is very difficult to hand over). It can be seen that the short view of quick success can only harm yourself. I always like to take document design as a summary in the Process of Program Development (how can I keep improving without summing up what I do ?), This conclusion may be done before the code is written. It may be done after the code is written and fully tested, because sometimes there is no idea before the code is written, and there is no idea after the code is written, at this time, I will write the document carefully. On the one hand, I can straighten out the previous ideas, and on the other hand, I can check again whether previous ideas have vulnerabilities, some problems may be found when you read the saved documents for a long time. When you find that the Code is not understood, you can use the document to know what the idea was at that time. My memory is not very good (I have never forgotten the super capabilities). If the logic of the code I wrote a long time ago is complicated, I often forget what happened, and I do not like to read the code, I do not like to read the code written by others, because every time I read the code, many brain cells will die. I do not like to write lengthy comments in the Code (unless necessary ), I like clean and concise code, because some designs can be expressed in a few words. I think it is best to understand the code through the document. You may have read the code that can be understood in one day, but you only need to spend five minutes to read the document to understand the code. The code is abstract and boring, but the document is image or even vivid, so reading the design document is a matter of getting twice the result with half the effort, I believe that no programmer only prefers to read the code without reading the document when there is a document. unless he is a computer rather than a human brain, it takes us some time to do the document, maybe we can save several times or even dozens of times in the future. Documentation is also a good tool for developers to communicate with each other. That is, people who can be eloquent will ignore some of the details in the design process. The document allows you to write down all the details and never lose them. A complete document can make you better understand, in particular, illustrated documents can make people more accept your ideas. In the case of remote communication, the document is no longer a good tool, and it can save a lot of communication fees. If there are documents, it is also very easy for developers to hand over between them. They do not need to tell the code line by line about how to do it. Some things are not a problem of code, for example, if there is no document in the development environment, you have to help people build the development environment step by step. If you forget some of these steps, it will be even worse. Writing a document is really annoying (especially for those with poor writing skills), especially when writing a document for the first time, does it make you feel like writing code? In fact, this is also the first time we write code. Why is writing code as "writing thousands of lines" as writers do? Everything becomes simple as long as you are familiar with it, and now there are many document templates, as long as you fill in the template, but I do not like to copy the template format, in some cases, templates cannot be applied. My principle is that you only need to apply the template to yourself and others. Of course, rigor is also very important, I don't like documents with no heads or tails listed. At least I have to make a summary. For some people (such as your boss), just read the summary, they do not have to and do not have time to learn in detail, as well as the author, time, and log modification. (like the code, there is also a maintenance process, the lack of maintenance documents will harm people ). After talking about this, let's take a look at the cost. Does writing a document really increase development time and labor costs? I think that if we design documents strictly in accordance with the standard software engineering philosophy, it will indeed increase a lot of investment in costs, and some small companies cannot afford it, in fact, the dognistic idea of software engineering has been doubted by many experts. You need to know that the idea of software engineering is not yet a mature one. There are still many questions to be discussed, but there is one thing that cannot be doubted: document design should be an integral part of software design. The key lies in how to adapt to local conditions and change from time to time and choose a document design requirement that best suits the company, from the perspective of cost and development time, document design can be more flexible. For example, if you do not have time, you can first write down the key points of the design at that time, wait for time to complete the document design. Cost problems are flexible and controllable. As long as you have the heart, there is no insurmountable problem.