Backend hindsight

Hindsight

Vision and goals

  1. Our software to solve the problem? Whether clearly defined? Is there a clear description of the typical user and a typical scenario?
    We want to solve the software problem introductory beginner programming language. Not too well defined, not carefully investigate the difficulties of entry of the user.
    A typical user is a beginner's programming language for the time being can only learn python language (language and that there is no basis for it before).

  2. We reached the goal yet (function originally planned to do a few? As originally planned delivery time delivered what? Originally planned to reach the number of users reached it?)
    To achieve the basic goal of the planned parts are completed, and planned delivery time.

  3. And on a stage compared to the quality of the software engineering team to improve it? In what has been improved, increase the number of specific, how to measure?
    Supreme stage.

  4. Of users, users in advance of the expected agreement on acceptance of the important functions and us? Our goal from the closer it?
    We do not consider the amount of users at this stage. That is, while retaining a multi-user and multi-user database model at the bottom, but the alpha stage we only use a single user testing.

What are the lessons? If history all over again, we would do anything to improve?
Push If after all again, we will exchange the front and model into a more important position, to complete the task we found that the project mainly rely on the other two sets of push. When they need to test a feature that we found not completed then continue to do it. All again, then we will use this as motivation to do a good job of back-end

plan

  1. Is there enough time to do the planning?
    The whole process of the project according to plan, but this plan has undergone great changes in the first days after the start of the project. We have had plenty of time to do the planning, but the work on the first day scrum leader announced to leave, and has scheduled two players dropped out of the project so that was a risk we do not have to estimate, is the team " temporary "exit problem. The main problem is not taken into account, and some did not have a beginning or no elective credits students determine alone solution is to build up the rest of the team flew to redefine the program.

  2. Team in the planning stage is how to resolve the disagreement colleagues for planned?
    All plans after the team clinched the two previous meetings, fairly and smoothly carried out. Indeed there will be different views before the meeting, but sub-module because of our relatively clear, different people are carried out to achieve part of their own way, just need to tell the companion interface can be, how to implement the module is fully completed by the personnel to achieve. Functional interface portion of the total implementation is determined by the documents maintained within the group, there are different opinions immediately meet to discuss modify the document. Secondly, there are different views on some of the players look good offices or consult mentor and assistant to solve.

  3. Are you the original plan of work finally done? If you have not done, and why?
    Within the work group members have completed the program.

  4. We have not found some hindsight you do not need or do not count for much?
    Sandbox part of the beginning of the realization of a version number change, wasted some time. Communication within the group took some time, and finally found another important thing is communication between the two groups.

  5. Whether each of the tasks are clearly defined and measurable deliverables?
    Yes. Three main modules within our group functions, data management, front-end interface end model with sandbox and design-related personnel have clear standards and testing interface standard. On the doc clearly written out of the mission is there, but some very small bug very quickly solved there will be no record.

  6. The whole process if the project were carried out according to plan, the project what had happened? What are the risks was not estimated, why did not estimate the?
    Whole process of project according to plan, but this plan has undergone great changes in the first days after the start of the project. We have had plenty of time to do the planning, but the work on the first day scrum leader announced to leave, and has scheduled two players dropped out of the project so that was a risk we do not have to estimate, is the team " temporary "exit problem. The main problem is not taken into account, and some did not have a beginning or no elective credits students determine alone solution is to build up the rest of the team flew to redefine the program.

  7. There is no buffer left in the plan, the buffer role it?

We did not leave a buffer in the plan, in fact, there are many small bug in the docking process. If you have two to three days these buffers can be more elegant completely fix bug out, rather than selecting a patch in the form of second best.

  1. Future plans will do what changes? (Eg: buffer defined, overtime)

Future plans will do what changes? Beta phase we will set up a buffer about two days, and require back-end model and view layers work to decouple the better, write a document model to call the database interface layer to the view layer.

What have we learned? If history all over again, what do we improve to do?
Alpha stage in the main study of software engineering in the communication, use git writing, the definition of good api interfaces when exchanges and cooperation, mentioned issue when the FBI and then the corresponding responsible solution.

Resources

  1. We have enough resources to fulfill the tasks it?
    Time server hardware resources and take a two-week background.

  2. Time and other resources required for each task is how to estimate how accuracy?
    Time required for each task is estimated at the outset, there are added later, after all, only the accuracy of previous estimates, not too accurate.

  3. Test of time, manpower and software / hardware resources are sufficient? For those without programming resources (graphic design / copy) whether underestimate the difficulty?
    Test of time is in each of us to write each module they brought a small test, time is enough. You may end up with the FBI when each group will feel the test is not enough.

What have we learned? If history all over again, what would we do to improve?

Change Management

  1. Each relevant employees are aware of the news in time to change?
    We mainly take the form of exchange of teams in the group, once the things merge into the branch staff will remind the group. In addition to the interface changes the way, but also to open a small down will discuss, amend doc.

  2. We used any way the decision "to postpone" and "must be achieved" feature?
    We decided on the development phase of the alpha stage doing MVP, so when the three groups discussed a good discussion on what function is to be done, the final alpha release version, they also have done it.

  3. Exports Items (Exit Criteria - what "done")? Has a clear definition of what
    is not specifically clear definition

  4. For the possibility of change can develop contingency plans?
    We found only three students can take part in the first day of the mission, so an urgent meeting to change the plan, and re-assigned tasks.

  5. Whether employees can effectively deal with unexpected work request?
    Back-end and front-end in the FBI process has raised demands not thought of before, we are all resolved.

