QUESTION 1: Agile Methodology Recommendation
The manager tells that the [Scrum/XP/Kanban] process should be used for the project.
In my opinion, I completely agree with this statement for several reasons:
a. Regarding the project requirements (Requirements)
• Reliability
The project needs to be stable and continuously improved.
[Scrum/XP/Kanban] helps break down tasks and regular updates.
⇒ This ensures the system becomes more reliable over time.
• Types and number of requirements
The project has many complex features or multiple tasks to handle.
[Scrum/XP/Kanban] allows us to handle these incrementally and efficiently.
⇒ This is suitable for projects with many features or tasks.
• How often requirements change
Requirements may change frequently due to user needs or market demands.
[Scrum/XP/Kanban] is flexible and adapts well to changes.
⇒ This model is ideal for projects with changing requirements.
• Early-stage determination of requirements
Many requirements are unclear at the start and will be added during the process.
[Scrum/XP/Kanban] supports iterative development, allowing for ongoing
adjustments.
⇒ You don’t need to know everything upfront.
b. Regarding the development team (Development team)
• Team size
The team is small (3–6 people), working collaboratively and flexibly.
⇒ [Scrum/XP/Kanban] works well with small teams.
• Understanding of user requirements
The team frequently communicates with customers or users.
[Scrum/XP/Kanban] provides opportunities for quick feedback.
⇒ This helps the team understand user needs clearly.
c. Regarding user involvement (User involvement)
Users or customers participate regularly.
[Scrum/XP/Kanban] allows continuous feedback and improvement.
⇒ This ensures the product meets user needs and is easy to use.
CONCLUSION
In conclusion, the software development process I recommend for this situation is
[Scrum/XP/Kanban].
[ This project requires frequent changes, working step by step, and receiving continuous
feedback. [Scrum/XP/Kanban] is an ideal choice because it aligns with these needs. The
team is small, adaptable, and involved with the users regularly — all factors that
contribute to the project's success. ]
1. Requirements characteristics
[dẫn chứng từ đề]
=> [Scrum/XP/Kanban] helps break down tasks and regular updates, suitable for projects
with many features or tasks, ideal for projects with changing requirements.
2. User Involvement
[dẫn chứng từ đề]
=> The users are clearly identified and take part in the project.which works well with
[Scrum/XP/Kanban] because it needs regular feedback
3. Customer Involvement (người đặt app)
[dẫn chứng từ đề]
=> [Scrum/XP/Kanban] works well when customers take part in the project regularly.
4. Team’s skill and experience
[dẫn chứng từ đề]
=> [Scrum/XP/Kanban] is most effective when the team is experienced, proactive, and
comfortable with agile principles.
5. Project deliverables
[dẫn chứng từ đề]
=> Progress goals are clearly defined, code based on user feedback.
6. Top Management Commitment
[dẫn chứng từ đề]
=> Works best when top management is committed to supporting agile practices.
The manager tells that the Lean process should be used for the project. From my opinion,
I completely agree with this statement for several reasons:
a. In terms of requirement characteristics
• Reliability
- The system must ensure stable and consistent performance.
- Continuous improvement and waste reduction practices contribute to enhanced system
quality.
⇒ Lean helps maintain a reliable and efficient system.
• Types and number of requirements
- Requirements focus on delivering customer value efficiently.
- Emphasis is placed on eliminating non-essential features to focus on high-impact
functionalities.
⇒ Lean supports customer-centered development with streamlined features.
• How often the requirements can change
- Requirements evolve based on feedback and market conditions.
- Agile thinking in Lean enables smooth handling of changes.
⇒ Lean fits projects where flexibility and responsiveness are needed.
• Determination of requirements at an early stage
- Initial goals are known, but detailed requirements emerge over time.
- Iterative refinement is encouraged to adapt to real needs.
⇒ Lean is appropriate when not all requirements are clear at the beginning.
b. In terms of development team
• Team size
+ A lean and efficient team is already available.
⇒ The team size aligns well with the Lean approach.
• Understanding of user requirements
+ The team regularly reviews performance and adjusts based on user feedback.
⇒ Lean fosters continuous learning and improvement.
c. In terms of user involvement
+ Short feedback cycles ensure user involvement and satisfaction.
⇒ Frequent user input keeps the system aligned with actual needs.
CONCLUSION
In conclusion, the software development process I recommend for this situation is Lean.
[ The project focuses on efficiency, speed, and reducing waste while still delivering high
value. Lean is well-suited for these goals due to its emphasis on iterative development,
user feedback, and lean team structure. ]
The manager tells that the Unified Process (UP) should be used for the
project. From my opinion, I completely agree with this statement for several
reasons:
a. In terms of requirement characteristics
• Reliability
- The system must meet predefined performance and reliability standards.
- Detailed documentation and structured processes help ensure quality.
⇒ Unified Process is a strong choice for projects that require consistency
and planning.
• Types and number of requirements
- Requirements are comprehensive and need detailed planning.
- Complex systems benefit from a methodical approach.
⇒ Unified Process is effective for large-scale systems with many features.
• How often the requirements can change
- Some flexibility is allowed, but changes need to be controlled.
- Formal change management is part of the process.
⇒ Unified Process suits projects with mostly stable but adjustable
requirements.
• Determination of requirements at an early stage
- Most major requirements are defined at the beginning.
- Project success relies on clear initial planning.
⇒ Unified Process is appropriate for projects with well-established goals.
b. In terms of development team
• Team size
+ A large team with clearly defined roles and responsibilities is available.
⇒ Unified Process is designed for structured teamwork and collaboration at
scale.
• Understanding of user requirements
+ Use-case modeling and detailed analysis ensure clarity.
⇒ Unified Process helps developers fully understand user expectations.
c. In terms of user involvement
+ User input is planned through formal stages and milestones.
⇒ The structured nature of Unified Process ensures user feedback is
integrated systematically.
CONCLUSION
In conclusion, the software development process I recommend for this
situation is Unified Process.
[ The project is large, complex, and demands detailed planning and control.
Unified Process supports these needs with its structured phases, formal
documentation, and lifecycle management, ensuring both quality and
predictability. ]
QUESTION 2: What type and level/stage of testing would you
suggest the team to do? Who will do the test in each test
level/stage?
I. Test types và test levels
- Functional testing: Unit testing, integration testing, system testing, acceptance
testing.
- Non-functional testing: Performance Testing, Security testing,...
II. Template cho câu 2
The type of testing that I recommend the team to do for this project is a combination of
the type of testing about functional testing and non-functional testing.
- Functional testing : Regarding functional testing, the team can plan to conduct
the following LEVELS of testing:
+ Unit testing (Developer): This type of testing focuses on testing individual parts
of the code . It ensures that each unit works correctly in isolation
+ Integration testing (Developer or Tester): Checks if different parts of the
software work well together when combined.
+ System testing (Tester) is the process of testing the entire application. This is
important to ensure the application works well.
+ Acceptance testing (Customer): This is the final level of functional testing,
usually performed by the customer. It checks whether the product is ready for
release. If the customer accepts the product, the product is complete.
- Non-functional testing: Regarding non-functional testing, the team can plan to
conduct the following LEVELS of testing:
+ Performance Testing: Test the speed and stability of the software under
different conditions. It helps to ensure that the application meets the performance
requirements.
+ Security Testing: This test helps find weaknesses in the software that can be
attacked. It ensures that user data is protected and the system is safe from attacks
or unauthorized access.
+ Usability Testing: focuses on evaluating a system's user interface and overall
user experience. Tests if the software is easy to use, clear, and user-friendly.
+ Compatibility Testing: Ensures the software works well on different devices,
browsers, and operating systems.
I believe this combining both functional and non-functional testing, the team can cover
all important aspects of the software. This helps detect errors early, improve the user
experience, ensure the system is safe and fast.
Nhóm Phương pháp Mô tả ngắn
1. Agile linh hoạt Scrum, XP, Kanban Nhẹ, linh hoạt, phù hợp dự án thay đổi nhanh
2. Tối ưu quy trình Lean Tập trung loại bỏ lãng phí, nâng cao giá trị
Nhóm Phương pháp Mô tả ngắn
3. Quy trình chặt chẽ Unified Process (UP) Cấu trúc rõ ràng, phù hợp dự án lớn, ổn định
XP (Extreme
Tiêu chí Scrum Kanban Lean Unified Process (UP)
Programming)
Cao nhờ tối
Cao nhưng cần cải Rất cao nhờ kiểm Ổn định, cải Cao do tài liệu và kiến trúc rõ
1. Độ tin cậy (Reliability) ưu hóa quy
tiến qua từng Sprint thử liên tục tiến dần ràng
trình
Nhiều tác vụ Tập trung
2. Độ phức tạp và số lượng Phức tạp, nhiều chức Phức tạp, cần độ
nhỏ phát sinh vào giá trị Nhiều, chi tiết, phức tạp
yêu cầu năng chính xác cao
liên tục khách hàng
Linh hoạt,
3. Tần suất thay đổi yêu Thay đổi thường Thay đổi rất Thay đổi linh
theo nhu Ít thay đổi, cần kiểm soát chặt
cầu xuyên thường xuyên hoạt
cầu
Dần hoàn
4. Xác định yêu cầu ban Một phần rõ ràng, Không đầy đủ, thay Không rõ
thiện theo Được xác định từ sớm và đầy đủ
đầu phần còn lại thay đổi đổi liên tục ngay từ đầu
phản hồi
5. Quy mô nhóm phát Nhóm vừa (4-5 Nhóm nhỏ, kỹ Nhóm nhỏ, Nhóm gọn,
Nhóm lớn, phân chia vai trò rõ
triển người) năng cao linh hoạt hiệu quả
Vừa phải,
6. Hiểu biết yêu cầu người Cao, tương tác định Rất cao, giao tiếp Cao, qua cải
theo luồng Cao, nhờ mô hình use-case
dùng kỳ hàng ngày tiến liên tục
công việc
7. Sự tham gia của người Cao, tham gia định Rất cao, liên tục Linh hoạt, Liên tục, Có kế hoạch và theo quy trình
dùng kỳ mỗi Sprint thường qua phản
XP (Extreme
Tiêu chí Scrum Kanban Lean Unified Process (UP)
Programming)
xuyên hồi
Công việc Tối ưu quy
Dự án mới, phức tạp, Dự án yêu cầu chất Dự án lớn, cần tài liệu, kiến trúc
Khi nào nên chọn thay đổi liên trình, giảm
dễ thay đổi lượng code cao rõ
tục lãng phí
Nhóm
Dự án không cố định Dự án cần
Nhóm thiếu kỹ không quen
Khi không nên chọn chu kỳ, thiếu vai trò quy trình Dự án nhỏ, cần linh hoạt
năng kỹ thuật tối ưu hóa
Scrum chặt chẽ
quy trình