Agile Software Development-principles, models and practices

Source: Internet
Author: User
Tags how to write test cases

After thinking about it, I decided to record the course of reading in the form of a date. The comments will be part of the discussion and Thoughts on reading.
2005-06-01:
I am very happy to have time to read these good books due to my lack of project tension in the past few days. I once again picked up Agile Software Development-principles, models, and practices. I was excited and bought this book a year ago, however, you cannot apply the essence of the content to actual work. Therefore, many users only need to understand the first and second parts. I don't have a system at all. Now I am working, and the company has given me space and time. So I want to study it carefully and combine learning with practice.
The preface references a sentence in "pieces of people": "interaction between people is complex, and its effect is never expected, but it is the most important aspect in the work ". He emphasized the importance of people in software development. Indeed, the software industry is different from other industries. It is a knowledge-intensive labor and requires a high level of skills and quality for employees. We can't regard software developers as machines. We think that software developers are pipeline workers, and projects can be done by process.
In chapter 1, another definition of the German poet heinehield said: "Even if the logo on the top of the Church is made of steel, it will be immediately destroyed by the storm if it does not understand the art that conforms to the wind ".
This sentence explains that if the software has not been able to face changes, it will fail when it has just entered the market or even has not yet entered the market. The fact is that we often see the IBM advertisement on TV on the Internet: on demand. The knowledge of how to improve the software's adaptability and how to discover the changing direction of the software has been answered in Agile Software Development-principles, models and practices.
How is agility proposed? In the past, experts developed software development methods to better solve the difficulties of software development. These methods combine the solutions obtained from the previous software failure and abstract them into rules. The quality of software development has indeed improved, but experts have thought that software changes are getting faster and faster, and developers can no longer solve the problem using the original method. Therefore, the experts added some rules based on the original method. Over time, the increasing number of methods not only fails to solve software development problems, but also limits software development and extends software development. The seriousness of this situation attracted the attention of experts. Therefore, they formulated the agile declaration, which covers the following:
Individuals and interactions are better than processes and tools
Software that can work is better than comprehensive documents
Customer cooperation is better than contract negotiation
Responding to changes is better than following the plan

200-06-02
Today, I read the second chapter of Agile Software Development-principles, models, and practices. I think every time I read it, I think it is quite good, but I always think it is too idealistic, almost no software company can do it all. However, I think there must be some truth from the Master. If we cannot meet some conditions, we should have some suitable alternative methods, but I can't think of some of these alternative methods, I hope I have experience.Program The employee gave me some advice. Next I will talk about my thoughts on every aspect of Chapter 2.
1: "customer as a team member ".
I think this is very difficult to achieve in China. Most customers do not have the software knowledge. They think that as long as they have a meeting with developers, they can clarify their requirements and give them some time, the software is done naturally. This is not the case. The customer needs to work closely with the developers to point out the errors that developers understand the project at any time, you can know more about the software you want. However, customers have their own jobs, and their work intensity is not low. What's more, customers may need several software systems at the same time and are dealing with different software teams. How can we make our customers fully join our development team? I have not come up with a better solution, but I can improve the team's understanding of the customer's industry to make up for the inability of the customer to join the team. Nowadays, many solution providers can provide solutions for various industries because they have a group of elites who are very familiar with businesses in various industries. Our company is engaged in banking business. before preparing for a bidding project, we will ask the bank's consultants to give us a full explanation of the professional knowledge related to this business, I think this is really a good practice. Let's talk about it here. I hope you can talk about how your company is doing this.
2: "User material ".
In this case, we only need to be able to estimate his degree. I understand the meaning of this sentence, that is, the details of software requirements will change at any time during the development process. If the demand is too much for design, it may be useless, or it may delay the project development time. However, it is not easy to achieve this. This requires a wealth of project experience to know what is the problem of analysis and what is excessive analysis. However, I have no experience at this point. I hope you can give me some advice.
3: "Pair programming ".
This refers to the two programmers programming together, one encoding, one making comments easily and checking errors, and switching roles over a period of time, in this way, the efficiency is far greater than the efficiency of using a single PC for two people. In addition, this greatly reduces the risk of developers leaving the project. Although this is not hard to understand, it is impossible for the company to fully accept it. The company may say, "This idea is really good, but there are not many employees at this stage, pairing is equivalent to reducing the number of developers by half ". I have no experience, but I have done this in the software development team of the school. I think the effect is quite good. Hope to get support from the boss.
4: "refactoring ".
This is what impressed me most about reading this book. Code It is constantly changed in the software development process. experienced programmers should know that our design is simple and clear in the early stage of the project. But as the project progresses, the code is constantly changing and copying. The code is confusing. This tells us to regularly organize the code so that the Code always maintains a clear structure and style. Every time we implement a function, we should immediately optimize this part of code and make a code structure adjustment once a week. In this way, the final code is robust, easy to maintain and debug.
5: "Test-driven development ".
This article describes how to write test cases first. When writing code, the test case passes. However, in other words, I do not have to write test cases first or later. The main advantage of test-driven development is that it can develop code for convenient testing, which is simple and efficient for testing. However, if you want to write a good test case, you will have a deep understanding of it.
So many questions have been raised today and I hope you can answer them.

To be continued ......

Related Article

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.