Agile development FAQ

Source: Internet
Author: User

Differences between agile development and code writers without standards and documents

Contrary to some ideas, agile developers are not the unique owners who do not write code according to rules or restrictions. "Cowboy code" is a sign of poor rules and management, and is not professional. If the team has such code writing, you should do your best to change this situation for the benefit of the customer.

 

What documents do agile development require at least development and maintenance?

However, in reality, most people do not like to write or study documents. Therefore, too many documents only consume a limited amount of time and do not bring much benefit;

A high-level summary document is a contract between the user and the development team. The consistent understanding of both parties facilitates communication and interaction. The user only cares about what he wants and does not care about how to implement it, we do not care about how difficult the implementation is, so we cannot expect users to understand the technical problems we encounter, or even understand our code or comments;

Agile Development attaches importance to the role of documents and maintenance of documents. It deems that documents should be small and refined. Generally, it is recommended to develop and maintain three documents:

Specification for software requirements or product specification: defines the functions and boundaries that the software should possess, so that the software stakeholders can have a consistent understanding of the software, it serves as the basis for discussion between users and the development team, and is constantly updated and maintained during the development process;

Architecture Design Document: How is software implemented and what is the internal relationship?

Project management plan: how to implement, test, and release the plan in stages;

 

Does agile development require system design?

Agile development replaces a large cycle with a small cycle. A small cycle includes requirements, design, development, testing, and release. This process involves the design process, that is, system design is required;

Because the complete design requires relatively complete information and a relatively long time, and is relative to a small cycle, agile development does not advocate a highly detailed and complete design, we advocate a framework design with a large granularity. It generally refers to architecture design, system design, or outline design of functional modules to avoid architecture-level changes in future reconstruction, then, we will gradually expand and refine the implementation process;

You just need to make a summary design without having to make a detailed design. [You can divide modules, classes, and public interfaces].

Class implementation can be directly determined by the coding staff. after the project is completed, the class implementation model and class relationship diagram can be obtained through the post-processing tool.

Traditional design methods such as structured design, object-oriented analysis (OOA), object-oriented design (OOD), top-down, and rapid prototyping can all be used in the agile development process;

 

Does agile development require a project plan?

Commercial software development must take responsibility for profit acquisition. Therefore, it has high requirements on product functional integrity, stability, and instant performance. It is an organized and targeted action, therefore, it requires a project plan, but this plan is a short-range plan that develops a development plan based on unrealized functions, feedback from the previous version, and organizational goals; only in this way can we continuously integrate new changes;

Annual Plan and monthly implementation plan. [The annual plan is generally unchangeable, and the monthly plan can schedule the demand based on the actual situation]

 

How long is the iteration cycle of agile development?

For general small projects, a major feature version can be delivered every month, and a change or Bug version can be delivered every two weeks. When estimating the project development progress, you must have a rough plan for the delivery content.

Of course, it cannot be released frequently, especially the urgent release of major bugs. This will reduce users' expectations and increase users' costs, bringing extra psychological burden to users: he believes that the product quality is low and the quality control is not rigorous;

 

Why does agile development advocate minor versions? What are the advantages of a minor version?

The purpose of a minor version is to break down complexity, reduce risks, and improve team morale. Minor versions have many advantages:

I. Fewer overall risks: the minor version changes slightly, and is always partially adjusted and increased on the basis of the previous version, resulting in low technical complexity. Due to a small number of planning functions, the workload is easy to estimate, therefore, the overall risk is relatively small, and it is often released on schedule;

Ii. Strong requirement acceptance ability: Because the minor version can quickly implement and release the test, and then enters the planning implementation cycle of the next version, the new requirement can quickly enter the development field of view once it is proposed, it can be implemented as soon as possible;

Iii. efficient collaboration in testing and development: development and testing can work in parallel. When the first version is developed and implemented, the test scheme and use case are tested and designed. After the first version is released, the developer enters the next version round, tests the application test solution, tests the version just released, and submits bugs. The developer fixes all bugs found in the previous round at the end of the next version, and then releases the new version, in this way, development and testing can achieve efficient collaboration;

 

What is the relationship between agile development and reconstruction?

Agile development is based on refactoring and is always in the restructuring process;

 

Why does agile development emphasize the participation of team members and users?

People are the subject of all relationships and the subject of productivity improvement. agile emphasizes that the high participation of team members is to unify understanding and turn the team's goals into the work goals of everyone, it is recognized by each team member to form a high degree of cohesion, in order to achieve the effect of teamwork and efficient collaboration;

