Đăng ký Đăng nhập
Trang chủ Nghiên cứu và ứng dụng phương pháp đặc tả phần mềm bằng ví dụ trong phát triển p...

Tài liệu Nghiên cứu và ứng dụng phương pháp đặc tả phần mềm bằng ví dụ trong phát triển phần mềm

.PDF
108
77126
178

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ I TH NGHI N C NG NG HƯ NG NG HƯ NG H Đ CT TR NG H T TRI N H N L ẬN ĂN THẠC SĨ HÀ NỘI, 2015 H N ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ I TH NGHI N C H N NG HƯ NG NG NG HƯ NG H Đ CT TR NG H T TRI N H N Ngành: C Chuyên ngành: Mã số: 60480103 L ẬN ĂN THẠC SĨ NGƯỜI HƯỚNG ẪN KH A HỌC TS H HÀ NỘI, 2015 TƯỜNG INH i LỜI CA Đ AN T x ca đoa l vă ày là ững nghiên cứu của bản thân tôi. Những kiến thức trong lu vă ày được thể hi n dựa trên vi c tổng hợp các kiến thức từ nhi u nguồn, từ những kinh nghi m thực tế khi ể c c ự của c y à đa là vi c. Mọ được trích dẫn trong lu vă đ u tuân theo lu t sở hữu trí tu và lu t bản quy n tác giả, được li t kê mộ c c đ y đủ chính xác. Tôi xin hoàn toàn chịu trách nhi m với những nội dung viết trong lu vă Học viên thực hi n T ày. ii LỜI C N Tôi xin bày tỏ lòng biế ơ sâ sắc đến tất cả mọ ườ đã ú đỡ, hỗ trợ tôi thực hi n lu vă ày, x cả ơ oa a Đ Học, T ườ Đ Học C N , Đ Học Q ốc G a Hà Nộ đã c o và o đ u ki để tôi thực hi n lu vă ày. Tôi xin chân thành cả ơ sự ú đỡ và chỉ bảo t n tình của Th y o, T ế s Hồ Tườ , ả v ướng dẫn của tôi. Th y đã c ỉ bảo, đị ướng nghiên cứu thực hi n, hỗ trợ, t o nhữ đ u ki n tốt nhất cho tôi trong suốt quá trình thực hi đ tài. Tôi xin bày tỏ lòng biế ơ sâ sắc đế ữ ườ â o ađ đ c là ố, M , Chồ đã o đ u ki , động viên, ủng hộ trong những lúc khó k ă để tôi có thể hoàn thành lu vă ày. Xin chân thành cả ơ ất cả quý Th y, C bảo, rèn luy n, truy đ t những tri thức, k ă , k ữ ă ọc vừa qua. o oa, T ườ đã n tình chỉ m quý báu cho tôi trong suố Học viên thực hi n T iii CL C MỞ ĐẦU ................................................................................................................... 1 1 C ươ 1: Tổ q a v A le ........................................................................... 3 1.1 Gớ v A le ....................................................................................... 4 1.2 Tuyên ngôn Agile ......................................................................................... 4 1.3 N 1.4 Đ c ư y 1.4.1 Tí lý của A le ..................................................................................... 6 của A le ...................................................................................... 7 l (I e a ve).................................................................................... 7 1.4.2 Tí ế (I c e e al) và ế 1.4.3 Tí íc ứ ( ay 1.4.4 N ó ự ổ c ức và l 1.4.5 Q ả lý ế íc ực óa (Evol o a y) ......................... 8 – Adaptive) ............................................. 8 c ức ă (E .......................................................... 8 cal ocess Co ol) .................. 8 1.4.6 G ao ế ực (Face-to-face communication) .................................. 9 ể ựa ị ( al e-based development) ............................ 9 1.4.7 1.5 TDD ............................................................................................................ 10 1.5.1 Lịc sử .................................................................................................... 10 1.5.2 Ý ưở ................................................................................................... 11 1.5.3 Nguyên lý ............................................................................................... 11 1.5.4 Quy trình ................................................................................................. 14 1.5.5 C cụ ỗ ợ ........................................................................................ 15 í ụ 1.5.6 1.5.7 Đ 1.6 ọa ....................................................................................... 15 ................................................................................................. 20 ATDD ......................................................................................................... 21 1.6.1 Lịc sử .................................................................................................... 21 1.6.2 Ý ưở ................................................................................................... 21 1.6.3 Nguyên lý ............................................................................................... 22 1.6.4 Quy trình ................................................................................................. 24 1.6.5 C cụ ỗ ợ ........................................................................................ 26 í ụ 1.6.6 1.6.7 Đ ọa ....................................................................................... 27 ................................................................................................. 28 iv 1.7 BDD ............................................................................................................ 29 1.7.1 Lịc sử .................................................................................................... 29 1.7.2 Ý ưở ................................................................................................... 29 1.7.3 Nguyên lý ............................................................................................... 30 1.7.4 Quy trình ................................................................................................. 31 1.7.5 C cụ ỗ ợ ........................................................................................ 32 í ụ 1.7.6 ọa ....................................................................................... 32 1.7.7 Đ 1.8 ................................................................................................. 38 Tổ 2 C ươ ợ TDD, ATDD, DD .................................................................... 39 2: ươ đ c ả ằ ví ụ ....................................................... 41 2.1 Lịc sử ........................................................................................................ 41 2.2 Ý ưở 2.3 Nguyên lý .................................................................................................... 42 ....................................................................................................... 41 2.3.1 X c đị v ừ 2.3.2 Đ c ả y c ục ................................................................ 43 ộ c c cộ c o ó ực ự . ............ 46 2.3.3 M ọa sử ụ 2.3.4 Là ị đ c ả ....................................................................................... 50 2.3.5 Tự độ ẩ 2.3.6 T ẩ đị 2.3.7 L ục ế ví ụ .......................................................................... 48 đị ườ àk x y c ay đổ đ c ả ................................. 51 ....................................................................... 55 óa à l ố .......................................................... 57 2.4 Quy trình ..................................................................................................... 58 2.5 C cụ ỗ ợ ............................................................................................ 63 2.6 í ụ 2.7 os 2.8 Đ 2.8.1 C c ọa ........................................................................................... 64 Đ c ả ằ ví ụ và UML ............................................................ 64 ...................................................................................................... 65 c ức của v c là ày ay ................................. 65 2.8.2 N ữ lợ íc à ươ đ c ả q a ví ụ a l để vượ q a c c c ức ............................................................................................ 66 2.8.3 Đ ể 2.8.4 Đ yế ................................................................................................ 67 của độ ự ........................................................................... 67 3 C ươ 3: T ử và đ v c đưa ec f ca o y Exa le vào ực ế ........................................................................................................................... 69 v 3.1 Mục đíc ..................................................................................................... 69 3.2 Q y ể c c ự 3.2.1 Đ c đ ể ự ....................................................................................... 69 3.2.2 M ể 3.2.3 M 3.2.4 3.3 cả ..................................................................... 70 ế ụ đ c ả q a ví ụ ............................................. 74 ươ ụ ớ vào o c c độ ự o c ty ............................................................................................................. 77 T ực q ể eo ec f ca o y Exa le .................................................................................................................... 78 3.3.1 Đố vớ 3.3.2 Đố vớ 3.3.3 Dự 3.4 II....................................................... 69 Đ ữ ự ự đa " ử o q ể we s e ướ ể ............................. 78 ẫ lịc " ........................... 80 ................................................................................... 94 ...................................................................................................... 94 3.4.1 Đ của ả 3.4.2 Đ của độ â ............................................................................ 94 ự ........................................................................... 95 KẾT LUẬN ............................................................................................................. 96 vi DANH M C TỪ VIẾT TẮT, THUẬT NGỮ ATDD Acceptance Test Driven Development BDD Behaviour Driven Development TDD Test Driven Development ODC Offshore Development Center UML Unified Modeling Language VSII Vietsoftware international vii NG TH ẬT NGỮ ANH IỆT Tế A Specification by example Tế Đ c ả ằ ví ụ ể ướ kể Behaviour Driven Development ể ướ à Test Driven Development ể ướ kể Acceptance Test Driven Development User story Câ c y Iterative Tí Incremental T Evolutionary Tế Adaptive T íc Empirical Process Control Q ả lý ế Face to face communication G ao ế ực ể ựa l ế óa Value based development Team Độ Developer L ực v Bussiness analyst N à Goal Mục ửv â íc v Scope Validation T ẩ Living document Tà l đị số í ụ k óa Key Example ị ể ể Tester ườ sử ụ Test case Ca k ể Cross functionality L Self organizing Tự ổ c ức ử c ức ă vụ ửc ấ v ử viii ANH C NG I H NH H NH H 1.1 Mộ số ươ A le ................................................................................... 3 H 1.2 C c â đo n l đ l p l i trong Agile ............................................................... 7 H 1.3 Mức độ phổ biến của c c ươ 2009 – 2010 [9] ................................... 10 H 1.4 TFD Cycle [13]................................................................................................... 12 H 1.5 TDD cycle and Traditional Cycle [10] ............................................................... 13 H 1.6 TDD step [15] ...................................................................................................... 14 H 1. T o o ec k ể ử............................................................................................ 15 H 1. T lớ ss ess ............................................................................................. 16 H 1.9 Lớp nghi p vụ ..................................................................................................... 18 H 1.10 Lớ đố ượng dữ li u trung gian ..................................................................... 19 H 1.11 Thêm tham chiếu .............................................................................................. 19 H 1.12 Acceptance - Test Driven Development (ATDD) Cycle [6]............................. 23 H 1.13 Chu kỳ đơ ản của ATDD [12] ...................................................................... 25 H 1.14 ATDD và TDD [12] .......................................................................................... 26 H nh 1.15 ATDD trong mô hình l p [12] ........................................................................... 26 H 1.16 Mối liên h của BDD, ATDD, TDD ................................................................. 40 H 2.1 Mô hình của specification by example [3] .......................................................... 42 H 2.2 M x c đị v ừ ục ................................................................ 44 H 2.3 T o câ c y ườ sử ụ [3] ....................................................................... 45 H 2. M ọa sử ụ ví ụ ....................................................................................... 49 H 2.5 Mộ đ c tả có thể tự động thực hi n với Concordion[3] ..................................... 52 H 2.6 Mộ đ c tả có thể thực được với FitNesse[3] ................................................. 52 H 3.1 M ể .................................................................................. 70 H 3.2 T o o ec k ể ử............................................................................................ 86 H 3.3 Cà đ s ec flow ................................................................................................. 86 H 3. Cà đ s ec ................................................................................................... 87 H 3.5 T o f le fea e .................................................................................................... 87 H 3. T o kịc ả ........................................................................................................ 88 H 3. T o s e c o kịc ả – ước 1 .......................................................................... 88 H 3. T o s e c o kịc ả – ước 2 .......................................................................... 89 H 3.9 T o s e c o kịc ả – ước 3 .......................................................................... 89 H 3.10 C y kịc ả ................................................................................................... 91 ix NG I ả ả 3.1 C ấ lượ 3.2 ả ự ừ v ự 2 đế 4 ........................................................... 79 ể we s e ướ ẫ lịc ............................ 83 1 ỞĐ Tính cấp thiết và quan trọng của đề tài Hi n t đa là l p trình viên t i một công ty phát triển ph n m m với g n 400 nhân viên. Trong những dự án mà tôi tham gia, tôi thấy có những vấ đ sa đa ồn t i:  c à ườ ay ay đổi yêu c , c c ươ áp dụng không thích nghi nhanh với nhữ ay đổi này.  Sản phẩ k được à  Sản phẩ k đú c ok được ời h n. với yêu c u của  Chấ lượng sản phẩm thấ tích hợ c ưa ốt.  Mất nhi ao đú ể đa ười sử dụng. được kiểm thử ườ x y , cơ c ế kiểm thử í để duy trì những tài li u của dự án.  Chi phí phát triển, kiểm thử lớn. T đa k ếm mộ ươ ển có ể ả q yế ữ vấ đ trên, phù hợp vớ đ c thù của những dự án trong công ty, có thể đưa ự đến thành c , đe l i lợi nhu n và thỏa mãn yêu c u của khách hàng. Th y ướng dẫn của tôi, tiế s Hồ Tườ đã c ỉ c o ươ "Đ c tả bằng ví dụ", mộ ươ tuy t vời có thể giải quyết những vấ đ ả k ể ự đã ở . Với mục đíc cứu, thử nghi và đ xuất cách thức để triể k a ươ pháp này trong thực tiễn của công ty Cổ ph n Ph n m m Vi t Quốc Tế, đã lựa chọ đ tài "Nghiên cứu và ứng dụ p p áp đặc tả phần mềm bằng ví dụ trong phát triển phần mềm". Mục tiêu của đề tài  Nghiên cứu và tìm hiểu nhằm hiể õ c c ươ : ể ướ k ể ử (TDD – Test Driven Development), ể ướ kể ửc ấ (ATDD – Acceptance Test Driven Development), ể ướ ành vi (BDD – Behaviour Driven Development) và Đ c tả bằng ví dụ (Specification by example).  Đ xuất cách thức để triển khai ươ pháp này trong môi ường thực tiễn của công y Cổ Q ốc Tế. 2 Kết quả cầ đạt đ ợc:  Hiể õ c c ươ TDD, ATDD, DD và Đ c tả bằng ví dụ (Specification by examples)  Đ xuất cách thức để triể k a ươ ày o ường thực tiễn của c y Cổ Q ốc Tế. Luậ vă đ ợc trình bày với những phầ sau đây  C 1 Tổng quan về Agile: Trình bày các khái ni cơ ản của phát triển ph n m m linh ho t Agile. Trình bày nguyên lý, quy trình của c c ươ phát triển linh ho t: TDD, ATDD, BDD.  C 2 Đặc tả bằng ví dụ: Trình bày các khái ni cơ ả , ý ưởng, nguyên lý, quy trình của ươ Đ c tả bằng ví dụ.  C 3 Thử nghiệm và đá á v ệc đ a p p áp Đặc tả bằng ví dụ vào thực tế: Mô tả ươ ực hi n dự án ụ đ c ả ằ ví ụ. Kết quả của nghiên cứ đã ực hi n những vấ đ trên, tuy nhiên ể đ x ấ vẫ c oà và sửa đổ c o ợ vớ c c ự , đả c của ự . ảo à 3 1 C m 1 Tổ qua về Agile Đ c ả ằ ví ụ là ộ ươ o ữ ươ l o A le (Agile software development - ọ ắ là A le). ể Agile không phải là mộ ươ à là ột h thống các triết lý, nguyên tắc, giá trị. Agile giố ư ột chiếc ô với nhi ươ k c a ư: c ,X (Extreme programming), Crystan, DSDM (Dynamic System Development Method), TDD (Test Driven Development), ATDD (Aceptance Test Driven Development), BDD (Behaviour Driven Development), Specification By Example... H 1.1 Mộ số ươ A le 4 C c ươ TDD, ATDD, BDD có c ướ đ vớ ươ đ c ả ằ ví ụ, đ ướ đế xây ự đú sả ẩ ựa v ckể ử ự độ , xây ự đú y c . TDD ườ được ể eo ướ k ể ử ự độ ức đơ vị, ATDD là k ể ử ự độ ức c ấ sả ẩ , DD c có ể được ể là ộ ATDD, ư DD có đị a cụ ể ữ ảc cđ k c ấ .Đ c ả ằ ví ụ c có ụ DD, ư vớ ỗ đ k c ấ cụ ể có đưa a c c ví ụ cụ ể để ảc oc cđ k đó, c ư là ộ đ c ả c o ộ đ k c ấ . To ể c ươ l ày, s o A l e, c c ày ươ ữ ộ cơ ả v : TDD, ATDD, BDD. ươ 1.1 G ớ t ệu về Agile Công ngh ph n m m với nhữ ươ ển phát triển truy n thống ư: M c ước, mô hình xoắn ốc, ướ đố ượng... đã k đ ứng được yêu c u v ph n m m ngày nay. Kinh tế biế động từng ngày, yêu c u của những sản phẩm ph n m c có ay đổ c o đế k c ú được hoàn thành. Sau khi ph n m m hoàn thành, có thể là 6 tháng, 1 ă , 2 ă , ó đã k đ ứ được yêu c u, ho c do chỉ được à ao c o k c à vào a đo n cuối của dự án nên không có được phản hồi v vi c sản phẩ có đ ứng yêu c u hay không. Mộ ươ phát triển ph n m m linh ho A l e đã a đờ để giải quyết những vấ đ trên. ể l o Agile là ộ c c ẫ và k ớ, ể sả ẩ ựa c u kỳ ( ay v l ) và ă ưở , ú sả ẩ ế ớ ữ àk c à o ố ằ v c y c sự a a của k c à ỗ ước[4]. A le ấ sự ợ c c c ữa ó l v và c c c y ak oa , sự ao ế ực ế , sự ự ổ c ức c c , ườ x y à ao ữ ịk oa , ả ồ vớ ữ ay đổ . 1.2 Tuyên ngôn Agile T a ă 2001, ười bảy nhà phát triển ph n m m (Kent, Beck Mike Beedle, Arie van BenneKum, Alistair Cock burn, Ward Cunning ham, Martin Flowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brain Marick, Robert C.Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas) đã p gỡ nhau ở ow , U a Reso để thảo lu n v c c ươ ển ph n m m gọn nh và linh ho t. Họ đã c ố Tuyên ngôn Phát triển ph n m m linh ho ( Manifesto for Agile of wa e Develo e – gọi tắ là Tuyên ngôn Agile ) để đị ac c hiểu v Phát triển ph n m m linh ho t.[1] 5 N y vă y Agile ư sa : C ú đã a cách ể h nó và ú đỡ ườ k c ực . Qua c v c này, chúng tôi đã đ đế v c đ Cá â và sự t tác ầ mềm c ạy tốt ơ là Cộ tác vớ k ác à ả ồ vớ các t ay đổ ơ à ơ ơ ố ơ ằ c c ực cao: là q y và c cụ; l đ y đủ; là đà ợ đồ ; là s kế o c . Mặc dù các điều bên phải vẫn còn giá trị, nhưng chúng tôi đánh giá cao hơn các mục ở bên trái. Cá â và sự t tác à quy t và c cụ Co ườ là à q a ọ ấ của sự à ể đưa ự đế à c , ay cả k k có ữ xấ có ể là ự ấ ay cả k ự có ữ c à . Mộ q y ố có v x ấ sắc, ộ q y à v x ấ sắc. Mộ à v ỏ có ể c ỉ là ộ l v ư ao ế và cộ c ố vớ c c à v k c. N ó ự có co số l v có k ả ă ao ế ố ễ à c ơ ộ ó có k ỏ ư k có k ả ă là v c nhóm. có k ả ă ữ l C cụ, ịc , c c ườ ươ c, ố k ể so ã ồ , ấ cả đ có ể q a ọ đố vớ v c y c c o độ đú đắ của độ ể .T y c cụ k được ấ q ức, sự ư ừa c cụ c ưv c ế c cụ. cđ c là là xây ự c c ó ể ước, sa đó để c c ó ày cấ ườ ựa c . ầ mềm c ạy tốt à tà ệu đầy đủ k có à l là ộ ả ọa. N ó ự c o ac c à l ả ố và c c ế kế của ố , để ữ à v k ả l v và k c à c có ể đọc được. N ư à l q s ấ ấ ờ a để o a ó, và ờ a ơ ữa để y ó c o đồ ộ vớ ữ ay đổ . c à c ỉ q a â đế v c sả ẩ có c y được và c y ố ay k . v y à l c ỉ được o k ó ực sự q a ọ và c ế ay l ức. T ờ a lã í để v ế ữ à l k c ế s được để ao đổ v c c c v c c là và ực c ú . 6 Cộ tác vớ k ác Q ộ lịc ườ x y à à đàm p á ể ộ sả ẩ cố đị và c í cố đị có ả ồ của k c à ợp đồ vớ ẫ đế ườ ả ước, sa đó ấ . Dự à ể vớ c c . T ay v ụ ộc vào ợ đồ , ữ k ố c v c x c đị ước, k c à là v c vớ ó ể ,c cấ ả ồ ườ x y . Mộ ợ đồ q y đị õ y c , lịc , là sa l . T o ườ ợ c cđ k oả ở v a ước k sả ẩ oà à . Chìa khóa cho sự thành công là sự hợp tác m nh m với khách hàng và một hợ đồng mà chi phối sự hợ c đó ơ là cố gắ để x c định các chi tiết ph m vi và lịch trình vớ một chi phí cố định. ả ồ vớ các t ay đổ Mộ sả ẩ  M  à ám sát kế o ườ k k c à c ưa ợ lý và oa ố ạc q ườ ể x y ườ ay đổ ấy sả ẩ ay đổ . ắ đ ẫ đế o độ  N ay cả k c ú a ể õ y c và c ắc c ắ ước lượ ờ a oà à c k ể oà sả l x y ay đổ v : ay đổ y c . , ọs ós k oà c í ấy ữ để ay đổ , x c. v c v y, k ả ă đ ứ ay đổ q yế đị sự à c ay ấ của ẩ . c ú a xây ự kế o c , c ú a c c ắc c ắ ằ o và s sà íc ứ vớ ữ ay đổ v vụ và c . 1.3 N uyê ý của Agile c Agile, ú ộ ó ướ y ẫ Agile, c c ụ ươ à ể c ấ ày vào ực ế[1]: 12 y lý của 1. Ư cao ấ của c ú là ỏa ã k c à q a v c c yể ao sớ và l ục c c có ị. 2. C ào đó v c ay đổ y c , c í ấ ộ o q ể .C c q y l o ụ sự ay đổ c o c c lợ ế c a của k c à . 3. T ườ x y c yể ao c y ố ớ k c à , ừ và đế và ,ư c o c c k oả ờ a ắ ơ . 4. N à k oa và à ể ả là v c c a à ày o s ố ự án. 7 5. Xây ự c c ự xung q a ữ c â có độ lực. C cấ c o ọ ườ và sự ỗ ợ c ế , và ưở ọ để oà à c v c. 6. ươ q ả ấ để y đ ớ ó ể và o ộ ộ ó ể là ộ o ực ế . 7. c y ố là ước đo c í của ế độ. 8. Các quy trình l o úc đẩy ể vữ . C c à à ợ, à ể , và ườ có ể y ộ ị độ l ục k ớ . 9. L ục q a â đế c c k và ế kế ố để a ă sự l o . 10. ự đơ ả là c ế – ố đa óa lượ c v c c ưa oà à . T ay v lo lắ v ữ vấ đ s của ữ c v c c ưa c oà à , độ ự ực ữ c v c đơ ả ấ, ợ vớ ục , vớ c ấ lượ cao ấ , ễ à ay đổ ế có vấ đ s o ờ a tiế eo. 11. C c k ế úc ố ấ,y c ố ấ , và ế kế ố ấ s được là a ở c c ó ự ổ c ức. 12. Độ ự s ườ x y s y v v c là sao để ở q ả ơ , sa đó ọ s đ c ỉ và ay đổ c c à v của c o ợ . 1.4 Đặc t c ú của Agile Có rất nhi đ có c 1.4.1 Tí ươ Agile vớ c c ướng tiếp c n rất khác nhau, ữ đ c ư sa : y ặp (Ite at ve) Dự án s được thực hi o c c â đo n l đ l p l . C c â đo (được gọi là Iteration ho c ) ày ường có khung thời gian ngắn (từ mộ đến bốn tu n). Trong mỗ â đo n này, nhóm phát triển thực hi đ y đủ các công vi c c n thiế ư l p kế ho ch, phân tích yêu c u, thiết kế, triển khai, kiểm thử (với các mức độ khác nhau) để cho ra các ph n nhỏ của sản phẩm [9]. H 1.2 C c â đo l đ l l o Agile 8 1.4.2 Tí t ệm t ế (I c eme ta ) và t ế óa (Evolutionary) C ố ỗ â đo l , ộ ỏ của sả ẩ được oà à , có ă c y ố , đã được k ể ử. N ữ ày được à ao ay c o k c à c y ử, lấy được ý k ế ả ồ của k c à và có ữ đ c ỉ íc ợ sả ẩ đa được ể đú vớ ục của ó. C c â đo ày ố a , ừ của sả ẩ được oà à , sả ẩ được íc l y c o đế k ẩ đ ứ được oà ộ y c c của k c à . N ư v y, sả ẩ lớ eo ờ a và ế óa đế k à [9]. 1.4.3 Tí t íc ứ ( ay t íc k ả để để ế sả l – Adaptive) Do c c â đo n chỉ kéo dài trong một khoảng thời gian ngắn, và vi c l p kế ho c c được đ u chỉnh liên tục, c c ay đổi trong quá trình phát triển (yêu c u ay đổ , ay đổi công ngh , ay đổ đị ướng v mục tiêu v.v…) đ u có thể được đ ứng theo cách thích hợp. Ví dụ, trong Scrum – ươ ổ biến nhất hi n nay – trong khi nhóm phát triển sản xuất ra các gói ph n m m, khách hàng có thể đưa c c yêu c u mới, chủ sản phẩm (Product Owner) có thể đ c c y c u này và có thể đưa vào là v c o â đo (được gọi là Sprint trong Scrum) tiế eo. T eo đó, các quy trình Agile ường thích ứng rất tốt vớ c c ay đổi [9]. 1.4.4 N óm tự tổ c ức và ê c ức ă Cấu trúc nhóm Agile ường là liên chức năng (Cross-functionality) và tự tổ chức (Self-organizing). T eo đó, c c ó ày ự thực hi n lấy vi c phân công công vi c mà không dựa trên các mô tả cứng v chức danh (title) hay làm vi c dựa trên một sự phân cấp rõ ràng trong tổ chức. Các nhóm này cộng tác vớ a để ra quyế định, theo dõi tiế độ, giải quyết các vấ đ mà không chờ m nh l nh của các cấp quản lý. Họ không làm vi c eo cơ c ế nh l nh và kiể so (co a a co ol). N ó ự tổ chức có a là ó đã đủ c c k ă (co e e cy) c n thiết cho vi c phát triển ph n m m, do v y nó có thể được trao quy để tự ra quyế định, tự quản lí và tổ chức lấy công vi c của chính để đ được hi u quả cao nhất [9]. 1.4.5 Quả ýtế t t ực ệm (Emp ca cess C t ) Các nhóm Agile ra các quyế định dựa trên các dữ li u thực tiễn thay vì tính toán lý thuyết hay các ti n giả định (prescription). Vi c phân nhỏ dự à c c â đo n ngắn góp ph a ă c c đ ểm mốc để nhóm phát triển thu th p dữ ki c o đ u chỉnh các chiế lược phát triển của mình. Nói cách khác, Agile rút ngắ v đời phản hồi 9 (short feedback life cycle) để dễ à íc và a ă í l o t. Theo thời gian, các chiế lược này s tiến g đến tr ng thái tố ư , ờ đó ó có ể kiể so được tiế , và â cao ă s ấ lao động [9]. 1.4.6 G a t ếp t ực d ệ (Face-to-face communication) Một số mô hình phát triển ph n m m dựa rất nhi u vào công vi c giấy tờ, từ vi c thu th p yêu c ười dùng, viế đ c tả h thống, các thiết kế h thống v.v. Agile không phả đối công dụng của công vi c tài li óa, ư đ cao ơ v c giao tiếp trực di n thay vì gián tiếp thông qua giấy tờ. V yêu c u của khách hàng, Agile khuyến khích nhóm phát triển trực tiếp nói chuy n vớ k c à để hiể õ ơ v ữ khách hàng thực sự c n, thay vì phụ thuộc nhi u vào các lo vă ản. Trong giao tiếp giữa nội bộ nhóm phát triển với nhau, thay vì một l p trình viên (thực hi n vi c v ế ã) và mộ k sư ( ực hi n vi c thiết kế) giao tiếp với nhau thông qua bản thiết kế, Agile khuyến khích a ười này trực tiế ao đổi và thống nhất với nhau v thiết kế của h thống và cùng nhau triển khai thành các chức ă eo y c u. Bản thân các nhóm Agile ường nhỏ (í ơ ườ a ười, một nhóm lớn ườ được phân nhỏ vớ cơ c ế hợ cđ c để l l có lượng giao tiếp tố đa) để đơ giản hóa quá trình giao tiế , úc đẩy vi c cộng tác hi u quả. Các dự án lớn muốn dùng Agile ường phải phân thành nhóm nhỏ đồng thời làm vi c vớ a ướng đến một mục tiêu chung. Vi c này có thể đ ỏi một số nỗ lực đ kể trong vi c đ u phối các mức ư ữa các nhóm. Các nhóm phát triể ường t o a c c ó q e và cơ c ế ao đổi trực di n một c c ường xuyên. Mộ o c c cơ c ế ường thấy là các cuộc họp t p trung hằng ngày (Daily meeting, Daily Scrum, Standup meeting). T đây, ất cả c c à v được yêu c u nói rõ cho nhóm của mình biế đã là , đa là , sắ là và đa g p phả k ó k ă ào o q là v c. cơ c ế ày được thực hi n hi u quả, nhóm luôn luôn nắ được tình hình công vi c của mình, có các à động thích hợ để vượt qua các trở lực để thực hi n thành công mục tiêu của dự án [9]. 1.4.7 át t ể dựa t ê á t (Value-based development) Một trong các nguyên tắc cơ ản của Agile là n m m ch y tố c í là ước đo của tiế độ . N y ắc này giúp nhóm dám lo i bỏ đ c c c v c ư ừa không trực tiếp mang l i giá trị cho sản phẩm. Để v trực tiế và à được cơ c ế là ường xuyên vớ k c v c dựa trên giá trị , ó Agile ường làm vi c à ( ay đ i di n của khách hàng), cộng tác trực
- Xem thêm -

Tài liệu liên quan