The items above two people need to be managed. Why do you say this? Because there are two people, they need to communicate; there is a communication, there will be cooperation; there is a cooperation, you need to have division of labor; there is a division of labor, you need to have coordinated; have all this, you need to manage management. But at the moment, we said that killing chickens with cow knife, high-tech guns, mosquitoes, are unwanted. But still need to be managed.
However, is a person's project not need to manage? Of course, because there is document, there is code, there is inspiration, experience, and so on. It's just that the management at the moment is done, it can be simpler. We have had a BUG experience that I have already fixed again over and over again, and I have experienced the experience of the technology you have implemented over again. The theory of software engineering, the role in the development process is to guide how to manage, to obtain software availability, correctness, and rationality. If we know that this is its goal, you can leave some branches that are not applicable.
So how do it do this?
I think the most important in software engineering is the most practical, it defines the function of work and it has also identified the responsibility. What do you mean? To put it bluntly, what kind of person is to do, and who is responsible for the problem. So how do it define work functions? It is achieved by dividing the software development process. Software Engineering scores software development into many relatively independent phases, every stage has related personnel to achieve, and there is related personnel to be responsible. The division of labor is unclear, the ligation is unknown, which is the most important factor that leads to confusion. So even two people's projects, it is also necessary for software engineering to guide, because through it, you can better know how to make reasonable division of labor, divide job powers to achieve the final results. Of course, the road to walking tutorialism is very stupid.
So what is the software engineering?
Software engineering is proposed for "software crisis". It is an engineering that applies experience and theory to practice, solving various problems that have emerged in software development. What does it mean? That is, the software engineering is used to solve practical problems. If there is no management issue in software development, software projects do not need to manage content; if there is no document chaos in software development, the software project does not require a part of the document. But if you are lucky, this is indispensable. Software engineering is not a fixed chase frame, but an elastic concept. So, if you don't apply for ISO or CMM certification, you don't have to do it at a look at ISO or CMM. The so-called "software engineering with business features" can be perfected from absorption existing patterns and specifications. But this is not to say that all software engineering occurs during the development process, only those that can guide the development of success is the truly meaningful software engineering. Other, the most is just a failure.
So when should I start implementing software engineering?
Is the software engineering be started before a project began? Be sure to run through the entire project? why? No, software engineering can start at any time in the project, or you can end when any no longer needs. Because the software engineering divides the development process into different stages, the so-called "life cycle", in different life cycles, software engineering provides different modes.
So how do software companies implement software engineering?
First of all, we must know the software engineering, understand the software engineering; then we must understand the mode and specifications of existing software engineering. ISO, CMM or Agility defines a set of specifications. These specifications are experience and technology, as well as the accumulation of theory. They have a lot of reasonable, feasible patterns, can reference and reference; but silver bombs are not. Of course, we can turn again, make the wheels they have caused them, but they are obvious, this is unnecessary. The best way to implement, is also the most feasible method, the minimum cost, is based on the objective factors developed, modify those specifications to meet our development process; but the most important, to modify our subjective understanding to comply with Those specifications; and most important, it is found in the implementation of the specification unreasonable, and correct it. Is that it will become unable to adapt, causing confusion?
Yes, there is this possibility, so any corrections should be cautious. All modified proposals should be top-down, and decisions are from bottom to bottom.
Is the software engineering requires the scale of the project?
Will we worry that excessive project application software projects fall into bureaucracy, thus increase the burden of projects? Let's see what is software engineering? Software engineering is not defined what is software project! There is also no scale of software engineering itself. The meaning of software engineering is to divide the development phase, as well as division of labor and responsibility. This has no conflict with the size of the project. On the contrary, the more small items are, the more you need to manage software engineering. A consensus of software development is to divide a large project into some small modules, and then divide a small module into a smaller module. If these small modules are independent (or an independent project), then software engineering can at least improve its reuse. For a team that is not deep in a software engineering, don't expect them to use software projects when they take over, if they are not willing to use in small projects. The complexity of the former is not what they can imagine and bear.
Will the application software project increase the workload?
Yes, but just for those who are relaxed in those who do not use software engineering. Software works will make them either unemployed or have to be responsible. As opposed to engineers, they will liberate from the unpredictable state of chaos, and their work will become efficient. The loss of the previous corpse will be exposed - this may be one of its unique defects, and it is also one of the possible reasons for many businesses.
What should we do?
Learn! If we don't want to meet a wheel. Try! If we want to change.