Hello everyone, the following will explain my background in agile software development, understanding and in the actual use of agile development in the misunderstanding. If there is an understanding of the wrong place, please correct me!
Agile Software Development Agile Software development
Agile Development is a software development approach, based on iterative and incremental development, through self-organization, cross-team, communication and collaboration to complete the development work. [1]
Presumably you will see the following diagram, for the entire large and complex software projects, in the background knowledge needs to understand the basis of the first, as far as possible to the Project module division, and minimize coupling, for each small module
Enter this part of the sprint phase, and give developers positive energy feedback (including small demos that can be used and user-given) by constantly delivering in-person discussions of the software that can be used (which may only be a small part of the final functionality)
Software products that users can use in part, making the entire development process effective and non-rigid.
Eh As I said, agile software development is good for developers and users, and is developed with agile software in the future?
In fact, Agile software development for the developer's own experience quality requirements are relatively high, if not a clear and experienced project developers, I am afraid it is difficult to extract user needs (many times, users of their own needs is the table
Reach not clear drip ~), and will be effective division of the project.
Agile Software Development There is a manifesto and 12 guidelines, you can probably look at the 12 guidelines for the specific understanding of agile software development, we elaborate on the declaration of inequality understanding.
12 Guidelines for Agile development
This link has a detailed description of the 12 guidelines http://blog.csdn.net/joeyon1985/article/details/42266135 , the current feel for us is that this is a strong team for us, With initiative, you can
Continuously deliver part of the functionality of the product and be able to adjust the team status to accept suggestions and unknown changes.
Agile Software Development Manifesto
Individuals and interactions above processes and tools
Working software is more than detailed documentation
Customer cooperation is higher than contract negotiation
Response change is higher than following plan
O (∩_∩) o~ The next step is to understand the four inequalities of the Agile Software Development Manifesto, first let me emphasize:
1. Agile Software Development ! = Quick completion of project
As long as your boss feels agile is fast all day, I think the development situation will be better.
Agile Software Development is the face of complex long-term projects, with the scalability of the development of a way to achieve the global optimal, rather than local optimization oh ~
2. The right side is more important than the left, but it doesn't mean the wrong way.
The left-hand side refers to the four inequalities in the Agile Software Development Manifesto, namely, individuals and interactions > Processes and tools. The guidelines on the left and right are nothing more than a choice in the context of a project without magnitude, no good or bad!
3. Emphasize face-to-face communication ! = No Development documentation
Please do not understand anything spicy is absolutely it ~
4. Long-term development of practical projects! Long-term development of practical projects! Long-term development of practical projects!
- Individuals and interactions > Processes and Tools
A person is an animal that needs to continue to see positive feedback of action, and only persistent positive feedback can persist in repeating a process. Kegua Zi is continuous positive feedback, long-term learning plan is difficult to adhere to because there is not fast enough
Positive feedback. [2] Think about how you would prefer to work in a small sense of accomplishment and positive energy to accomplish a task, or a pattern of strong stress that does not see progress?
Agile programming is about trying to make the fastest positive feedback to programmers so they don't get tired so quickly that no one wants to continue working on the project.
Agile Development emphasizes the return of attention to "people", and the philosophical thought behind it can be traced back to Kant's "human being".
At the same time, advocate face-to-head communication and customer participation in development, make up for lack of documentation and generate information flow problem, think that developers, developers and customers to collaborate, mutual trust, respect for each other to ensure successful communication
Necessary. But note that Agile software development pays attention to the discussion of the project, but not the need for documentation. Agile development is not wrapping paper without documents and processes.
The reality behind it--the high level of human capital in the development process. A typical project spends more than 20 times times as much money on the hardware as it spends on a computer, which means that a project spends 2 0 dollars a year on programmers and spends just $100,000 on computers. Many smart programmers say, "We're so smart, we find a way to save 20% of the hardware overhead," and then they make the source programs large and difficult to maintain, and they say, "but we save 20% or 20,000 dollars a year, a lot of savings." But the financial facts tell us that if the program is simple and easy to scale, we will save at least 10% of the manpower overhead, which would be a much greater savings. At the same time, the career of software development also determines the number of small but capable team's efficiency and output greater than the bloated, chaotic large team. Agile development generally applies to 20-40 people, or even less.
- Work-Ready software > documentation
Unlike traditional software development models, customers can only truly experience the system after it has been developed. Agile programming improves customer feedback by requiring continuous delivery of available software, and the shorter the cycle, the longer the development cycle, and the time it takes to change functionality and gain user acceptance. But not requiring you to complete the project quickly, developers do not have much pressure, because the work of the software is to give you a small sense of accomplishment, face-to talk is to give you more direct and effective feedback.
The
reality behind--"fast fish eat Slow fish" competition mode.
different from the industrial society of the use of assembly lines, large-scale production model, the information Age more emphasis on user demand for rapid response. The low cost and high reliability of standardized production can not directly guarantee the high market share. On the contrary, the user needs of the delicate grasp and rapid response is user-oriented service company Lifeline!
- Customer Cooperation > Contract negotiation
Agile development requires that during the project, business people and developers must work together, participate in development, interact with efficient information platforms, and support them in ways that reduce ambiguity and communication. The agile approach completes the transformation from attaching importance to text to emphasizing dialogue, from attaching importance to writing to valuing understanding.
The reality behind it--users cannot effectively describe their own needs
Admittedly, in the actual project development process, the user is not able to describe their own needs effectively, if there is failure, it will lead to the final product can not fully meet customer needs. The most classic examples are Apple's ipad and iphone. Before Steve Jobs did not launch the iphone, users were unaware that they needed a smart machine and, more accurately, were unable to effectively describe the needs of the smartphone. That is one of the reasons why companies such as Nokia and Motorola have failed. They are not without the market sector, not without market research, user needs analysis, the problem is that the general user in the absence of relevant knowledge and guidance is not able to their own needs (especially potential needs) to effectively describe. This flaw in the market competition with the pace of the accelerated appear more deadly!
- Respond to changes > follow plans
the slogan for Agile development is embracing change, which is to welcome changes in demand, even in the late stages of project development. Be good at leveraging changes in demand to help customers gain a competitive advantage.
the reality behind--trial and error cost is low, the execution demand is high
The most important feature of modern society is diversification, with the so-called "internet thinking" is "to center", specific to the individual should be Open mind. This social reality response in software development is that the cost of trial and error has become quite low. But at the same time, the fast-changing business environment also puts high demands on executive power, and the key indicator of execution is the rapid response to change!
written in the last words in fact, the agile software development method demands the "person", needs the thought pattern and the value support, can truly understand and use "the agile" method. In the book "Management 3.0", the author Jurgen Appelo gave a six eye-shaped creatures, and named "Martie", representing the use of "agile" method of the people should have six thinking patterns, such as the "Six Eye strange", so to achieve agile software Development road is still very long.
Citation literature
[1].http://www.cnblogs.com/kkun/archive/2011/07/06/2099253.html Agile Software Development
[2].http://www.zhihu.com/question/23429937 What is Agile software development (Agile software development)
Also attached to an article on Agile software Development objection http://www.woshipm.com/zhichang/160479.html Why I do not recommend agile development?
What is agile software development? Comparison with traditional software engineering