Because there are no highly detailed documents, the only channel for information exchange between members is face-to-face communication. A good team atmosphere and collaboration promote this communication and ensure accurate and effective message communication;

Due to the lack of professional training, users cannot clearly and accurately express their intentions, resulting in ambiguity and ambiguity of needs; users' participation ensures that vague and undefined boundaries are met during interaction;

What we strive to do is to implement what the user needs and finally let the user like it. Only the user like it can make good use of it. So how can we not listen to the user's opinions seriously?

In a word, users participate in helping us do the right thing!

 

How can we evaluate that our team and development process are agile?

Because agile development does not have a standard practical process for reference, it is difficult to determine its agile development process through a specific process, so how can we assess that our team and development process are agile? The method used here is to assess the agility of the Team and its development process based on the atmosphere presented by the Team, the project operation status, and the perceptual knowledge of the team members, we think that the method to evaluate the agility of the project team and development process is as follows:

 

1. The team has a shared vision and is confident in the vision.

2. The team has a clear stage goal and is known to each member;

3. The team knows the current plan: What to do, when to complete, and expected results.

4. Low coupling of team tasks and close collaboration;

5. The release process is easy and pleasant. Building versions and continuously testing are one of the norm actions;

 

Can Agile development shorten project time and improve quality?

Can Agile development shorten the project cycle and improve the overall quality? Yes, but I cannot provide quantitative data for reference. I can evaluate and infer from several aspects that agile development can shorten the project time and improve the quality;

1. the user's participation helps the team to complete and correct the functions at one time, reducing the rework time;

2. Continuous reconstruction and testing and release can discover problems in the early stage, and the overall quality is significantly improved;

3. Process goal orientation: the team is highly focused on the project objectives, improving productivity;

4. Continuous Release is a positive encouragement to the team. The sense of honor and desire to succeed keep the team passionate;

 

Agile development andCmmeThe biggest difference:

I think cmme is a process of being large and small, while Agile is a process of being small and large.

CMMS provides all possible considerations for you to choose from.

Agile is to give all the points that must be considered, and then let you expand on it

Methods do not matter. The key is to select and use the correct method. If we only discuss the theories in these books, they are flawed.

 

Differences between agile development and code writers without standards and documents

Contrary to some ideas, agile developers are not the unique owners who do not write code according to rules or restrictions. "Cowboy code" is a sign of poor rules and management, and is not professional. If the team has such code writing, you should do your best to change this situation for the benefit of the customer.

 

What documents do agile development require at least development and maintenance?

However, in reality, most people do not like to write or study documents. Therefore, too many documents only consume a limited amount of time and do not bring much benefit;

A high-level summary document is a contract between the user and the development team. The consistent understanding of both parties facilitates communication and interaction. The user only cares about what he wants and does not care about how to implement it, we do not care about how difficult the implementation is, so we cannot expect users to understand the technical problems we encounter, or even understand our code or comments;

Agile Development attaches importance to the role of documents and maintenance of documents. It deems that documents should be small and refined. Generally, it is recommended to develop and maintain three documents:

Specification for software requirements or product specification: defines the functions and boundaries that the software should possess, so that the software stakeholders can have a consistent understanding of the software, it serves as the basis for discussion between users and the development team, and is constantly updated and maintained during the development process;

Architecture Design Document: How is software implemented and what is the internal relationship?

Project management plan: how to implement, test, and release the plan in stages;

 

Does agile development require system design?

Agile development replaces a large cycle with a small cycle. A small cycle includes requirements, design, development, testing, and release. This process involves the design process, that is, system design is required;

Because the complete design requires relatively complete information and a relatively long time, and is relative to a small cycle, agile development does not advocate a highly detailed and complete design, we advocate a framework design with a large granularity. It generally refers to architecture design, system design, or outline design of functional modules to avoid architecture-level changes in future reconstruction, then, we will gradually expand and refine the implementation process;

You just need to make a summary design without having to make a detailed design. [You can divide modules, classes, and public interfaces].

Class implementation can be directly determined by the coding staff. after the project is completed, the class implementation model and class relationship diagram can be obtained through the post-processing tool.

Traditional design methods such as structured design, object-oriented analysis (OOA), object-oriented design (OOD), top-down, and rapid prototyping can all be used in the agile development process;

 

Does agile development require a project plan?

