"Agile (Agile), namely The ability of creation and responding to change," The Agile Alliance (The Agile Alliance) that's The definition of "Agile",
In this era "VUCA", any organization not only seek the viability and competitiveness, and they also realize that only embrace change is the eternal theme, so more hope oneself has the ability to constantly adapt to unpredictable changes in the face of uncertainty, we tend to try a lot of kinds of possible effective method, through the collection, analysis and study, to make the corresponding adjustment, so, how can finish higher in a shorter period of input-output ratio, is of concern to agile,
Starting in the 1990 s, people try to work in the form of agile, in the field of software development, traditional way of software builds gradually abandoned, in practice has created some high-profile lightweight software development method, 2001, 17 software developers gathered in Snowbird, Utah, to discuss their own idea about the work and software development methods, to find the commonness, finally put forward the famous "agile manifesto" and the 12 principles, officially declared the start of the agile development movement,
Traditional development mode is based on the "plan" to carry out, but most of the project cycle is longer, usually this kind of planning mode will encounter many problems in the implementation process, such as project requirements is not clear at the beginning, the project team is not complete, at this time the plan itself is flawed, the project control process,
While the agile development mode provides a new mode, namely the quick steps, constantly adjust, rapid iteration! You need not clear it doesn't matter, we first do a small diu diu, said to the keep right or not loss is very big, also had time to adjust direction, through the model constantly correcting finally reaching the client want,
Trust and open communication between team members, coordination, adaptation is the core of the agile, and in a team formed in the product quality, availability and integrity of unified standards, continuously optimize working rules and procedures is the embodiment of the self-organizing, agile advocates and practitioners believe that the organization is agile development teams play the best flexibility, creativity and productivity in response to changes in power source,
Apply agile project, the team
Some research data show that not all agile development project can succeed, also not all waterfall project will fail, rational software development team should be in the product, project and team based on the analysis of the features, selecting a more suitable development mode,
Any project will be three kinds of condition constraints:
? Scope: namely, the goal of the project, the task and what is expected of interested parties;
? Time: the regulation project needs to be done in long time;
? Resources: including the economic costs and human resources of the project,
Project management is looking for a relative balance between the three points, so that the project achieve the progress and results, as far as possible when the judge to adopt what kind of development model, we can ask yourself: is in a long time, even at the risk of delay, delivering a good enough products? Is one of the available products as soon as possible, through the market feedback and high frequency iterative let it continue to get better?
Waterfall is the logic of the project scope, also is the product demand as a condition of fixed customers, based on this forecast software development projects need time and resources, the formation of the project plan, if a development team on the schedule for half of the time, found that almost impossible to before the planned release date to complete the rest of the work content, or they will have to release date delayed, either to the project sending more human - obviously this will increase the project cost, also does not necessarily ensure the project can be adjusted according to the new plan is completed, in order to avoid this kind of predicament, using the waterfall model of software development projects often didn't have the following characteristics:
? Before the development starts, all requirements are very clear, clear, will not change in the development process, and as a milestone or final delivery acceptance criteria;
? Development teams have done similar products, the demand for familiar and sure enough,
For agile development, "instead of" product is split into several small iterations, if see each iteration as a project, and then the most critical in the scope of the project is to deliver a market oriented, can work product as the target of the tone, will first iteration cycle length or product release time node (conditions), the development team capacity (resources), and, in turn, consider under these conditions, according to the need to implement the prioritization of requirements or function, try our best to to what degree, its product compared with the waterfall model, agile development is more suitable for this project:
? It is a new challenge for the development team;
? Product demand complex or uncertain;
? Related party on time to market demand is greater than the perfect degree of product requirements,
So, agile development is suitable for what kind of team? How to determine whether agile is suitable for your team?
At the mentality level, although the content of the agile principle is easy to understand, but because of a lack of special standard, universal practice, started to accept the agile teams need to have enough courage and patience to trial and error, adjust, sum up experience from practice to adapt to the agile development style, in the skill level, agile teams hope that its members are versatile, so any time in the development process, everyone can be on different tasks in different roles contribute our own strength, to ensure that the team can efficient release of production capacity, finish more tasks in finite iterations, the collaboration level, agile teams promoting open and mutual trust relationship, to maintain the high frequency, bidirectional, good communication and interaction, make product users and other relevant parties participate in the development of a complete journey,
In addition to the team itself, when we talk about agile, also need to focus on agile development teams can organization for their agile practices provide a powerful support environment, this would require the organization top for agile values have a high identity, for agile have a correct understanding of basic ideas and concept, and agile development teams enough trust, autonomy and improve space,