The theoretical knowledge I don't see much, no very accurate concept, I think no matter which development method has its own theoretical basis, and the corresponding method steps, such as waterfall model, incremental model, iterative model, agile method, etc.
And because the project is different, such as whether it is a new project, two development projects, or maintenance projects, the method used is not the same, there is no fixed, different companies may not be the same, so I just say I understand the agile, and the use of agile methods in the project
My understanding is that rapid iteration, continuous delivery, a lightweight, efficient, low-risk, more emphasis on team collaboration and communication development, customer demand is vague or changeable,
suitable for small and medium team development, each team should not be more than 6, 7,
Agile I think the first and foremost is communication, is the BA and developers, and QA of efficient communication, the lack of any one will not be very efficient and effective
The agile process basically guarantees that each iteration can be tested and validated, and that there is a time to complete an iteration on the project, such as 2 weeks, 3 weeks, which includes the following sections
1,BA, the system needs the person to know what function point he wants,
2, the developer must understand this function point, and to communicate with BA, to ensure that they can understand this demand, if not very understanding, it is necessary to further communication, the process of communication is very important, because BA may not fully understand the system's data flow, so there may be deviations from each other, The purpose of communication is to ensure that the developer fully understands this requirement and to implement it, and to have time to do unit testing, integration testing, etc. after the development is completed.
3, the BA is required to verify the correctness of the function point when the previous step is completed
4, when the BA is completed, QA not only to do this function point test, but also to do a system-related regression test, to ensure that no other functional points are affected
But in fact, I have a project in the use of agile, although from the beginning of the use, but not very smooth, I think the reason is that the user needs can not be timely communication and feedback, the reason is the BA and development, testing people, not together, not in a time zone, Most of the time can only be written by email communication, this is obviously not an efficient way, and later the project made some improvements, that is, the development team began to have BA, the situation has been improved,
So I think the next two points are important.
1 Real user needs,
2 software continuous delivery process, a full range of automated testing, you add a new function is good to say, if not the existing features, as long as the new easy to use the basic can be, but if this function needs to modify the existing code, then do not just ensure that the current function is useful, Also to do a full range of related regression testing, from the business, functional, to ensure the availability of the system,
Agile Development Every day for everyone to do
There is a blackboard in the project, this blackboard everyone to participate in, to track the status of the function point,
Find a time, such as time control in 10 points, 15 minutes, according to the actual needs or the project team development process, selectively do one or several of the following
Everyone has to do these 3 things,
1 What did you do yesterday?
2 What to do today
3 Are there any problems that cause you to not develop down
Everyone put their function point of the state of today to everyone to say that the purpose is to let everyone know what you do and their relevance
Everyone put their function point on the blackboard to move to your current state, then put his risk, we see if there is a similar problem, brainstorming, will probably have ideas after
The main purpose of doing this is to identify the risks that each iteration may encounter as early as possible and to anticipate and control
I think either way, is to achieve a fast, efficient, accurate, low-risk completion of the project goals, so his steps are not fixed, as long as the purpose of achieving this can be
I do not like the so-called process, and documentation, because good code structure is a document, the document is appropriate to record the system about the business and data flow, because if the document can not be maintained all the trouble.
But in fact, I think the best way to develop is, BA at the developer side, there are problems at any time to communicate, to be fast, efficient,
Other so-called processes, steps are not important, as long as the completion of things to achieve the requirements of the BA is the most important