Commercial software development must take responsibility for profit acquisition. Therefore, it has high requirements on product functional integrity, stability, and instant performance. It is an organized and targeted action, therefore, it requires a project plan, but this plan is a short-range plan that develops a development plan based on unrealized functions, feedback from the previous version, and organizational goals; only in this way can we continuously integrate new changes;

Annual Plan and monthly implementation plan. [The annual plan is generally unchangeable, and the monthly plan can schedule the demand based on the actual situation]

 

How long is the iteration cycle of agile development?

For general small projects, a major feature version can be delivered every month, and a change or Bug version can be delivered every two weeks. When estimating the project development progress, you must have a rough plan for the delivery content.

Of course, it cannot be released frequently, especially the urgent release of major bugs. This will reduce users' expectations and increase users' costs, bringing extra psychological burden to users: he believes that the product quality is low and the quality control is not rigorous;

 

Why does agile development advocate minor versions? What are the advantages of a minor version?

The purpose of a minor version is to break down complexity, reduce risks, and improve team morale. Minor versions have many advantages:

I. Fewer overall risks: the minor version changes slightly, and is always partially adjusted and increased on the basis of the previous version, resulting in low technical complexity. Due to a small number of planning functions, the workload is easy to estimate, therefore, the overall risk is relatively small, and it is often released on schedule;

Ii. Strong requirement acceptance ability: Because the minor version can quickly implement and release the test, and then enters the planning implementation cycle of the next version, the new requirement can quickly enter the development field of view once it is proposed, it can be implemented as soon as possible;

Iii. efficient collaboration in testing and development: development and testing can work in parallel. When the first version is developed and implemented, the test scheme and use case are tested and designed. After the first version is released, the developer enters the next version round, tests the application test solution, tests the version just released, and submits bugs. The developer fixes all bugs found in the previous round at the end of the next version, and then releases the new version, in this way, development and testing can achieve efficient collaboration;

 

What is the relationship between agile development and reconstruction?

Agile development is based on refactoring and is always in the restructuring process;

 

Why does agile development emphasize the participation of team members and users?

People are the subject of all relationships and the subject of productivity improvement. agile emphasizes that the high participation of team members is to unify understanding and turn the team's goals into the work goals of everyone, it is recognized by each team member to form a high degree of cohesion, in order to achieve the effect of teamwork and efficient collaboration;

Because there are no highly detailed documents, the only channel for information exchange between members is face-to-face communication. A good team atmosphere and collaboration promote this communication and ensure accurate and effective message communication;

Due to the lack of professional training, users cannot clearly and accurately express their intentions, resulting in ambiguity and ambiguity of needs; users' participation ensures that vague and undefined boundaries are met during interaction;

What we strive to do is to implement what the user needs and finally let the user like it. Only the user like it can make good use of it. So how can we not listen to the user's opinions seriously?

In a word, users participate in helping us do the right thing!

 

How can we evaluate that our team and development process are agile?

Because agile development does not have a standard practical process for reference, it is difficult to determine its agile development process through a specific process, so how can we assess that our team and development process are agile? The method used here is to assess the agility of the Team and its development process based on the atmosphere presented by the Team, the project operation status, and the perceptual knowledge of the team members, we think that the method to evaluate the agility of the project team and development process is as follows:

 

1. The team has a shared vision and is confident in the vision.

2. The team has a clear stage goal and is known to each member;

3. The team knows the current plan: What to do, when to complete, and expected results.

4. Low coupling of team tasks and close collaboration;

5. The release process is easy and pleasant. Building versions and continuously testing are one of the norm actions;

 

Can Agile development shorten project time and improve quality?

Can Agile development shorten the project cycle and improve the overall quality? Yes, but I cannot provide quantitative data for reference. I can evaluate and infer from several aspects that agile development can shorten the project time and improve the quality;

1. the user's participation helps the team to complete and correct the functions at one time, reducing the rework time;

2. Continuous reconstruction and testing and release can discover problems in the early stage, and the overall quality is significantly improved;

3. Process goal orientation: the team is highly focused on the project objectives, improving productivity;

4. Continuous Release is a positive encouragement to the team. The sense of honor and desire to succeed keep the team passionate;

 

Agile development andCmmeThe biggest difference:

I think cmme is a process of being large and small, while Agile is a process of being small and large.

CMMS provides all possible considerations for you to choose from.

Agile is to give all the points that must be considered, and then let you expand on it

Methods do not matter. The key is to select and use the correct method. If we only discuss the theories in these books, they are flawed.

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.