Agile development is a kind of human-centered, iterative and gradual way to open. In agile development, the construction of software projects is divided into sub-projects, the results of each sub-project are tested, with integration and operational characteristics. In short, a large project is divided into several interconnected, but can be run independently of small projects, and completed, in the process of software has been in a state of use.
Agile development consists of several software development methods, including: Extreme Programming, Scrum, lean development, dynamic system development methods, feature driven development, etc.
Scrum is an Agile development framework that consists of a development process, several roles, and a set of prescriptive implementation methods. It can be used for software development, project maintenance, and can also be used as a framework for managing agile projects.
Scrum defines four main roles: (1) Product owner: The role is responsible for the product's vision, balancing the interests of all stakeholders, and prioritizing the backlog of different product requirements. It is a point of contact between the development team and the customer or end user. (2) Stakeholders: There is a direct or indirect interest between the role and the product, usually a customer or an end user representative. They are responsible for collecting and compiling product requirements and reviewing project results. (3) Scrum expert: it is responsible for directing the development team to develop and practice scrum. It is also a focal point for communication between the development team and the product owner. (4) Team member: the project developer.
Agile Manifesto: Individuals and interactions focus on processes and tools, working software over detailed documentation, customer collaboration over contract negotiations, response changes over compliance with plans.
Principles of the Agile Manifesto: Our highest priority is to consistently and early deliver valuable software to satisfy our customers; embrace change, even in the late stages of project development. Agile processes are willing to accept changes for the customer's competitive advantage, often delivering working software, a few weeks or a month apart, tend to take shorter cycles, and business people and developers must work closely together throughout the project, building projects around motivated individuals, and providing the necessary environment and support for individuals, The most effective and efficient way to communicate information between and within a team is to give it confidence; Working software is the primary measure of progress, agile processes promote sustainable development, and project sponsors, developers and users should maintain a sustainable pace , Continuous pursuit of technical excellence and good design can improve agility, simplicity-based, it is the art of reducing unnecessary work; the best architectures, requirements, and designs emerge from a self-organizing team, and the team periodically reflects on how to become more efficient and adjust its behavior accordingly.
An overview of Agile development