Week 8 Reading Notes

"Dream Break Code" after reading

The book Dream Breaking Code describes the difficulties and hardships facing software engineering.

        The most impressive part of the book is that the goal seems to be right in front of you, but after you cross a big mountain, you find that there is a new mountain between you and the goal. The goal seems to be within reach, but in fact every time you think you have achieved the goal, you find new problems in front of you. Just like Zuma's game, it seems that it will never be finished.

        I had a deeper experience with this when I was doing individual and pairing projects. When I started doing it, I thought I only needed to solve problem A. After solving problem A, problems B and C appeared. The more problems I solved, the more More doubts and questions. In the end, I handed in a version that I was very dissatisfied with. However, some problems were difficult to solve and disturbing, and it seemed to have entered a black hole.

        There is an image metaphor that can be used to describe this situation. If all problems are regarded as a plane (of course infinite), the part you understand is regarded as a circle, the size of the circle is the knowledge you have, and the boundary The point of contact is the problem you are facing right now. When you solve the current problem, the area of ​​the circle expands, and more problems are exposed.

        This makes me feel that a good software does not necessarily mean that all problems are solved, but most of the important problems are solved, and other problems are covered and hidden (this hiding does not mean hiding the performance of problems, but hiding them will touch this problem), which can be called a good software. This means that the shape of each software is not necessarily a circle according to the previous metaphor, and it will evolve into various other shapes according to needs.

        In order to achieve this goal, the clarity of the goal and the accuracy of the requirements analysis are very important. They allow us to focus on solving the most needed problems, and let our program develop into the shape that a requirement requires him to become.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324966201&siteId=291194637