Summary of software engineering m1/m2 of "personal reading homework"

Source: Internet
Author: User

Link: "See the five questions of rapid software development"


First, the more clear question

1. In the first case of the article on Square_tech, code testing and optimization is done after all the programs have been completed, which should not meet the requirements of fast software development. Will the software development process be faster if the test engineer joins the software development at the very beginning?

Before the team project, while not particularly familiar with the work of the test engineer, it would certainly be useful to think that since it is a separate list of roles in a software development project. Why did you ask this question, but also because when writing the program is to design the test cases, and all the code is written after the test. But after reading the book "Rapid Software Development", I feel that testing should start at the beginning of software development. Since this book does not specifically cover this issue, I have consulted other blogs in other books and blog parks. Then found that the test engineer is not just writing test cases, he sometimes plays a role as a product manager, to stand in the user's use and needs to think about software testing and problem reporting, but also according to the problems and requirements can be thought of with software development engineers to negotiate, to assist the development of SDE. In the M1 phase, our team did not take into account the problem of testing, just think how to achieve the seniors of this project, more details is how to transfer the app to the Android phone. Perhaps the reason for the first contact, do not know how to start, the networking stage after the problem, the project is shelved, because in advance do not know this error, so how also debugging is not good.

2. I have never been clear about the difference between several pm. Although I looked up some information online, I still don't understand what the difference between Product manager and program Manager is. In the book "The Beauty of programming," I learned that Microsoft's PM belongs to R & D, which means that program manager belongs to research and development, but "the way to move mountains" in the initial establishment of the mountain company when said PM do not write code, is this it?

Now think about it, the problem suddenly exposed their own anxious intelligence and the software industry do not understand. The Product manager and the project manager, in addition to having a suffix "manager", should have nothing in common, nor do they know what they were thinking at the time. In a metaphor, a product manager is a bridge that connects users and project teams, or a market where users and project teams can trade. And the project manager is leader, if the project team members compared to neurons, then the project manager is the nerve center.

3. In fact, I do not understand that since the effective development, why also need rapid development. Because the comparison from "rapid software development" can be seen, the effective development of the product is better than the rapid development, and the progress and costs will not be too poor. I know that the software industry is very competitive, whose products come first, who is likely to seize the market, but if not good enough products, when the better products come out, will not be replaced? Even if it is possible to make an adjustment after the first listing, it is possible that the energy expended will be greater and the time will be longer.

This is the question I now think, "Fast" and "fine", that is, "rapid development" and "effective development" is often difficult to choose. Some things you are responsible for its refinement, it does not need to, this is my internship in the Beihang portal site to understand some things. Internship, I hope that each of my topics are able to achieve their desired effect, can do it? The responsible teacher told me that as long as you want to do it can be done, but cost-effective? There is a word called "value for money", the price is not high, and why bother. On the other hand, is not partial section the truth, any one has a utilitarian nature of the project, including commercial projects and classroom work is this category, business projects to be profitable, and to profit is sure to defeat competitors, market change, of course, time has played a decisive role, first into the market will occupy a certain opportunity , there is a lot more time for the next layout and adjustment and so on favorable factors. And each classroom big homework has a deadline, the team project exists competition, this time becomes the fixed value, namely time is certain, depends on you to go to the Sahara or the Cape of hope. In general, it is two things that improve efficiency under the premise of effective development, or improve quality under the premise of rapid development. How does it feel to say and not say the same.

4. is a product manager or test engineer (assuming only one) in a small project team to know more about this product?

My question is not to say hello, not to define how small a small project team is. However, as far as our team and the other teams in software engineering do, I find that the most knowledgeable product is not a test engineer or a product manager, but a programmer. Because in a small project, the user requirements of the product and other non-technical factors are not the programmer can not cope with, so the core of the small project is technology, it does not require complex product research and design, and does not require fancy and imaginative operation. Baidu and Ali although in all aspects are not weak, but because of the values and positioning of the two companies are different, Baidu more heavy technology, Ali heavier other.

Second, the problem of confusion

5. The core of a chief Programmer's team is the chief programmer, but such a team has a huge demand for risk control, and if the lead programmer in the team leaves the project in the middle of the day, then make sure the project is working and how the team can salvage it. What other forms of team need to be transformed into

In fact, our team should be even a chief programmer team. One of the most well-programmed players has logically become the lead programmer, and has taken the most daunting task, although we didn't know at first that networking would be so tricky. Fortunately, he never wanted to leave the team, and if he left, perhaps the project was a failure. But one of the problems is that when he's there, one problem arises, and the other players become more and more difficult to get involved, eventually leading to a step-by-step push back into the project. And the chief programmer's emotions directly affect the other members, happy when everyone is happy, anxious when the atmosphere of the full. Today, the project is a little bit of results, most of them rely on his continuous exploration and efforts, very grateful to him. But the question I raised was, because I had not encountered it, it was difficult to find another example, or a little confused.

Iii. new problems to emerge

1. In what way can each member of the project team be able to maximize his value? For a small project team, how is the project division more scientific?

2. In general, the implementation of the same software development project on different platforms is done by a team, and we have several projects to take over the previous team, at the beginning of the thought it was a good thing, just to do maintenance, but later found that this is not the problem of re-creation, but to redo. Seniors code is written in OC, our group does not have a will OC, there is a communication problem, after all, is not a team member, so in communication is always inconvenient. So what I want to ask is what kind of consideration did the teacher choose from the previous project to keep us going?

Iv. new experiences in reading articles

1. Big mud ball problem. This question should be the problem that the software engineering beginner will appear. Engineering literacy has not reached a certain level, not like senior software engineers and teachers as strategically advantageous position to see a project, or a function of a piece of code implementation, more is to think where to write where, so the system is not strong enough to form a typical big mud ball problem. When you do the test later, you find that you need to modify a large part. Just think about it, why did. After the lesson, we have done a full and meticulous design after the implementation, quality and efficiency have improved a lot.

2. Cathedral and Bazaar issues. Our team is still in the form of the cathedral. But the problem is that when the priests in the church are very low-ponder, they have to put the problem on the market and gather all the power. We know that relying on their own power can not solve the problem of development, but also thick with the cheek to constantly ask the teacher, classmates, seniors.

V. Final SUMMARY of the course

Summary of a point, curriculum design is correct, is not enough to pay, the foundation is not in place. But a penny of the harvest, whether large or small, done, always a little harvest.

Summary of software engineering m1/m2 of "personal reading homework"

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.