I have also tried to move forward without the document being "naked". It can be imagined that the project may often be reworked at the end. New personnel should desperately read the source code left by the previous person with almost no comments.
Later, I tried to formulate perfect specifications and used a large number of software development document templates. Unfortunately, it still cannot reduce the burden on developers. What is embarrassing on the other hand is that, there is not much better than without a document, because there are very few documents and software that can be fully synchronized during project implementation. A simple requirement document, from the beginning to the end of the project, will often be completely changed. At the same time, it is a waste of resources to spend dedicated software developers to sort out documents.
Instead of doing fake documents and wearing the emperor's new clothes, we should simply be naked. This is my idea, but I have never dared to implement it.
I don't know who said: Software = program + documentation. I agree with half of them and half disagree. Software is what is used for users. If users are satisfied, is a good software, not good software if you are not satisfied. For the user, what he needs to pay is the software fee. Another part of the documents in the software development process is the company's preparation for product upgrade, maintenance, and expansion, you are not obligated to pay for it.
We have been using CASE tools and UML diagrams for communication for a long time. Sometimes it is difficult for these tools to meet our needs, and we will try our best to express our meaning. After using these tools, I feel that everyone has changed from a normal person to a dumb person. Sometimes, a single sentence can solve the problem, but it is more like a half-day gesture.
The adoption of new technologies and new tools should bring about more smooth information exchange between people. If the effect is the opposite, we have to consider why.
It was not until I got started with agile development that I felt a little more cheerful. Although there was no silver bullet in software development, there was always a proper way for developers to climb out of tar traps in different situations.
In the book <effective practices for agile modeling, eXtreme Programming, and unified processes>, the author points out that they do not use case tools in fast communication, they only use a few pieces of paper, and when they capture a pen, they start to draw a sketch. Even, in the second half of the book, when designing the user interface, they are also drawn from the grass.
Maybe it seems silly to me, but to tell the truth, I did not do this. I have always believed that strict management and strict compliance can produce high-quality products. Now it seems that I have misunderstood something. The purpose of software design is to successfully develop a finished product so that users can use it.
During the project process, we tend to focus too much on the scalability and ease of use of the software, so that excessive analysis needs not only provide some functions that users do not need, it also allows users to invest less money than they need, and at the same time, we waste a lot of time.
In XP practice, there are many practices that are exciting, not to mention others. Although XP does not oppose the document, according to its ideas, it provides developers with an excuse to write as few or as few documents as possible. I have never had the opportunity to practice Pair programming, But I intuitively think it is a good thing. Although I don't believe it, it can improve the efficiency by dozens of percent, however, software development is, after all, a mental activity. It is a good way to make a small function and change the thinking.
But in Pair programming, there is something that puzzles me: Generally, it takes about 15 minutes to start a person to do something, and then, any interruption of thinking (including phone calls and questions) may lead to a re-adjustment of people's status, which may take several minutes. I don't think this will make people more focused (the same is true if someone is watching it ).
Because I have no experience in Pair programming, I can't say a few words.