Question Software Engineering Review and personal summary

Review questions

Issues blog link

Question 1

problem:

    结对编程有如下的好处:
    ......
    总之,如果运用得当,结对编程可以取得更高的投入产出比(Return of Investment)

Here is a very general input-output ratio. Pair programming needs to go through run-in phase, at this stage, even to achieve the agreed code style, and many other standards, but because of the gap between skill levels and personalities, all kinds of differences in motivation way of thinking, resulting in two people in the run-in phase the investment is huge. Such input and pair programming with respect to the review of how to weigh the advantages compared to?

Reply:

Pair programming with respect to the code review has better real-time and communicative. Pair programming division two different people enter the code known as the "driver", comments and review the code of people called "pilot." In pair programming during the "pilot" to play a major role in correcting the "driver" of the "driver" of ideas and direction in time correction throughout the process; while many of the key issues in the realization of the details, they can in-depth communication, the method usually can be resolved more quickly than a single program.

Code review is requested reviewer first through code to understand the idea programmers, which from the start reduces the efficiency; and the review of the deficiencies need to be re-modify, test, review, these tedious work to further reduce code review effectiveness.

In the course of the junction of the programming project, I and his teammates had in-depth communication, so that aspect of the core algorithms, interface design, etc. play into highly consistent, so that when we actually write the rapid progress and achieved the desired results.

Question 2

problem:

    随着时间的推移,这几类功能也会发生变化,例如手机的多点触摸曾经是“惊喜”的功能,后来是所有厂家竞争的核心功能,再后来已经是最基本的功能了。

In the book talked about, survival of the project is 18 months. Secondly, project development requires a certain period. In this period, the nature of some of the demand may soon change, while others demand will not change for a long period of time. Therefore, in the early demand for analytical work, it should be "surprise" core requirements and functions as an indicator of demand for consideration to the basic function of the speed of decline?

Reply:

The team work in our development cycle is longer, but in fact longer function type change cycle. From the practical realization of our need for analytical point of view, more or start from core functionality. Perfecting the core functionality, we developed a list of optional features and functions from the practical, inspect and implement aspects of research difficulty, ultimately determine which features development.

Question 3

problem:

    我是做PM的料么?在校学生如何为成为PM做准备

After reading this chapter, PM makes me feel more needs all aspects of the comprehensive ability. A good PM of course are strong in every aspect, but it is also difficult to achieve. In case of lack of capacity and experience, as students, we should start from the beginning of the underlying technology development positions, or that the PM should start earlier ability to exercise?

Reply:

After team practice programming, I learned more about the position and responsibilities of the PM. I think the technology experience for PM is not a necessary option, but it will bring significant benefits with relevant technical experience will give PM project management. PM responsibilities that more needs analysis, project management and product quality management. PM can not tech-savvy, and even technology only reached the level of understanding can also be; whereas a deep understanding of the technical aspects of the team for the PM division of labor and responsibilities, as well as the progress of the project and quality management has a better measure, which for team management It is very favorable. So if you want students to become PM, can start with a simple project started trying to lead a small team to develop the project, if we can simultaneously participate in development will be better.

Question 4

problem:

    怎样才能定义典型用户呢?我们首先要定义用户的角色。正如戏剧中有正面和反面的角色,软件系统也有受欢迎的和不受欢迎的典型用户。如果用户有不同的安全需求,切记要定义不同的角色来适应这些需求。

I believe that this step is very important. Such as Taobao brush single year phenomenon, if the site planning pre-defined image of the typical user of such brush single brush single persons and businesses, is able to avoid scalping phenomenon. By extension, how a more systematic and comprehensive definition of a typical user, the problem I think is valuable.

Reply:

Define the typical user to consider all aspects. For our team to develop the project, the more obvious because the user groups and target groups not many, nor does it involve any interest, so basically only teachers, teaching assistants and students of these three roles. However, for electricity providers, have a variety of needs of sellers and buyers, as well as from profit-man. When you define a typical user will take into account various factors sellers of business category, buyers of consumer psychology and consumer levels. Although prevent scalping behavior belong to more risk control section, but it is the difference between single-user and ordinary users to brush this respect, only the precise definition of the typical user and user behavior, to be able to more effectively distinguish between the user types. At the same time, a single brush can sometimes bring benefits to the electricity business itself, so it need more measures to enforce laws and regulations to curb scalping phenomenon.

Question 5

problem:

Many software currently on the market flooded with ads, and traffic for advertising revenue, advertising is often designed to induce even the most prominent of the interface the user clicks. These ads are added greatly reduces the user experience. This practice and desirability?

Reply:

People have to just rice thing. But unreasonable advertising design does greatly affect the user experience. So even if the ad also requires careful design, consider the ad content, ad placements and how other factors.

Knowledge Point

Requirements phase

We learned NABCD analysis. And because the project is inherited, we have a competitive analysis, similar projects will not only market as a competitor, also analyzed the pros and cons of the original project.

design phase

Designed to be demand-driven, some seemingly high technical difficulty functionality may not actually match the demand value. First define the typical user, so as to achieve a clear need to function, and then to design functional details.

Implementation phase

Version management using GitHub project, fir.im publish version management. However, do not completely separate version of the development team, this point there are many places worth learning.

Testing phase

As a developer, mainly for unit testing. Testers for integration testing, stress testing, real-world testing and automated testing methods only stay in the understanding of theoretical aspects.

Release phase

Posted stage for the release version of choice; APP release has a lot of the conditions for approval, have a significant impact on the promotion and application of market choice and the choice of distribution channels would be the product.

Maintenance phase

There is no test for the bug and to improve some of the problems user feedback, timely response.

Experience

The first is the twinning project. Pair programming really need both understanding and constantly running. Understanding here contains too many aspects, including the degree of attention of course, the attitude of other operations, these factors will lead to mutual influence between teammates. Pair programming advantages and disadvantages are very obvious, making it suitable scene by a lot of restrictions. In addition, time is also a factor difficult to reconcile. In short, for various reasons, in which a pair of shorter period, our twinning project did not achieve good results at a later stage. But do not deny that pair programming for our initial project of understanding and cooperation has played a significant role in promoting.

Followed by the project team, and I'm lucky to be able to join the team now. All my teammates have a great passion for things within their area of ​​responsibility has never shirk any and delays. We are working very hard, PM for the project, document and publish all along dedicated app, it not only has a solid development and testing of technology is also a serious and responsible. We are also very active regular meeting, the meeting has generated every idea of ​​the collision and new ideas. Although the overall project is not too much difficulty, ultimately we have developed a basic function of a perfect app, even got some official recognition of garden blog, I am pleased.

Team project is also inadequate, me personally, some weakness in the latter, especially in the reconstruction phase of app UI I have not been able to do more responsibility. But UI fit me to develop a page is completed by teammates to help, but in the meantime I just realized a few small features, more ashamed.

In addition, the project notes and documents are still imperfect, and this is very regrettable. When we first took over the project, because they do not familiar with the framework of the project, nor very detailed documentation, we spent a lot of time the project has been familiar with the fishes, interfaces and functions and even some we have achieved is also re-implemented again. Review our development process, although the added certain comments, write some documents, but these documents are still not formed and comments system, more messy.

Guess you like

Origin www.cnblogs.com/swearitagain/p/11082167.html