Talking about the combination of agile development and iterative development

http://www.mypm.net/articles/show_article_content.asp?articleID=24211
I have been in the IT industry for seven years. In the past seven years, I have done a lot of software development projects, experienced many different project teams, and engaged in different roles in different projects. Each project team has its own software development system according to the type of project. . In the past two years, I have been mainly engaged in the management of software development. In the work, continue to explore and practice, and continue to learn and summarize. Here's what I'll talk about: software development, the benefits of combining agile and iterative development.

  First, let me introduce what agile development and iterative development are.

  1. Agile development: a human-centered, iterative, step-by-step development method. In agile development, the construction of a software project is divided into multiple sub-projects, and the results of each sub-project are tested and have the characteristics of integration and operation. In other words, it is to divide a large project into multiple small projects that are interconnected but can also run independently, and complete them separately. During this process, the software is always in a usable state.

  2. Iterative development: Only a part of the product is designed and implemented at a time, and the method of completing it step by step is called iterative development. Each stage of design and implementation is called an iteration. In an iterative development approach, the entire development effort is organized as a series of short, fixed-length (eg, 3-week) small projects, known as a series of iterations. Each iteration includes requirements analysis, design, implementation and testing.

  Through the best practices of project development work over the years, I think it is difficult for you to make a very perfect project, but we can make the project perfect through continuous revision and cumulative development of the project. What I want to talk about here is a development method that combines iterative and agile development. The benefits of doing so are as follows:

  1. Reduce product development risk

  If we cannot fully refine the requirements of the product to be developed at the early stage of the project, we will design the system function, which will inevitably increase the development risk of the project product. So how to reduce the risk? We can reduce the project risk by combining iterative and agile development. In the early stage of the project, we first select the requirements that can form the core system architecture. On the basis, other functional modules are continuously added, and the system is continuously improved by means of cumulative development, and when the system is improved, the defects or deficiencies of the system are constantly reconstructed and improved design work. Agile development through multiple iterations, and each iteration produces a usable product. In this way, we will achieve the purpose of reducing the risk of product development.

  2. Continuous testing and integration

  For each iteration of agile development, we will continue to do two things, one is to add new functions, and the other is to change the changing functional requirements. New features or requirements changes are always incorporated into the product as frequently as possible. Some are integrated at the end of each iteration cycle, others are done daily. Therefore, in each iteration of agile development, we must continue to carry out continuous testing and integration work in order to deliver a satisfactory and usable product to our customers.

  3. Meet the changing needs of users

  Satisfying users is one of the long-term unsolvable problems in software development. The classic waterfall model performs well in an iterative cycle, but once the needs change, the waterfall model is powerless. Agile methods meet requirements primarily through iteration. At the end of each iteration, a working, deployable system is delivered to users who use and experience the system and provide feedback, which is implemented and integrated in the product along with other changes to requirements in subsequent iterations .

  4. Get Early User Feedback Project Management Forum

  Each iteration cycle should be as short as possible so that changes in requirements and user feedback can be dealt with in a timely manner. The earlier the customer feedback is, the more helpful it is to revise the customer feedback in the next iteration of agile development. After several iterations of revision and development work based on user feedback, the system is more perfect.

  5. Improve reusability (reusability) blog.mypm.net

  Before talking about reusability, some people call it reusability, an important activity I want to talk about is: code refactoring. Because in iterative agile development, there is no detailed design process of the entire system, so how to ensure the reusability of our development system components?

Method 1: Refactor your code frequently to maintain good design and scalability .

  Method 2: The architect designs some reusable components in the core architecture based on experience and insight into future requirements.

  Method 3: During the design discussion meeting of the team, members will get some common components through brainstorming and discussion. training.mypm.net

  Method 4: Regularly organize the developers of the project team to sit together, review and review the code with each other, find the repeated code fragments in the system, and immediately refactor them to obtain reusable components.

  Method 5: During the development process, it is also possible to obtain some reusable components by refactoring the old code.

  Code refactoring actually has a lot to do with the skills and experience of software engineers. When an experienced software engineer is coding, they will identify the parts that may be reused, and extract them and encapsulate them into reusable classes. or module components. Project Managers Alliance Articles

  To sum up, the project development method combining agile development and iterative development brings many benefits to our project management. It is also one of the best project development methods that I have been practicing for a long time through project development and continuous learning and summarization. It plays a decisive role in the success or failure of the project and the final result. Because I think the essence of its thought itself is worthy of our adoption, it emphasizes continuous improvement, continuous improvement. This is incomparable to the classic waterfall development. Although the classic waterfall model performs well in an iterative cycle, once the requirements change, the waterfall model is powerless. The waterfall model usually plans a straight line between the starting point of the product and the final result, and then keeps moving forward along the straight line. However, when the project reaches the end, users often find that it is not what they wanted. The agile method, on the other hand, uses small steps and runs quickly, adjusting after each step and determining the direction for the next step, until the real end point. The combination of iterative and agile development methods not only ensures the quality of products, but also has certain advantages in the continuous improvement of project products. Absorb the essence and break the dross. Only in this way will the project reach the level of perfection. This is also the goal that all of us IT people want to achieve in any project.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326667987&siteId=291194637