I. Overview of Agile
1. What is agile?
- Agile is a flexible way of making software available to users as quickly as possible as soon as possible and is seen as an improvement (to some extent) when placed next to older models. like the Waterfall Model
- Repetitive & incremental development
- Requirement can respond to changes quickly and flexibly
- Form of agile:
XP: eXtreme Programming
DSDM: Dynamic System Development Method
RUF: Rational Unified Process
2. Agile Manifesto – AGILE Manifesto
- 12Cá nhân và sự tương hỗ quan trọng hơn quy trình và công cụ
- 12Phần mềm chạy tốt quan trọng hơn là tài liệu đầy đủ
- 12Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng
- 12Phản hồi với sự thay đổi quan trọng hơn bám sát kế hoạch
II. Scrum at a glance
1. Three roles (Role):
- Product Owner: is the product owner, who determines what functions the product has and who decides the Product Backlog. Usually this role is assumed by the customer or the client’s representative.
- ScrumMaster: is the person who makes sure Scrum processes are implemented properly and smoothly, helping Team perform the best product development work.
- Development Team: A team of 5-9 software engineers responsible for product development. The project team must work with the Product Owner to decide what to do during this Sprint and what the outcome will be. At the same time, the group also discussed to provide solutions, estimating the time to perform the work, the meeting to evaluate the work results. If the project is large we need to split it up into small projects.
2. Scrum tools (artifacts)
- Product backlog: This is a priority list of features or other outputs of the project, which can be understood as a project’s requirements list. The Product Owner is responsible for setting the priority of each item (Product Backlog Item) in the Product Backlog based on the values defined by the Product Owner (usually the business value).
- Sprint backlog: This is a sprint plan; is the result of a planning meeting. With the Product Owner combination, the team will analyze the requirements from high to low priority to realize items in the Product Backlog as a to-do list (TODO list).
- Burndown Chart: This is a chart showing the trend of the project based on the amount of time remaining to complete the job. The Burndown Chart can be used to track the progress of the Sprint (called the Sprint Burndown Chart) or the entire project (Project Burndown Chart). The burndown chart is not a standard element of Scrum under the new definition, but is still widely used due to its usefulness.
3. Four meetings (4 Events)
- Sprint Planning meeting (Meeting to plan for each phase)
- Daily Scrum Meeting (Daily Review Meeting)
- Sprint Review (Meeting to summarize each stage)
- Sprint Retrospective meeting – Sprint retrospective meeting
4. How does Scrum work:
The Product Owner creates the Product Backlog that contains the project requirements with the items in order of priority. The production team will gradually realize the requirements of the Product Owner with repeated sprints from 2 to 4 working weeks (called Sprint) with the input of items in the Product Backlog. , the output is complete Potentially Shippable Product Increment.
Before the whole team can sprint in the sprint, the production team meets with the Product Owner to plan a sprint. The result of the planning session (the way Scrum works) is that the Sprint Backlog contains the work to be done during a Sprint.
During the development process, the team will have to update the Sprint Backlog and conduct a daily meeting (Daily Scrum) to share the progress of the work as well as obstacles in the process of working together. The team is empowered to self-manage and organize their own work to complete the work during the Sprint. At the end of the Sprint, the team creates software packages that are fully functional, ready to be delivered (shippable) to customers. The Sprint Review meeting at the end of the Sprint will help customers see what the team has been able to deliver, what remains to be done, or what needs to be changed or improved.
After the Sprint evaluation, the Scrum Master and the team hold a Sprint Retrospective meeting to look for improvements before the next Sprint begins, which will help the team continually learn and grow. through each sprint.
Sprints will be repeated until the Product Backlog items are completed or when the Product Owner decides to stop the project based on the actual situation. By using the “more valuable than first” strategy, items that bring more value to the project owner are always completed first. Therefore, Scrum always brings the highest value to investors for the project. Because the process is always improving, the Scrum team often has very high labor productivity. These are two great benefits that Scrum brings to the organization.
III. Compare the Waterfall model with Scrum
|Testing takes place in every iteration||Tested at the end of the stage|
|Developing Scrum saves time and money by considering regular sprints during development.||It may take more time because the evaluation is only conducted in the results, if found inappropriate, the process will return to level 1.|
|The work is divided into groups as an individual responsibility.||The work is divided into phases. Working group closely.|
|Scrum gets feedback from customers and stakeholders. Clients are kept in the loop and constantly respond throughout the development process.||The necessary documents are made at an early stage. Appropriate documentation only takes place during the requirements analysis phase.|
|The Scrum development process works well for difficult and complex projects.||The waterfall model works well with smaller projects.|
|It has no defined phase.||The waterfall model has clear stages and is defined to work in the project.|
|Scrum welcomes changes at the beginning and the end of development.||Waterfall welcomes changes only at request stage. There is no freedom to make changes at a later stage.|
|The development process is divided among groups as an individual, it does not wait for the previous stage to complete.||The stages and processes are completed at the same time.|
|It divides its work into sprints and is then assigned by team members.||It divides its work into continuous stages and processes.|
|The software is shown to customers at an early stage. That is why changes are welcome.||Software is manufactured at the time of delivery to the customer.|
|It is not tied to a tight deadline. Customers are also in no hurry for the software because they are aware of any changes or developments that occur to their products.||The process of waterfall development is tied to a tight deadline.|
|Customers are informed of every step that takes place during project development.||Customers will only contact the product delivery date|
IV. Challenges and solutions
- Change requirement: Product backlog
- The test scope will increase: Automate regression test – Automate regression test Priority test – Arrange test order Light document – lightweight document
- Testers need to have many different skills: Training / coaching / applying collective intelligence to solve a complex problem (brainstorming)
- Testers need to change from the traditional way of doing things to Agile: Concepts, experiences / attitudes and cultures
V. Testing strategy
- Whole team approach
- Automation: continuous integration: continuous construction and automated deployment
- Unit test
- Regression test
- TDD (Test Driven Development) is a working method, or a modern coding process. Programmers will perform through small steps (BabyStep) and progress is guaranteed continuously by writing and running automated tests (automated tests). The programming process in TDD is extremely focused on the following continuous steps:
- 12Viết 1 test cho hàm mới. Đảm bảo rằng test sẽ fail.
- 12Chuyển qua viết code sơ khai nhất cho hàm đó để test có thể pass.
- 12Tối ưu hóa đoạn code của hàm vừa viết sao cho đảm bảo test vẫn pass và tối ưu nhất cho việc lập trình kế tiếp
- 12Lặp lại cho các hàm khác từ bước 1
TDD development process:
- Pair testing: Developers & Testers
- Risk-based testing: To minimize risk, we will have to prioritize testing.