This article only talks about ideas and technologies. First, we talk about the pipeline of Cooperative Development (record life), and then the shortcomings found in this journey and the knowledge learned in the development process.
Development Pipeline
The first Cooperative Development ended in May 8. I would like to recall this experience and the changes in my mind during this process.
The notification of cooperative development was sent in April 4. A dozen people were divided into groups. We can see that everyone was very excited. As this was the first cooperation, each group invited their respective mentors for simple guidance, I talked about the division of labor and precautions during the cooperation process.
As the partner is preparing for the exam, I will complete the preliminary design work. At that time, I felt a little pressure and excited. By April 6, I wrote a project plan and planned the time of each phase based on the actual situation (my partner is preparing for the exam and I want to attend the class. At that time, the entire project was planned to be completely completed by the end of April. (For the first planning Gantt chart)
From the time I made the project plan, I thought that three people must make the system as perfect as possible. For the first cooperation, I did not want to use the things I had previously developed, including documents and UML diagrams. I decided to discard them all and start from scratch.
Two days later, I held an exchange meeting with my partner to discuss my personal experience and related technologies during development. Then, based on the database I designed, we discussed the areas for improvement. In addition, we briefly discuss the locations where the design patterns should be used.
It was easy to write a document within two days. When writing a document, you also want to write the document as standard as possible. You cannot create a template as you like during personal development, and then modify the content and paste a few images. Therefore, I borrowed two software engineering books, referred to the document template above, and added the templates I found online to write various documents (I feel like I am thinking a lot ).
Since I did this in my personal development before, and I also gave the template as a result, I still cannot understand many things when developing a new item. Therefore, it is easy to design according to your own ideas. The design includes class diagrams, Use Case Diagrams, sequence diagrams, and various documents. The only problem left behind is the use of the design model. The mentor asked us to use as many design patterns as possible, regardless of whether it is reasonable or not. At the first meeting, I also thought a lot about the Model and Application Location Based on my mentor's ideas. However, when I drew a class image, I found that I didn't know how to add several models, but there were a lot of unreasonable problems, it doesn't seem like you can use it.
After my partner finished the test, I immediately organized a meeting to discuss the specific application of the design model, so that everyone could test the application of the design model based on the first communication results, two days later, I organized the meeting and finally determined the feasibility of each design model. However, at that time, I felt that one or two of the functional designs were not perfect, and I was unable to proceed. This is a big misunderstanding that I got into. In fact, at that time, we could start coding and then complete the diagrams and documents during the process, but I don't know why I just thought the design was not perfect and I couldn't start. Later, due to time pressure, we continued down.
The next step is coding. According to the picture drawn, EA generates the system framework, uploads the generated framework and documents to SVN, and then assigns permissions to everyone, it took about four days for coding. Of course, with the encoding process, we will continue to find some problems. Of course, they are all small problems. If there is any problem, we will communicate and solve the problem, then improve the diagram and documentation. The problems left during the previous design will be solved.
Coding is a test. All kinds of problems are inevitable during testing. Everyone is very active and will not let go of every problem. Many things have been learned in this process.
Several major problems found
(1) Do things too well. Everything has been done for the first time. For the first time, it is impossible to do well in one step. During development, since one or two functions have not been well designed, they have been under pressure, which wastes a lot of time and reduces development efficiency, and lead to project delay (this problem has been committed before, but this time still failed to be avoided, it is worth pondering)
(2) The continuous collision between theory and practice makes the theory more perfect, and the practice is more evidence-based. Documents and figures cannot be designed too well, and some problems will always be missed. coding is carried out under the guidance of these two theories, and then the problem is discovered, so that the diagrams and documents can be improved. design and coding are complementary, the theory cannot decide the practice.
(3) a little quick success. I realized the powerful functions of the EA tool, but in order to catch up with the project, I did not try to study it, resulting in a lot of inefficiency, and the project was postponed.
What I learned
(1) first, I learned how powerful the team is. Compared with my previous development, it is much easier. I only need to assign tasks with my partners, and they can do without discounts, even new things that have never been used, tasks assigned to everyone have never been hesitated, and answers have always been "OK" and "no problem ". It gives me a very practical feeling and a sense of security.
(2) Communication is very important. In the past, there were very few exchanges with students, and almost all of them made things and learned things. As a result, they found that they were behind others without knowing them. On the same issue, we all have different opinions. Only after communication can we take advantage of our personal skills and share our good aspects with you. Closed doors are doomed to lag behind. Through this cooperation, I learned a lot from my classmates.
(3) Sharpen the knife without mistake. When I started using EA, I learned only a few simple functions and thought that drawing is enough to cope with the problem. I didn't study it in depth. As a result, I didn't write the notes later, so I had to work hard and rework. I feel a little quick and quick. Some things are worth our time to study. If we study them well, we often get twice the result with half the effort.
(4) Don't be impatient with your work. You may encounter difficulties in doing anything. You may have a lot of troubles at once, and you may feel that you don't know how to start. You just want to escape. However, you can't solve the problem by avoiding it. You only have to calm down and handle it one by one. Finally, the problem is not so terrible.
These things may have been experienced before, and with their experiences, they will become more and more impressive. I would like to summarize my thoughts and hope that the future growth disadvantage will be an advantage for continuous improvement.