Planning, testing and refactoring of agile development

Source: Internet
Author: User

Objective

This series is a reading note from Robert C. Martin's agile Development Book, which outlines some of the basic principles of agile development, which are presented separately for the more important aspects of planning, testing, and refactoring.

First, the plan

  1. Initial exploration

At the start of the project, developers and customers should try to identify the really important user footage and not try to find out all the user footage.

The developers work together to estimate the footage. Use "points" to indicate the relative time required to implement the footage.

Materials that are too large or too small are difficult to estimate.

As the project progresses, metrics for speed are becoming more accurate as you can measure the number of user footage that has been completed in each iteration.

  2. Release plan

If you know the speed of development, customers will be able to understand the cost of each material.

For the first release, the customer picks up the footage they want to implement in this release and roughly determines the order in which the footage is implemented.

Because the development speed is not accurate at the beginning, so the selection is also sketchy. When the speed of development is accurate, the release plan can be adjusted again.

  3. Iteration Plan

Developers and customers decide the iteration size, typically two weeks.

The order in which user footage is implemented during an iteration is determined by the technician. Once the iteration begins, the customer cannot update the footage during the iteration.

Even if you do not complete all the footage, the iteration ends at the specified date. Then estimate the current completed footage to calculate the development speed of this iteration.

  4. Mission planning

With the help of the customer, the developer breaks down the footage into a development task, a task that a developer can implement within 4-16 hours.

Developers can sign any type of task.

Each developer is aware of the number of task points completed in the last iteration, which can be used as the personal budget for the next iteration.

The team will hold a meeting when the iteration is about halfway. Review and adjust development tasks.

  5. Iteration

At the end of each iteration, the client is presented with a program that is currently running. Customers will provide feedback in the form of new footage.

  6. Conclusion

Through iteration and release, the project has entered a predictable and comfortable development rhythm.

Developers see reasonable plans that are based on their own estimates and are controlled by the development speed they measure.

Managers get data from each iteration and use that data to control and manage the project.

Second, the test

Writing unit tests avoids a significant amount of feedback loops, especially for functional verification.

  1. Test-driven Development methodology

It is recommended that you design your test plan before designing the program, with the following benefits:

A. Each function in the program is tested to verify the correctness of its operation, and this test suite can also provide support for future development.

B. Writing tests first can force us to look at the program that we are going to write from the vantage point of the program caller. Facilitates the design of easy-to-invoke software.

C. Easy-to-call and testable programs, must be low-coupling programs.

D. The test program is a compiled and operational document that remains up-to-date and does not lie.

  2. Acceptance Test

Unit testing is a white-box test used to validate individual mechanisms in the system, and acceptance testing is a black-box test that validates the system to meet customer needs.

Acceptance testing is written by people who do not understand the internal mechanisms of the system. Generally written in scripting languages.

First write acceptance test, can make the system testability, need to at very high system architecture level to decouple the system.

Third, reconstruction

Each software module should have three responsibilities:

  A. Complete the function that it should complete.

B. Be as simple as possible to cope with change.

C. Communicate with people who read it.

The process of modifying the code to improve the internal structure of the code without altering the external behavior of the code-called Refactoring.

Postscript

The plan belongs to the process management category, and needs to explore the way that suits you in practice.

The flexibility to apply the methods described in testing and refactoring helps us to produce projects that contain neat code and good architecture.

Planning, testing and refactoring of agile development

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.