Generally speaking people have a lot of Agile Alliance in 2001 the establishment of the General Assembly as the birth of Agile Software Ways date, in fact may have a retroactive quick time earlier. At the end of the century early on, XP was already emerging technology, Kent Beck a lot of software engineering at the General Assembly to express their idea about a number of XP-related speech.
Master the many positive studies because agile software development because of the people involved, more and more complex inputs, an increasing number of items dragged into the quagmire of an extension, the corresponding input more and more, but the production capacity than has been declining.
Engineer has repeatedly complained that too much pressure job, every day is simply not enough sleep time, and the client has been accused of abuse to develop software products why so many Bug.
This time the hero of the last century software formed in sharp contrast to, so all of these so that these are at Master consider, in the end what is causing the software development so bloated body? Software development process of those parts can be omitted in the end? Why do people on the definition of software process more and more, but by the quality of developed software has not seen how much better? Faced with this situation and how to change? So in 2001, Agile (Agile) Software Alliance announced the formation of, and issued a Declaration on Alliance Agile software purpose as a team. Agile Software Development Declaration, consider:
◆ than individual and interactive processes and tools;
◆ software can work better than the exhaustive documentation;
◆ Customer cooperation is better than the contract negotiations;
◆ Change in response to better than follow the plan.
4 According to this declaration, made Agile Alliance Agile principle 12, which is also the 12 principles of distinction and tradition based on the Agile development process approach criteria are as follows:
◆ top priority to do the job, continuous delivery of valuable software makes customer satisfaction;
◆ embrace change, through changes to create value for customers;
◆ regular delivery of software;
◆ business and developers to enhance communication;
◆ based on individual incentives to build up projects;
◆ the most effective to communicate face-to-face conversation;
◆ work is at the top of the progress of software metrics;
◆ To maintain a constant speed of development;
◆ constantly concerned about the excellent technology and good design patterns;
◆ EASY software are fundamental;
◆ the best architecture and design from their own team;
◆ constant self-examination at any time adjust.
Understanding of the agile
60,70 During the last century until the mid-90's, software products have been covered a lot of heroism color, from the Microsoft empire Billgates to Linux father Linus Torvalds, from UCDOS Author鲍岳桥to WPS's求伯君, all of which the Master No development team is not over the overflowing passion.
Determine the development of a simple goal, a prototype implementation Express yourself to the pursuit of technical excellence goals, each team members were excited with the "programming machine", etc. These methods allow the development of the whole process more efficient and results to elevate the quality. Therefore, when software is getting higher and higher development costs, time has become longer and longer when using these methods achieve a good software, fast and has become the logical thing Province.
To be sure are a lot of quick thought, not from the Agile Alliance to be formed only through long-term accumulated bit by bit, a time to practice, and agile form a system of thought. Currently popular agile development method of Extreme Programming has approximately (XP), Characteristics of Driven Development (FDD), SCRUM, Adaptive Software Development (ASD), Dynamic Systems Development Method (DSDM), and Crystal Method Tribe (Crystal Methods) and so on. Clearly these methods have differences between them are, but there is agile programming are certainly some commonalities, and agility are first of all an environment, a culture.
Confidence
Agile Development of confidence is one of the important factors. Here are confident the meaning of self-trust, a team using Agile development must trust his team are the best team to do is the best in the world of software. Agile teams are absolutely not allowed to someone better than me, and that for them is a disgrace.
Agile development of a lot of books will be such an act described as "the pursuit of excellence", which is not comprehensive, in addition to the pursuit of excellence and, more importantly, the pursuit of the application, quality, marketing and other objectives. Has continued to look beyond self-team, a culture of continuous improvement are the core of Agile Development. Without such a core as a cornerstone of even a small version of the compiler, test drive these agile methods, but also are learning, however, after all the fur. Even worse, if a "toddler Handan" it even worse.
It is true that everyone is to create a passionate atmosphere in all directions is not easy, but if you think can not create such an atmosphere, it is better to give up early the purpose of Agile Development.
12 Agile principles are based on this has some of the core, such as "around was inspired to build up the personal item", "Agile processes promote the development of a constant speed" and so on, the goal of these principles is actually want to create a quick atmosphere so that all people involved in the project be able to maintain a continuous state of passion. This software team goals heroism how similar. And continuous application of new skills and good design can improve the team's confidence, the degree of confidence the team continually improved.
COMMUNICATION
Agile Agile teams to create the atmosphere of another assumption is that mutual trust among members. This is for mutual trust in terms of China's national conditions is particularly important because based on the characteristics of Asians, most of the time-HI alone, do not like to communicate. Especially for technical questions, a lot of people prefer to own a first query from the search engines and partners are unwilling to communicate, even if this knowledge points can be given to help others.
A lot of programmers simply can not tolerate two people simultaneously share the same piece of code of practice, so can be called mutual trust or communicate this factor is particularly important. On the individual's practice, if two people can simultaneously prepare the same paragraph, the procedures are beneficial, it can expand the knowledge level, apart from the addition of outside help to document a more important assist - programming partners, but more importantly are avoided into the "dead end."
Written procedures for most of people have this experience, sometimes at a place not often progress continues, always think they are right, but in the end, is not always expected of their own, but when again the next day when they look at procedures found out that yesterday's mistakes are so "stupid", in fact, if two people share the code, partnerships must be reminded in the first time where the error, which is how easy a time-saving practices.
Agile development principles consider the most effective means of communication is face-to-face exchanges. And XP to "trust" has a more detailed specification, pair programming are a typical manifestation of mutual trust. Pair programming requirements of twinning strong staff interact, and eventually the code by the two co-design, maintenance. This greatly speeded up the idea, knowledge of the entire team at the propagation velocity, making the formation of a unified whole team together, making the entire project is not only dependent on the strength of the individual, at some critical moment, there is usually able to "bench" in lieu of the required experts .
Agile development principles of the exchanges have shown that the "team within the most effective, most efficient way is to transmit information face-to-face conversation," so the exchange of Agile development are another factor. The use of Agile development team at the software development process often can be heard everywhere the voice of the discussion, but others worry that such an atmosphere will affect the progress of development, resulting in reducing efficiency.
Self-discipline
At a lot of people to discuss the difference between Agile and confusion, indeed the use of agile development, one disadvantage is that if the control will turn into a bad team "organized, non-discipline" of a group. Since agile methods usually are not a lot of the provisions of the framework, agile norms are not from the norm-setting, but from the perpetrators, most of the agile team of programmers rather than comply with discipline, but self-regulation.
Agile team members are not necessarily the best development engineer, but none of these engineers know that they should be doing. Agile mission team, not by the project manager for the delivery of, engineers often decide their own work should be done.
Agile teams are then how do the do, in fact, a culture of self-discipline and self-confidence, communicate both the subject closely. First of all team members believe they are the best in the world team, each person has such a goal; followed by the team, there are a lot of exchanges, so that everyone can know other people do, the progress of the entire project. So that each engineer should be aware of their doing, but also can quickly be positioned to do their own thing.
Agile in China
In fact China's quick access to the earlier idea, from 2001 since the founding of Agile Alliance, Agile programming on a lot of start has been translated into Chinese, one of the momentum of height is eXtreme Programming (XP).
Agile programming is popular in China be able to have national background has always been thought of software engineering in China is not easy to promote, CMM and RUP in foreign countries such as the implementation is also a good idea at the local Chinese textbooks are only on the a textbook case, or some companies are used to filling up the banner window. So how have Chinese characteristics, set up project management system software project managers are a lot of hard things to explore, and agility seem to give the Chinese a chance.







