What I hear most about agile development is iterative development, where I need to develop and so on. Some people also think that agile development is a kind of model. As long as other methodologies observe the time to do and what to do, they can be agile. I feel that none of these statements can accurately describe agile development, and some may be wrong.
After two years of agile development practices, I feel that agile development is essentially a process of cooperation and improvement. Only continuous improvement can we avoid copying models and making robust systems that meet requirements.
Which role is the most important in the agile development team? I think the customer is the most important. The customer here is not necessarily the real customer, but the end user of the system. Because the customer is the real source of the demand. A project may have several months or even years of development experience. Even if you have carefully researched your needs in the early stage, the development of information technology and e-commerce is so rapid today, the system may no longer meet the customer's requirements when you deliver it. Therefore, without the full participation of the customer, the development team may be in the wrong direction, at most developing a delicate and unusable machine.
What kind of development can be called True agile development? I think we can consider the following aspects:
1. Do you have full customer participation in your project? Although you have your own demand Team (PD, BA) and so on, they are not really users and cannot truly reflect the customer's needs.
2. Have you performed real iteration and incremental development in your project? The iteration here is not just a segment of time, but a testable function point that can be produced in each iteration, some people may say that their project may have been implementing the infrastructure in the first few iterations, and it is impossible to make real deliverable functions. I think this is not in line with agile development. Agile development requires us to provide the features most needed by our customers in the shortest time to minimize project risks, if it takes a few months to build the infrastructure, and the subsequent functions do not meet the customer's requirements or the customer's requirements for change, the architecture may be changed at a high cost. Therefore, agile development also requires a flexible and flexible system architecture.
3. is there a reasonable task breakdown in your project? Only large tasks can be divided into small increments. Each increment requires only the minimum plan and the minimum completion time, only in this way can the entire development process become an iterative incremental development project.
4. Does your project have demo and feedback? It is the best practice for agile development to communicate with customers by presenting and asking customers for feedback in each iteration.
5. How do you view demand changes in your project? In Agile development, demand changes are acceptable or popular at any stage of the project. Because it is impossible for customers to describe their requirements completely correctly, and their descriptions cannot be fully reflected in the implementation of the system, only in the process of continuous improvement can we make a system that meets customers' requirements and keeps pace with the times.
6. how is your project tested? During the agile development process, the entire process of development is involved during testing. Through testing, you can discover and solve problems as early as possible, this requires that each section submitted by the Agile Development TeamCodeAll are testable, and each completed task is deliverable and testable.
I have some knowledge about agile development. I hope you can communicate with each other and improve them together.