Design / implementation

  1. Design work at what time and by whom done? Is the right time, the right man?
    Database design too early, but if not you design a database problem will not continue to progress.

  2. Design work has not encountered ambiguous situations, how the team is resolved?
    Very much, basically realization of personal time to resolve itself

  3. Does the team use unit testing (unit test), test-driven development (TDD), UML, or other tools to help design and implement? These tools work? UML Documentation beginning of the project and compare the current state What is the difference? How do these differences arise? Do you want to update UML documents?
    Before we write interface unit is to require everyone to do their own testing, although the final docking did not look when used too much. But overall, the use of unit testing students a bug is relatively small.

  4. Bug What is the function of generating the most, and why? After publishing discovered something important bug? Why are we in the design / development when there is no thought of these cases?
    Submit bug up to produce code that runs part, because this part to implement the logic of the most complex, the user submits according to running results were treated stdout and stderr, but should beautify the stdout and stderr returned to the front end. And also you need to interact with the model group and multiple interfaces hint in this implementation api's. Important bug discovered such error is returned to the front end of a random file name, hint system has been not on the butt, and so many requests will crash. Development when there is some psychological preparation, but due to the conditions of competition or logical decision, not doing some minor problems when docking really only found one by one.

  5. Code review (Code Review) is how to proceed, whether the strict implementation of the code specifications?
    I did not do too many code review, mainly after an FBI bug responsible for the students to review the code look wrong.

Test / release

  1. Whether the team has a test plan? Why not?
    There are plans to test, before the FBI we have done basic tests.

  2. Whether formal acceptance testing?
    No formal acceptance

  3. Whether the team has the tools to help test test?
    Use testing tools postman api

  4. Team is how to measure and track the effectiveness of the software? From the results of the actual operation of the software, these tests work useful? What improvements should have?
    No specific implementation

  5. What unexpected problems found in the process released?
    When the FBI found some unexpected bug, you can not use the normal system fabricated data when you have crazy troubleshooting.

What have we learned? If history all over again, what would we do to improve?
All over again, then we will write the code a little clearer, better decoupling, code review do better. No code review code really easy to go wrong, and the whole time the FBI is difficult to find where the bug.

The role of team management, cooperation

  1. How each team is to determine the role, is not the best use?
    Basically the best use of each character. No development experience django before you do,

  2. What have mutual help among team members?

  3. When the issue of project management, cooperation appears, team members how to solve the problem?
    We should discuss with each other, the final decision by the leader.

to sum up:

 你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
  你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
  你觉得团队在这个里程碑相比前一个里程碑有什么改进? 
  你觉得目前最需要改进的一个方面是什么?

Control principles of agile development, do you think your team is doing the best of which are several principles? Please list specific examples.

As we mentioned earlier, the quality of software engineering software quality + quality = program, and that the team in the next phase of how to improve the quality of software engineering it?

  1. Quality code management should be specific on how to improve? What is the quality code reviews and code standard should be raised?
    Quality code management needs require every developer has to comply with some of the conventions and discuss in advance, and agreed to update the process of cooperation, such as arrangement, standard project directory of test code, and so on.

In addition to code review, or other code that the original author of the best developers involved, to avoid some of the errors and mistakes in understanding personal bad habits cause, but also can monitor the degree of regulation code of each other.

  1. How to improve the whole process of the specific architecture? How to improve quality through reconstruction and other methods to improve the quality of how to measure?
    Django framework we use in Alpha stage did not actually use some of its high-level standard, elegant architecture is not enough, but it is very easy to use, if you use the template provided it can make architecture more clear. The reconstructed object is to allow people to faster and more comfortable to understand the code, the main measure of improving the quality can be measured by a number of standard number of documents, number of API, a single API functions on the basis of the length of the holding rigorous logic.

  2. Other application software tools, how to improve?
    Read the official document or in the use of software tools fast "learning by doing" only increase, and do not know where to file timely fashion or ask familiar with software developers.

  3. What specific projects to improve the management have?
    Timely and effective scrum, timely iterative code also facilitates the exchange.

  4. Project tracking user data, plans to raise what? For example, how do you know / week Daily active users and other data?
    Also need to improve the status of the user's answer is to monitor time interval. We have to store user records for each Action, including the user clicks on the issues, based on their record number of clicks and the answer can get active users.

  5. How to improve the quality of project documentation?
    With some tools to make collaborative project documentation, such as hackmd and so very easy to use.

  6. For people leadership and management, what specific areas for improvement? See "Building of the law" On PM, the section of performance appraisal, or "human element" and other reference books

  7. For software engineering theory, the laws have any experiences or disagree?

Guess you like

Origin www.cnblogs.com/vo1ad0r/p/11938725.html