Agile Learning 123

"Agile Software Development" book. . .

This blog, probably introduce the Declaration of Agile software development principles and the principles of object-oriented design, as well as some understanding of individuals ( italics font make a difference ). . .

Personal feeling, to know one thing, we must understand its design, in order to know better how to learn. . .

 

First, the Manifesto for Agile Software Development

Individual and interactive than processes and tools

Working software is higher than exhaustive documentation

- focus on the product itself, rather than the form and process documentation should be concise and easy to read, easy to maintain and synchronize

Customer cooperation than contract negotiation

- take the initiative to embrace change, timely response, continuous delivery

Respond to changes than following a plan

- Develop a clear short-term achievable goals, rough plan mid-term, long-term goal to have about the general direction

 

Second, follow the principles of the Agile Manifesto

1, our most important goal, through continuous delivery of valuable software as soon as possible so that customer satisfaction.

- continuous delivery, rapid iteration

2, is pleased to face change, even late in development, too, for the customer's competitive advantage, agile process to master change.

- applies to Internet companies more agile, mobile end even more, there is a period of opportunity may be short of pathetic, should try to keep the flexibility of software, reducing the impact on the system caused by

3, often deliver working software, separated by a few weeks or a month or two, tend to take a shorter period.

- as soon as possible, often delivering software can meet the needs of working at Google, and even software can be done to deliver a working day, ie the beta version

4. Business people and developers must cooperate with each other every day projects are no exception.

- timely communication, to avoid gaps in information, reduce latency, always adjust

5, to stimulate individual morale to them as the core to build the project, provide the necessary environment and support, combined with confidence and thus labeled target.

- the impact of process and methodology for the project only a minor impact on the primary impact is the man

6, both inside and outside the team, deliver the highest efficiency is the best way information face to face conversation.

- Mail can not hear the tone of voice can not see the face, face to face communication is the most efficient way

7, working software is the primary measure of progress.

- The final output is a matter of working software, the importance of so, fast iterative delivery goes without saying that this is an important element to measure the progress of a project

8. Agile processes promote sustainable development, responsible person, developers and users can work together to continue to maintain its steady pace.

- clear objectives, a detailed set of short-term achievable goals, of course, require a long period of training and exercise this pace

9, persistent pursuit of technical excellence and good design, thereby enhancing agility.

- refused to mediocrity, strive for excellence, good design can reduce a lot of trouble later work, such as technical debt!

10, with simple faith, which is trying to reduce unnecessary workload of art.

- Light the document, light flow, heavy output, weight goal

11. The best architectures, requirements, and designs emerge from self-organizing teams.

- think of a word: the highest level of management is a common goal, the whole team shared responsibility, rather than a single mandate responsibility

12, the team regularly reflect on how to improve the effectiveness, and therefore adjust their behavior performance.

- constantly thinking summed up, tuning, reducing unnecessary consumption of resources

 

Third, the object-oriented design principles

SRP : The Single Responsibility Principle

   On a category, it should only be one the cause of change.

OCP : Open Closed Principle

   Software entities (classes, modules, functions, etc.) should be extensible, but can not be modified.

LSP : Liskov Substitution Principle

   Subtype must be able to replace their basic types.

DIP : Dependency Inversion Principle

   Abstract should not depend on the details, the details should depend on the abstract.

ISP : Interface Segregation Principle

   Should not force users to rely on the method they do not, the interface belongs to the user, it does not belong in the class hierarchy.

REP : Reuse release equivalence principle

   Reuse granularity is released granularity.

A CCP : common principles reuse

   All the classes in a package should be common reuse, reuse if a class package, then they would reuse all classes in the package, there is no close link between each class should not be in the same package.

CRP : Common Closure Principle

   A package for all classes in the same class nature of the change should be common closed if a change to affect a package, it will have an impact on all of the classes in the package, but does not have any impact on other packages.

ADP : No Dependencies Principle

   Present in the ring is not allowed in the dependency packet, it should not be dependent on the details.

SDP : stability depend principle

   Dependency towards stable direction.

SAP : stable abstract principles

   A degree of abstraction and other packages should be consistent with the degree of stability.

 

About Agile software development model, and its Declaration of Principles that some of the above, the follow-up will continue to update relevant, on the development of design, agile testing of some of the content.

Note: excerpt from https://www.cnblogs.com/imyalost/, only to learn

Guess you like

Origin www.cnblogs.com/jimmychang/p/11745432.html
Recommended