Chủ đề
- Tìm hiểu khi sử dụng
Microsoft® Solution Framework (MSF) for Agile Software Development (MSF Agile)
process template.
- Xác định các nhóm điển
hình sử dụng the MSF Agile process template như thế nào.
- Tùy chỉnh MSF Agile
process template để đáp ứng các nhu cầu cụ thể của nhóm bạn.
Xem trước
Các process được xác định bởi MSF Agile process template kết hợp các ý tưởng
chủ chốt từ Agile software movement, cùng với các nguyên tắc và bài tập thực
hành từ MSF. Các process hỗ trợ một chiến
thuật agile software engineering mà sử dụng các multiple iterations và một scenario-based
approach cho việc build các ứng dụng. Template cung cấp tự động hóa và các hướng
dẫn cần thiết để hỗ trợ team development của bạn, bao gồm cả configuration
management, project management, work item tracking, và một project portal cho sự
giao tiếp.
Chương này giải thích về workflow của một MSF Agile software
development project điển hình, trình bày các thí dụ của các team đang sử dụng MSF
Agile process, và mô tả các template setting mặc định và những tùy chọn để bạn tùy chỉnh các template
được cung cấp.
Sử dụng chương này như thế nào
Đọc chương này nếu bạn muốn đạt được sự hiểu biết tốt hơn về
cách làm việc của MSF Agile process template và process guidance works cũng như
là bằng cách nào nó được sử dụng thành
công bởi các team khác nhau. Để đạt được lợi ích tốt nhất từ chương này, bạn
nên:
- Đọc phần "MSF for Agile Software Development Defaults". Để tìm hiểu
chi tiết của MSF Agile process template bao gồm các reports, work items, và
permissions mặc định.
- Đọc qua phần "Ví dụ MSF for Agile Software Development trong thực
tế". Để xem bằng
cách nào các nhóm có trong đời thật đã thành công khi sử dụng MSF Agile để phát
triển và phát hành các ứng dụng.
- Đọc phần "Chương 13, Giải thích
về Process Template." Nếu bạn muốn
tìm hiểu nhiều hơn về các proccess templates nói chung, hãy đọc "Chương 13 - Giải
thích về Process Template"
Workflow cho MSF for Agile Software Development
The MSF Agile process template xác định một tập các task được
thực thi trong suốt các iteration bởi các role khác nhau bao gồm một
software-development lifecycle có các business analysts, architects, project
managers, developers,và các testers. Hình 14.1 hiển thị các hoạt động chính
liên quan đến mỗi task được xác định.

