Vision and Objectives
1. What problems does our software solve? Is it clearly defined? Do you have a clear description of typical users and typical scenarios?
Answer: Our software mainly solves the problem of extracting information. Clear definition: The content to be extracted includes the title, author, keyword, and question answer equivalence for computer science-related content. The storage medium of information is mainly Html,pdf,word and Excel. This is a dedicated software whose upstream and downstream interfaces are databases. Our users are the developers of the genius website, who use the information we have processed and stored in the database.
2. Do you have enough time to plan?
A: There are also plans for each stage of the work
3. How does the team solve the different opinions of their colleagues about the plan during the planning phase?
A: First of all, we have a discussion, people who hold different views have fully expressed their views, so that we can finally form a more consistent understanding, the details of the problem by voting to solve
user volume, is the user's acceptance of important functions consistent with our prior assumptions? Are we closer to the target?
A: The first phase has not touched on this issue.
Plan
1. Have you finished your original work? If there's anything unfinished, why?
In general, there are one or two functions that were intended to be implemented because they did not connect well with the next group, and were temporarily shelved.
2. Did you find that you did something that didn't seem necessary or valuable afterwards?
For the time being, we think that the practice of soft work is meaningful.
3. Is there a clearly defined and measurable deliverable for each task?
Well, our final measure is that we can use it.
4. Whether the whole process of the project was carried out according to plan, what risks were not estimated at that time, and why not?
The whole project subject according to the plan, some of the problems encountered in the halfway through the efforts of everyone has been resolved. In order to reduce the risk, we first improve the performance of the program while keeping the interface intact. For the new feature, we still choose to embed it on the original interface. This ensures the stability of the software to a great extent.
5. Are there any buffers left in the plan, and does the buffer function?
There is, of course, a role, because not every member can be in time to complete the task, especially everyone has other tasks in the body, leaving the buffer zone can be adjusted for future tasks to set aside time
6. What changes will be made to future plans? (example: definition of buffer, overtime)
The plan may be more compact, and PM will also refine the task.
At the same time we will strengthen the supervision of the team members, so that the quality of the software is higher.
What have we learned? If history does it again , What improvements will we make ?
Unfortunately, for iterative projects, we have no opportunity to experience the entire process of software engineering. At the same time, due to the lack of documentation left over from history, we have not been able to experience the benefits of iterative software development. Subjectively, we are more like firefighters, get code that lacks annotations, and, without additional information and help, tune and optimize the code and add functionality. So, more, we are learning software engineering through counter-examples.
Resources
1. Do we have enough resources to complete the tasks?
Yes, we need to check the relevant technical website in time, understand the latest methods of the features we need to implement, and modify our own code.
2. How is the time and other resources required for each task estimated and how accurate?
Initially, we estimate the degree of difficulty of a task by ourselves, and consider some maneuver time in the estimation, in general, these estimates are not very biased.
3. Is the test time, manpower and software/hardware resources sufficient? Do you underestimate the difficulty of resources that do not require programming (artwork design/copywriting)?
1) In fact, we lack the mastery of some good testing tools, which is the problem we need to solve in the next phase.
2) Because this is a back-end software, the artist does not need to consider, and the copy is required for every software project. Enough detail to make the software development and maintenance can be greatly facilitated. In terms of copywriting, we are faced with little difficulty. The reason is based on the following points: 1. This is a dedicated software in a feature set that does not require the use of multiple words or more documents to be written according to the user's circumstances. 2. In the development process, because reading code is the basis of our work, leaving detailed comments on the code does not pose a challenge.
4. Do you feel that what you do can be done by others (more efficient)?
We all feel that we are not doing our best when we finish our task, and we always feel that others are doing it quickly, from this point of view, yes.
Change Management
1. Every relevant employee is informed of the change in time?
Yes, we took full advantage of project management in TFS
2. What approaches have we adopted to determine the "deferred" and "must be" functions?
1) Comparison of project delivery time and task estimated time
2) According to the necessity of the handover between the two groups
3. The export conditions of the project (exit criteria– What do you mean "done") have a clear definition?
Storing the extracted information in a database is a basic export condition.
The accuracy of the information is a higher requirement for export conditions. At present, we can only use the intuitive experience to determine the accuracy level.
4. Can a contingency plan be developed for possible changes?
In fact, we don't expect much change for dedicated software. If there is a change, we will determine the urgency of the time to go through the completion of the requirements analysis + design process or directly proceed to complete the most basic requirements.
5. Are employees able to effectively handle unexpected job requests?
We actually encountered some situations in the implementation process needs to change the plan, through PM's timely communication, everybody can complete. For example, due to the absence of office-related plugins on the server side, the office-related conversion cannot be used, and the release version of the feature is deleted.
Design/implementation
1. When and by whom is the design work done? Is it the right time for the right person?
Presided over by PM, then everyone met to determine, is appropriate.
2. Is there any ambiguity in the design work and how does the team solve it?
Yes. At the beginning of the task to understand not enough, designed some unnecessary features, and later in the implementation process, with the knowledge of the code deepened, we corrected the design in time, but also rescheduled the task.
3. Does the team use unit test, test-driven development (TDD), UML, or other tools to help design and implement? Do these tools work?
Subject to database connectivity, we only tested methods other than database connections, which is a good way to find bugs, but there are still situations where building test cases can be cumbersome.
Behind TDDUML I do not understand "this you do not understand, too slag
Since this is not a very large project and does not need to be redesigned, we do not consider it necessary to use TDD and UML
4. What features produce the most bugs, why? What important bugs were found after the release? Why didn't we think of these when we were designing/developing?
Database connection This is a lot of three groups used together, there is a problem of communication, so the situation is more incompatible.
There is no post-release situation
5. How is code Review performed, and is code specification strictly enforced?
The first is the use of the form of end-to-end programming, from the beginning of programming to reduce code specifications and bugs, and so on, in addition, the task groups cross the Black Box test, PM also the main functions were tested.
Test/Release
1. Does the team have a test plan? Why not?
No, we didn't pay enough attention to the test at this stage.
2. Have you conducted a formal acceptance test?
. Before the release, the programmer sat together and went through the process, testing all kinds of situations to ensure that the program worked properly at the time of release.
3. Does the team have testing tools to help test?
We tested the functions related to some core functions using the Unit test tool provided by vs.
4. How does the team measure and track the performance of the software? Is it useful to see how the software actually works? What should be improved?
Our software effectiveness is less focused. From the actual running results, it is possible to complete the processing of the data in a completely acceptable time.
5. What unexpected problems were found during the release process?
There are some file-related bugs, such as the file does not exist, the content can not be read, some of the efficiency of the cycle is too low, we have solved these problems individually
Summarize:
What grade do you think the current state of the team belongs to in Cmm/cmmi?
Which stage of the budding/running/spec/creative stage Do you think the team is in?
Specification.
What do you think the team has improved in this milestone compared to the previous milestone?
We are able to work together as a team and start to know how to write the program in accordance with the agreed rules.
What do you think is the most necessary improvement in the present?
The entire team needs to work in a more compact way.
Attached Members discussion Photo:
M1 post-mortem analysis report and summary