Wiki


Wiki Table of Contents

Tags

Page Details

Published by:
This page has not yet been rated

Chương 14 - MSF cho các Agile Software Development Projects

 

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

  • Người quản lý sản phẩm:

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).

  • Quản lý dự án:

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

  • Project manager:

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.

  • Nhà quản lý dự á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 .

  • Nhà phân tích kinh tế:

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

 

Recent Comments

Leave the first comment for this page.