I am here to say that the process is the traditional serial software development process.
Do anything, we eventually want to get a result. A girl, goal is to Zhuidao Shou, a lover, or wife. The car, eventually hope to be able to open up a car. Do software, I hope we can use the last output of a software product.
That is, we want a good result.
Then how to get good results?
The answer is to rely on other people.
Why rely on people?
Because everything in this world who create, people to access information, people use their own minds on information processing, that is, thinking, and then generate decision-making, and finally, brain-driven people's behavior and create value, and other people impact.
A person capable of handling it?
The existence of such a possibility, but today's society needs the software has been far from the era of personal heroism.
Thus, it should be distributed to more than one person, that is a team to do.
How does the team do a thing?
Because the thing is a thing, but many individuals do their work between the associated. This need to determine what to do first, then do, who does what specifically, how to do everything child. The beginning, Joe Smith, John Doe, Wang 5 anything to do with high efficiency. But:
More and more things, how do?
A dedicated seating on it, John Doe has been responsible for doing B, Wang C five to do it.
There is still more and more, more complex, Zaban it?
Joe Smith can be found in the work of A into A1, A2, Joe Smith 1 can specialize in A1, seating two specialize in A2. Similarly John Doe work done divided.
This time, we found that because of divisions are more fine, do one thing, several people need a little chaotic country?
Human beings are the most intelligent, we found that all the time to do things, do first do A1 A2, then B1, B2, B3, C1, D1. . . , Regular Yeah!
Thus, Ga bang!, Process, the greatest invention of mankind was born,
A1-> A2-> B1-> B2-> B3-> C1-> D1
Puts the rhythm, "oh, process, process, process, It 's so great, great, great.
I love you, yes, that's it ....":
Each of us is so, like wood piles, squatting there, like a passive hunter. Eyes eyes opened, and a closed, one day later. Call it a day, Shanggong. As B2, I am only interested in B1, B3, others to me, is the mist flower, tis looks very beautiful, very hazy narcissus.
In this way the company started operation in the traditional good. Obviously, we can tell the nature. A1 and A2, A2 and B1, the boundary between nodes and nodes are defined, and is visible and tangible. Like making cars, vehicle assembly, I can see the engine is visible and tangible, can be tested.
Far the most critical are: the engine is part of my future automotive products.
Back to the software development scene, it is also so in demand is the demand for document output, system output is a sub-sub-system documentation, development of production code, test test test case output,
But all of these on the end users of software products, what is?
As in the processing of scrap materials, products, intermediate products, because it ultimately did not become available to users as part of products and services. Oh, but the user manual seems to be considered part of that. I think this is the distinction between software and traditional manufacturing process of manufacturing automobiles, the biggest difference between products.
Process in the traditional business success, what causes it?
Take-made car is, for each of the pipeline, although, she did not read the entire car, but the entire car in his mind is more clear. This is inside a clear two points: one is that not eating pork, or read the pig run. He has seen many had such similar cars. In addition, we made the car the whole context, knowledge is clear, after all, are mostly standard parts, there are strict definitions. These standards is the hidden knowledge, do not belittle this implicit knowledge, because knowledge of the defects may be created is affected by your actions, defective products may be made the expanse. First, be standardized, and then can learn.
This standardized approach, on the software industry is Kaopu it?
Look at our standard of what is the process of doing things, rather than the actual doing of something that is not all about the two children, the difference is big.
Why not standardize software products?
Because software is soft, without too much explanation.
Standardization of software is not that hard, but to standardize things, the actual standard things in the industry to the manufacturing process, the actual scenarios in the software to the ratio, this ratio is minimal. In the Java field, jdk, open source framework, components can be considered a standard component. In specific business applications,
erp can only count one and a half standard, requires secondary development, developed three times, I said the second development is the implementation of three development, erp development around the application of some of the surrounding.
Software products can not be standardized, in essence, lies in its diversity of application scenarios.
Continued process, what reasons?
A1-> A2-> B1-> B2-> B3-> C1-> D1
In the software, processes the boundary between the nodes is not clear, deduction this:
A1 to work, delivered to the A2, B1, B2, B3, C1, D1 wait
A2 to work, delivered to the B1, B2, B3, C1, D1 wait.
B1 identify problems, back to A2, A2 to A1, B1, B2, B3, C1, D1 wait
A1 back to A2, B1, B2, B3, C1, D1 wait
A2 back to B1, B2, B3, C1, D1 wait
Number of simple calculation:
The first n nodes changed, change the number of times through the process 2 (n-1), may wish to become a process of loss.
Because software is soft, you start to do when a smear eyes are blind, and change is normal.
Assumption changes only once in each node, in which process-based software development model, the total flow losses as follows:
We can deduce that it is a result of my calculations.
In other words, in the process node of 7 cases, the assumption that changes in each node once, then flow loss of 42.
Then calculate waste, horrible, or the above assumptions, together with everyone last night of work in the time spent is 2 hours, time spent on each change is 1 hour.
Ideally, n steps are required completion time is 2n.
Ideally, wait time
2 (n-1), 2 (n-2), 2 (n-3), ....
The result is n (n-1), provided that an average of 2 hours for each task as operator.
Ideally, according to the above example, the total time of 14h, the total waiting time for the ideal 42h.
Then change the case contains several series of general term is n (n-1), due to changes caused by latency, summation is o (n ^ 3):
Waiting time caused by changes = n (n +1) (2n +1) / 6 - n (n-1) / 2
According to this example, because of changes to increase the waiting time is 119h
That is, as this example, the ideal wait time caused by 119 + 42 = 161h
You said, and were not dry behind the waiting, or you can do something, if used well, such as assembly line, waiting time is not wasted.
In practice, this certainly is a waste of some, the wait time may be doing something else, resulting in task parallelism, task switching takes time, people are not machines, loss is definitely yes.
We have a good accordance with the utilization of 50%, and loss of time is 80.5h
Assumptions: 7 nodes, each node task is 2 hours, each node changes once every change of time spent 1 hour. Not consider changes caused by the task time for each node to change.
Ideal waste of time waiting: 161h
The overall task completion time = time + change task loss: 14 + 42 = 56h
In this simple model, the total task completion time and number of nodes proportional to the square, waiting time and the node is proportional to the cube.
The actual situation is more complex, the complexity of the work itself, uncertainty, change tasks generally increase their working hours, as part of the work may be done before a waste.
In other words, to improve efficiency, the most effective way to shorten the process node, or the best result is also the only local optimization.
This situation, how the cost of communication like?
n personal, communication path is n (n-1) / 2, 1 hour each cost, the above situation, the total communication cost for the 21h
This is the ideal situation, why should communicate it? No communication, no information is inconsistent understanding, understanding is inconsistent, the actual behavior will be biased. People who work together must share information context.
Mythical Man-Month, saying the project is tight, plus people do not necessarily improve the overall completion time is the reason.
From this we can conclude that the theory of Agile development methodology based on it?
You can say that Agile is a process, but, the process is relatively simple, few nodes only. Sitting close together through communication, will change from o (n ^ 2) an order of magnitude lower, becomes o (n). Through timely feedback, shortening the waiting time to waste. Also, as to avoid a change in the probability of late. In accordance with the above model, first n nodes, change the loss is 2 (n-1).
Arch is to find a quick throw it, we can calculate their own.
You may have doubts, no process, not the whole mess?
As can be seen from the above calculation, in accordance with the process of doing things, guarantee a stable output, but efficiency is certainly low. We further see the nature of things. Take the risk control process, the surface is to take the risk control process of this node. But, in fact, want to process you mean the man behind the face of your program to do a risk assessment, and gives the result. You can go directly to him, to make it clear to your question, say so, or phone. Rather than process driven, complex documents, and he must take a long time to understand the document. Too often, he has assessed over, not finish the process. These are losses.
Process must be simple, direct process should not be allowed, while dignitaries are the masters. At any one time, only the people know best, we will be where to go.
Writes here, as if hearing process saying: "Do not obsessed brother, in fact, only a legend"