Two-day agile Training

Source: Internet
Author: User
Tags coding standards
This week, we attended the agile training sessions held by the company during the past two days. We have a better understanding of agile than before. The first time I came into contact with agile was around year 45 years ago, when I was just a graduate student. I saw the words agile development and extreme programming (XP) in the school library. I didn't care too much at the time. I felt that my major was not in the same direction, I didn't know much about it, thanks.
From the past few years of work experience, it was a strange thing to understand. The agile development model needs to be understood by people with considerable development experience, because it is a "Grassroots" development model, or a philosophy of doing things.
1. What is agile?
It is difficult to have a clear definition of agile to explain what is agile and what is not agile. Since its birth, agile was born to solve the excessive development model in software development. In order to reduce the feedback cycle in document-driven development models, it was difficult to cope with changes in demand. It is an improvement method proposed to address these shortcomings. Agile philosophy is "results are the most important, and all process means serve results. If a process leads to unsatisfactory results, it should be improved ". Therefore, the agile development model is gradually improved until the team is able to cope with constant demand changes, quickly respond, and quickly create value for the customer. My understanding: All development models that meet the above requirements can be considered agile.
2. Document-driven vs test-driven
The conventional development mode is document-driven. A detailed requirement document is required. The initial design and detailed design are carried out according to the requirement document, followed by coding implementation and testing. This mode has its own advantages and is suitable for projects with low demands and fast changes. A typical example is the development of military weapon systems. However, this model is too heavy for projects in the civil software industry, especially in the Internet industry. Basically, it cannot quickly respond to changes in policies, markets, and customers.
Agile proposes a test-driven development model. Tests in Agile emphasize automated unit tests and automated integration tests. A large number of unit tests that can be run automatically ensure that any minor changes are logically correct before the check in code base, automated integration testing ensures that vulnerabilities in different modules can be detected as early as possible, fix bugs as early as possible, and reduce the cost of modifying bugs later.
In Agile development mode, it is a test-first approach. It has the following features:
First, write the test code according to the user story, and then complete the logic code according to the test code requirements. At this stage, we do not focus on any coding standards and specifications of the logic code, nor on code performance. The ultimate goal is to achieve the right functions at the minimum cost of time. Run the test code until all test points pass.
After completing the above tasks, we have initially had a system that can run normally and complete core functions. At this time, we can involve customers, confirm with the customer whether the work is really required by the user. At the same time, the development team needs to refactor the code. Each refactoring requires testing all the testing Code to ensure that no new bugs will be introduced after the refactoring. A good code structure is constantly reconstructed.
3. Conflicts between agile and Technical Architecture
Agile requires rapid response to changes, but changes often pose challenges to the original design. Agile does not need to be designed for development directly. The agile mode still needs to be designed in advance. In particular, the core of the system, such as whether the data storage is a DB or a file system, and these core designs cannot be overturned, otherwise the cost will be huge and unacceptable.

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.