Hình 14.1 MSF Agile Tasks and Key Activities
MSF for
Agile Software Development Defaults
Khi bạn tạo mới một team project bằng cách sử dụng MSF Agile
process template, một trang phác thảo khái niệm hướng dẫn quy trình(process guidance)
được hiển thị trong cửa số chính của Microsoft Visual Studio®. Đây là quan điểm ban đầu của bạn về MSF Agile
process. Bạn cũng có thể truy cập thông tin này từ project portal home
page.
Cấu hình của các tool cũng đi ra khỏi sự mô tả của các process
và bao gồm các work items (như là các scenarios, quality of service
requirements, tasks, bugs, và các risks), project reports, roles (groups và
permissions), và một project portal. Các item chính được cung cấp bởi MSF Agile
template gồm có:
- Work items
- Groups and permissions
- Source control
- Areas and iterations
- Reports
- Portal
Các phần chi tiết sau là các
phần quan trọng mặc định sẵn sàng cho bạn khi sử sụng MSF Agile process template.
Work Items
The MSF Agile process
template chứa các work item type sau:
• Bug. Đại diện một problem hay
potential problem trong ứng dụng của bạn.
• Risk. Đại diện một possible event
hay condition mà có một tác động tiêu cực trên project của bạn.
• Scenario. Đại diện cho một single
path của user interaction qua system mà bạn đang build.
• Task. Xác định một item cụ thể của
công việc cho một team member để thực hiện.
• Quality of Service
Requirement.
Đại diện cho một yêu cầu phi chức năng(non-functional requirement) như là
một security, performance hay manageability requirement.
Khi bạn tạo mới một team
project dựa trên MSF Agile process template, các work item sau sẽ được tạo cho
bạn. Điều này giúp bạn làm việc bằng cách cung cấp một tập các task thông thường
mà bạn cần thực hiện trên project initiation.
• Set up: Set Permissions. Mục đích của task này là để add các team members thành
một trong 4 nhóm bảo mật(security group): Build Services, Project Administrators,
Contributors, hay Readers.
• Set up: Migration of Source
Code. Mục
đích của task này là để di chuyển source code hiện tại của bạn từ Microsoft
Visual SourceSafe®, nếu bạn đang di chuyển một project đã có đến Microsoft
Visual Studio Team Foundation Server (TFS). Bạn nên hoàn thành việc di chuyển của
source code trước khi bạn cho phép các team members truy cập đến team project.
• Set up: Migration of Work
Items. Nếu
bạn đang mang một project đã có vào TFS, bạn có thể di chuyển các work items như là các
bugs và các tasks từ Clearquest hay một comma-separated value (CSV) file. Bạn
nên hoàn thành sự di chuyển này của các work item trước khi bạn cho phép các team
members truy cập vào team project.
- Set
up: Set Check-in Policies. Mục đích của task này là để setup các business
rule hay policies mà bao quanh các source code check-ins.
- Set up:
Configure Build. Mục đích của task này là để tạo một source tree ban đầu và
cài đặt build để chạy trên một khoảng thời gian cơ bản (thường là daily) .
- Set
up: Send Mail to Users for Installation and Getting Started. Mục đích của task
này là để gửi một e-mail đến các team member để cung cấp thông tin về những TFS mà chúng nên kết nối đến hoặc team
project mà chúng nên sử dụng để bắt đầu làm việc trên team project.
• Create Vision Statement. Mục đích của task này là để
tạo một vision statement cho project - một view của kết quả mong muốn cuối cùng
của project của bạn, được share bởi tất cả các project stakeholders(những người
liên quan đến project).
• Set up: Create Project
Description on Team Project Portal. Mục đích của task này là để thay đổi sự mô tả của project
mặc định để mô tả các team project mới tốt hơn, thí dụ mô tả mục đích của
project, các mục tiêu, hay tầm nhìn.
- Create
Personas. Mục đích của task này là để tạo các personas đại diện cho các
user tương tác với hệ thống. Bạn có thể sử dụng các personas khi suy nghĩ qua về
thiết kế ứng dụng như họ là những user
nhắm mục tiêu cho hệ thống.
- Define
Iteration Length. Mục đích của task này là để xác định các chu kỳ lặp iteration
cycle được sử dụng bởi project. Điều này dựa trên kích cỡ và mức độ phức tạp của
project.
• Create Test Approach Worksheet
including Test Thresholds. Mục đích của task này là để hiểu chiến thuật kiểm thử của bạn(test
strategy) từ lúc bắt đầu của project
iteration. Tìm hiểu phương pháp kiểm thử có thể giúp bạn lên lịch trình trước
các nhiệm vụ kiểm thử(testing tasks) của bạn hiệu quả hơn và sẽ cho phép các lập
trình viên của bạn thực thi và nhớ các lời khuyên về kiểm thử.
- Brainstorm
and Prioritize Scenarios List. Mục đích của task này là để xác định và ưu
tiên các tình huống có lợi quan trọng.
- Brainstorm
and Prioritize Quality of Service Requirements List. Mục đích của task này
là để xác định các yêu cầu QoS phi chức năng như là security(bảo mật),
performance(thực thi) và manageability scenarios(quản lý các kịch bản).
- Set
up: Create Project Structure. Mục đích của task này là để tạo cấu trúc
project mà nắm bắt các area mà nhóm phát triển sẽ làm việc trên đó.
- Create
Iteration Plan. Mục đích của task này là để xác định bằng cách nào để phân
chia các development efforts lặp đi lặp lại.
Reports
Các report sau mặc định là
có sẵn với MSF Agile process template:
• Bugs by Priority. Là những lỗi(bug) chính xác
được tìm thấy? Report này hiển thị cho bạn các lỗi có tỉ lệ ưu tiên cao so với tỉ
lệ ưu tiên thấp được tìm thấy.
• Bug Rates. Làm thế nào để các lỗi được
tìm thấy, sữa chữa và khóa lại một cách hiệu quả? Chart(biểu đồ) này sẽ hiển thị
các xu hướng theo thời gian của các bug
mới, bug backlogs, và bug resolution.
• Builds. Chất lượng của một build là
gì? Report này cung cấp một danh sách các build có sẵn gồm có build quality và
các thông tin chi tiết khác.
• Project Velocity. Làm thế nào team có thể
hoàn thành nhanh chóng công việc của mình? Report này hiển thị bằng cách nào
team có thể nhanh chóng hoàn thành kế hoạch công việc và hiển thị tỉ lệ thay đổi
hàng ngày.
• Quality Indicators. Chất lượng của phần mềm là
gì? Report này tập hợp các test results, bugs, code coverage, và code vào một
single report để theo dõi tình trạng chất lượng của dự án.
• Load Test Tổng Kết. Report này trình bày các kết
quả kiểm thử(test result) đối với việc load các kiểm thử(testing) trên ứng dụng
của bạn.
• Regressions. Report này trình bày một
danh sách tất cả các kiểm thử mà trước đây đã được thông qua nhưng bây giờ thì
không.
• Reactivations. Có bao nhiêu work items đang
được tái kích hoạt? Report này hiển thị các work item đã được giải quyết hay bị đóng lại sớm.
• Related Work Items. Các work item này phụ thuộc vào các work item
khác là gì? Report này trình bày một danh sách các work item mà được liên kết đến
các work item khác vì thế bạn có thể theo
dõi các phụ thuộc.
- Remaining
Work. Bao nhiêu công việc còn phải
thực hiện và khi nào nó sẽ hoàn thành? Report này trình bày số lượng công việc
còn lại cần được giải quyết và kết thúc đúng hạn. Quy hoạch các công việc còn lại
cần được giải quyết ở phía trước có thể cho phép bạn đoán điểm nào mà tại đó bạn
sẽ hoàn thành code.
- Unplanned
Work. Có bao nhiêu công việc không được dự tính trước?Report chart tổng kết các công việc so với phần công việc
còn lại và phân biệt các kế hoạch từ các
hoạt động không có kế hoạch.
- Triage.
Các work item nào cần được ưu tiên sữa chữa? Report này trình bày tất cả các work
item vẫn còn đang trong tình trạng đề nghị.
• Work Items. Các active work items là gì?
Report này lên danh sách tất cả các work item đang hoạt động.
- Work
Items by Owner. Có bao nhiêu công việc được phân chia cho mỗi thành viên của
nhóm? Report này trình bày số lượng work items trên mỗi team member.
- Work
Items by State. Có bao nhiêu công việc,
và những hạng mục công việc nào đã giải quyết và đã ngưng ở đó? Report này
trình bày danh sách tất cả các active, resolved, và closed work item.
Groups và
Permissions
Các group sau mặc định có sẵn
trong MSF Agile process template:
- Readers.
Các thành viên của group này chỉ có quyền read-only truy cập đến team project.
• Contributors. Các thành viên của group này
có thể thêm, chỉnh sửa, và xóa các item
có trong team project.
• Build Services. Các thành viên của group
này có quyền build service permissions cho team project. Group này thường chỉ sử
dụng cho các service accounts.
- Project
Administrators. Các thành viên của group này có thể thực hiện tất cả các hoạt
động trong team project.
Source Control
MSF Agile sử dụng các source
control settings sau:
- Multiple
Checkout. Mặc định MSF Agile cho phép nhiều checkouts để cho phép nhiều team
member làm việc trên cùng một file tại cùng một thời điểm. Bất cứ kết quả những
cuộc xung đột nào cũng phải được giải quyết tại thời điểm check-in.
• Permissions. Các permission mặc định
trên source control bao gồm:
o Project Administrators. Có tất cả các quyền.
o Build Services. Có quyền read, pend
changes, check-in, label, start build, và edit build.
o Contributors. Có quyền read, pend
changes, check-in, check-out, label, và start build.
o Readers. Chỉ có quyền read-only khi truy cập đến
source control.
Areas and
Iterations
MSF Agile process template không
cung cấp một sự phân loại cấu trúc cho cả các areas hay các iterations. Phương
pháp đề nghị là phân ra các area dựa trên các thành phần hay các chức năng của project.
Các iteration có thể có chu kì thời gian cơ bản mà bạn sẽ lặp lại một tập hợp cụ
thể của các hoạt động chính như là plan, develop, và test.
Thí dụ về
bài tập MSF for Agile Software Development
Các ví dụ sau đây trình bày
cho bạn bằng cách nào mà MSF for Agile Software Development process được áp dụng
và được sử dụng bởi patterns &
practices team với Microsoft cũng như là bởi các development team không thuộc
Microsoft.
Thí dụ 1:
patterns & practices Teams
Thí dụ sau đây trình bày một
patterns & practices project điển hình được thực thi bằng cách sử dụng MSF Agile process.
New Project Through Iteration 0
1. Tương tác
với các khách hàng và các người liên quan đến project(stake holders) để thu thập
các yêu cầu của dự án. Những thông tin này được lưu giữ trong một Microsoft Office Word document có tên là
Project Back Log.
2. Tạo một khái
quát về tầm nhìn cho project bằng cách sử dụng Microsoft Office PowerPoint®.
3. Cùng thu
thập ý tưởng với khách hàng và các stakeholders và xác định các trường hợp có
nêu rõ các yêu cầu và tầm nhìn của dự án.
4. Làm việc với
project manager và các stakeholders khác để xét ưu tiên các tình huống, kịch bản(scenarios).
1. Nắm chắc các trường hợp như là các work item ở
trong TFS.
2. Xác định iteration cycle duration, tùy thuộc
vào kích cỡ dự án, và khả năng phân phối.
Pre-Iteration
Planning
- Project manager quyết định kịch bản nào nên
được làm việc trong các iterations, tùy theo độ ưu tiên của chúng.
- Product manager cùng với project manager tạo
các Quality of Service (QoS) Requirements cho các kịch bản. Sau đó các QoS sẽ
liên kết với các kịch bản, tình huống đó.
Iteration
Planning
1. Chia các kịch bản ra thành các development
tasks, hợp tác với các developers và các team member khác.
2. Nắm chắc các development tasks trong TFS và
liên kết chúng với các kịch bản.
3. Định hình
tiêu chuẩn nghiệm thu cho từng công việc phát triển.
4. Chia các QoS requirements thành các test
tasks.
5. Nắm chắc các test tasks trong TFS và liên kết
chúng với các QoS
6. Định hình
tiêu chuẩn nghiệm thu cho từng test tasks.
7. Lên kế hoạch và phân chia công việc.
- Nhà lập trình ước tính từng development
task.
Quan trọng- Nếu giống như các tasks (developer stories) có thể mất lâu hơn 1 hay
hai ngày để thực thi, sau đó bạn nên chia nhỏ thành các sub-stories.
- Các nhà kiểm thử tester, cung cấp các sự đánh
giá ước tính cho mỗi công việc kiểm thử(test tasks).
During the Iteration
- Project manager hướng dẫn các iteration.
- Các lập trình viên, viết code cho các
development task, và sau đó kết thúc các tasks mỗi khi các tiêu chuẩn nghiệm
thu được đáp ứng đầy đủ.
- Các nhà kiểm thử thực thi các test tasks mà
anh ta hay cô ta được phân công và sau đó tạo ra các lỗi mới(các work items) cho
bất kỳ vấn đề nào được xác định.
After the Iteration
- Nhà quản lý dự án project manager:
1. Đánh giá tiến độ dự án và mức độ ưu tiên của bất kì kịch bản nào chưa
hoàn thành trong các iteration hiện có.
2. Cung cấp một status report cho các
stakeholders.
3. Quyết định xem kịch bản nào nên được thực hiện
trong iteration kế tiếp dựa trên mức độ ưu tiên của nó.
- Nhà quản lý dự án product manager:
1. Bổ sung thêm bất kỳ kịch bản mới được tìm ra.
2. Phân chia mức độ ưu tiên của kịch bản(ở chỗ
nào cần thiết).
3. Cùng với các project manager, tạo các QoS
requirements cho project. QoS được liên kết với các kịch bản.
Thí dụ 2: Field Customer
Engagement
Thí dụ sau trình bày bằng
cách nào mà MSF Agile process được sử dụng bởi một field customer engagement.
New Project Through Iteration 0
- Các nhà phân tích kinh tế(business analyst):
1. Tạo một (một-trang)
vision statement ngắn.
2. Xác định một
on-site customer là người cung cấp đầu vào(input) và tạo ra personas cho hệ thống.
3. Thu thập
các kịch bản (chỉ tên) với khách hàng.
4. Xác định
cơ cấu ưu tiên các kịch bản với khách hàng.
5. Viết các kịch
bản cho các tình huống sắp đến.
1. Tập hợp
các nhà phát triển lại với nhau và thu
các dự tính, ước tính của họ. Các dự đoán, ước tính sẽ được gắn lại theo thứ tự
của độ lớn ước tính.
2. Kiểm tra nếu
độ ưu tiên thay đổi như là kết quả của các chi phí.
3. Lên kế hoạch
của kịch bản cho các vòng lặp sắp đến.
- Các kiến trúc sư phân chia các kịch bản ra
thành các công việc kiến trúc.
- Lập trình viên:
1. Phân chia
các kịch bản thành các tác vụ phát triển.
2. Xác định
chiến lược thiết kế phù hợp (Continuous Integration nếu có thể).
- Các nhà kiểm thử phân chia các kịch bản thành
các tác vụ kiểm thử.
During the
Iteration
- Nhà quản lý dự án project manager:
1. Hướng dẫn
các vòng lặp(iteration).
2. Hướng dẫn
dự án(project).
- Nhà kiến trúc xác định kiến trúc solution.
- Lập trình viên, thực thi một tác vụ phát triển.
- Nhà kiểm thử, kiểm thử một tình huống.
Sau
Iteration 0
Các tác vụ thay đổi một chút
ở điểm này .
1. Update các
personas (ở nơi nào cần thiết).
2. Thêm vào bất
kì tình huống nào mới được khám phá.
3. Xác định lại
cơ cấu độ ưu tiên của các kịch bản (ở nơi nào cần thiết).
4. Viết các kịch
bản cho các vòng lặp sắp tới.
- Nhà quản lý dự án project manager:
1. Ước tính bất
cứ trường hợp mới nào sẽ xảy đến.
2. Lên kế hoạch
kịch bản cho các upcoming iteration.
- Nhà kiến trúc phân chia kịch bản thành các
tác vụ kiến trúc(architecture tasks).
- Các lập trình viên:
1. Phân chia
kịch bản thành các tác vụ phát triển(development tasks).
2. Update các
build process (Continuous Integration nếu có thể).
- Các Tester phân chia các kịch bản thành các
tác vụ kiểm thử(test tasks).
Tùy chỉnh MSF
Agile Process Template
Bạn có thể sử dụng hai
phương thức để tùy chỉnh MSF Agile process template cho phù hợp với các yêu cầu
tổ chức cụ thể của bạn:
- Manually
customize the XML files. Tùy chỉnh bằng tay rất dễ bị lỗi nhưng vẫn cho phép bạn dễ dàng điều khiển dựa trên
việc tùy chỉnh các quy trình mẫu(process template). Để có thêm thông tin, hãy
xem "Customizing Process Templates" tại http://msdn2.microsoft.com/en-us/library/ms243782(VS.80).aspx ,
- Process
Template Editor. Phiên bản mới nhất của Visual Studio 2005 Team Foundation
Server Power Tool - một tập các enhancements, tools, và command-line utilities cải thiện TFS experience - cung cấp cho bạn một
user interface-based tool, mà bạn có thể sử dụng để có một cái nhìn tổng quát
và tùy chỉnh các process templates. Khi kết nối đến TFS, bạn có thể sử dụng
tool này để tùy chỉnh các work item type definitions và global lists trên một
active project. Để có thêm thông tin, hãy xem "How To: Customize a Process
Template in Visual Studio Team Foundation Server."
Tổng kết
The MSF Agile process
template xác định một tập các tác vụ được thi hành bởi các role khác nhau liên
quan đến một software-development lifecycle. The MSF Agile process template định
nghĩa các work items, groups và permissions, source control, areas and
iterations, reports và một team portal để hỗ trợ các agile process.
Nếu process template mặc định
không đáp ứng được yêu cầu quy trình của bạn(process requirements), bạn có thể
tùy chỉnh template bằng cách tùy chỉnh bằng tay XML process definition files hay
bằng cách sử dụng Process Editor Tool mà liên kết với TFS Power Tools.
Tài nguyên bổ sung