Agile Process
description
Transcript of Agile Process
รายงาน
เรอง Agile Process
เสนอ
อาจารย จราย สงศรจนทร
จดท าโดย
นาย ฐาปกรณ ตนตรตนพงศ เลขท 16 ภ.วคพ.51
รายงานชนนเปนสวนหนงของวชา วศวกรรมซอฟทแวร
ประจ าปการศกษา 2/2554
มหาวทยาลยราชภฎภเกต
ค าน า
รายงานฉบบนเปนสวนหนงของวชาวศวกรรมซอฟทแวรซงมจดประสงคในการจดท าขน
เพอเผยแผความรทไดเกบรวบรวมไวอยางเปนสดสวนเพอประโยชนแกผอานในการสบคนตอไป
หากรายงานฉบบนมขอผดผลาดในประการหนงประการใดนน ทางผจดท าตองขออภยใน
การผดพลาดดงกลาวไว ณ ทนดวย
ผจดท า
นาย ฐาปกรณ ตนตรตนพงศ
Contents
Process model ................................................................................................................................................................................ 1
ทมาของการพฒนาโปรแกรมแบบ agile ......................................................................................................................................... 1
วธพฒนาซอฟตแวรแบบ Agile ...................................................................................................................................................... 2
หลกการท างานภายใตวธ agile ....................................................................................................................................................... 3
บางหลกการ Agile ทแถลงไวคอ .................................................................................................................................................... 3
Agile Modeling: AM ....................................................................................................................................................................... 4
วตถประสงคของ Agile ................................................................................................................................................................... 4
หลกการ Agile ................................................................................................................................................................................. 5
โครงรางแนวคดตนแบบ ของ Agile Model Process ................................................................................................................... 6
โมเดลของ Agile (AM : Agile Modeling) ...................................................................................................................................... 7
AM Value (ผลลพธ) ....................................................................................................................................................................... 9
AM Core Principle (หลกการ) ....................................................................................................................................................... 9
AM Core Practice (แนวทางปฏบต /ลงมอท า) ........................................................................................................................... 9
เทคนคการพฒนาแบบ Agile ........................................................................................................................................................ 11
รปแบบวธการทท าเอา Agile มาใช ............................................................................................................................................... 11
ตวอยางการน าเอาเทคโนโลย แบบ Agile ไปใชงาน ในธรกจ ...................................................................................................... 12
1 ทมาของการพฒนาโปรแกรมแบบ agile
Process model
ทมาของการพฒนาโปรแกรมแบบ agile
การพฒนาแบบ Agile นนเปนสวนหนงของการพฒนาระบบสารสนเทศ ในป
2001
บคคลในแวดวงการพฒนา software แบบ agile ระดบต านาน 17 คน (ตอมาเรยกวา
light-weight methods) ไดเปนเลนสกบนรสอรททเมองยทา พวกเขาไดคยกนเกยวกบเรอง
การพฒนาซอฟแวรให เบาขน (เบาตอภาระงานของคนและของเครอง) เรวขน และใหคนเปน
ศนยกลางในการพฒนา พวกเขาเลยลงนามในสตยบรรณ Agile ซงตอมากลายเปนชอของการ
พฒนาซอฟแวรแบบ agile และ ทฤษฏของ agile ดวย
ทฤษฏของสตยบรรณ agile ทส าคญบางสวนมดงน
ลกคามความพงพอใจอยางรวดเรว และสงมอบซอฟแวรทใชประโยชนไดเสมอ
ซอฟแวรทพฒนาถกสงมอบอยางสม าเสมอ(รายอาทตย หรอ รายเดอน)
ซอฟแวรทพฒนาถกวดความคบหนาดวยทฤษฏ
ความตองการไมวาจะมาชาแคไหนกยนดเพมใหในโปรแกรม
มความรวมมอกนระหวางผพฒนาและผใชอยางสม าเสมอ
การคยกนแบบตอหนาเปนการสอสารถงความตองการไดดทสด
โครงการถกสรางโดยแรงผลกดนของคนๆ เดยว และคนนนตองเชอถอได
เอาใจใสในเทคนคและการดไซสม าเสมอ
งายตอความเขาใจ
ทมทพฒนามความอสระ
รองรบการเปลยนแปลงเสมอ
การพฒนาแบบ Agile นเปนลกผสมระหวาง XP กบ UP ม Model
มากกวา XP และมเอกสารนอยกวา UP ซงอยในแนวของ predictive ซงจะเกด iteration
คอนขางมาก (เนองจากความตองการของ user จะมาเมอไรกได) และเนนการสอสารแบบเขาไป
คยกนตอหนา นอกจากจะไดความตองการทตรงแลวรายละเอยดเลกๆ นอยๆ กอาจจะไดเพมดวย
รวมถงการทมความสมพนธทดกบลกคาดวย
2 วธพฒนาซอฟตแวรแบบ Agile
วธพฒนาซอฟตแวรแบบ Agile
วธพฒนาซอฟตแวรแบบ Agile คอ โครงรางแนวคดของวศวกรรม
ซอฟตแวรทชวยพฒนาการท าซ าตลอดวงจรชวตของโครงงาน
วธการพฒนาแบบ Agile ชวยลดความเสยงในการพฒนาซอฟตแวรในระยะสน
ในระหวางการพฒนาซอฟตแวรหนงชวงเวลาจะมการท างานซ าซงมตงแต 1 ถง 4 สปดาห
การท าซ าแตละครง คอ การท าหมดทงโครงงานซอฟตแวร ประกอบดวย การวางแผน การ
วเคราะหความตองการ การออกแบบ การเขยนโปรแกรม การทดสอบ และ การท าคมอ การ
ท าซ าไมสามารถรบรอง product ทออกสตลาด แตจดมงหมายคอการลดขอบกพรองเมอจบ
การท างานซ า การสนสดของการท าซ าแตละครง ทมงานตองท าการประเมนผล project อก
ครง
วธการ Agile ใหความส าคญกบการสอสารตอกนโดยตรงมากกวาการบนทกลง
ในเอกสาร สวนมากทมงาน agile กอตงส านกงานเดยว บางครงอางองถง bullpen ซงอยาง
นอยประกอบดวย โปรแกรมเมอร และลกคาของพวกเคา (ลกคา ก าหนด product พวกเขา
อาจจะเปนผจดการ product นกวเคราะหธรกจ หรอ client ) ส านกงานประกอบดวย ผ
ทดสอบ นกออกแบบการท างานรวมกน ผเขยนทางเทคนค และผจดการ
วธการ Agile ยงเนนการท างานของ software ขณะทวด
ความกาวหนาพนฐาน รวมกบความพงพอใจในการตดตอสอสารตอกนโดยตรง วธการ agile
ท าใหเกดการบนทกในเอกสารนอยมากทเกยวกบวธการอนท าใหผลลพธในการประเมนผลของวธ
แบบ agile อยนอกเหนอความควบคม
นยามวธพฒนา software แบบ agile ไดพฒนาในกลางป 1990 s
ในสวนทเปนเหตการณตอบสนองของ heavyweight method ใหเปนแบบอยางการควบคม
อยางหนก แบงเปนหมวดหม จดการผลโดยใชแบบจ าลองการพฒนาแบบ waterfall การเรม
พฒนาจากการใชแบบจ าลองของ waterfall เหนในการราชการทลาชา ขาดความนาเชอถอ
และมความขดแยงกบแนวทางของวศวกรรมซอฟตแวรทมผลตอการท างานทเกดขน กรณท
สามารถท าวธการพฒนาไดไวและท าซ าไดเปนผลการปฏบตทพฒนาในประวตศาสตรของการ
พฒนาซอฟตแวรยคแรก ในขนตนวธแบบ agile เรยกกนวา lightweight method ในป
2001 สมาชกทมชอเสยงของชมชน Snowbird รฐ Utah มมตเปลยนชอเปน agile
method ตอมาบางคนไดสราง Agile Alliance เปนองคกรไมแสวงก าไรเพอประชาสมพนธการ
พฒนาแบบ agile
วธการทคลายกบ Agile ทสรางกอนป 2000 ประกอบดวย Scrum(
1986) , Crystal Clear, Extreme Programming (1996) , Adaptive Software
Development, Feature Driven Development, และ DSDM ( 1995)
3 หลกการท างานภายใตวธ agile
หลกการท างานภายใตวธ agile
Agile คอ พฒนาการประมวลผล ไมใชการท าในครงเดยวเพอพฒนา
ซอฟตแวร ในป 2001 บคคลทมชอเสยง 17 คน ในสาขาของการพฒนา agile (ตอมาเรยก
light-weight methodologies) มารวมกนทรสอรทสก Snowbird ในรฐ Utah ไดปรกษา
กนเพอหาแนวทางในการสรางซอฟตแวรทใชงานงายขน เรวขน และเปนกลาง พวกเขาไดสราง
แถลงการณ agile ซงเปนนยามทไดรบการยอมรบและไดรบความสนใจอยางกวางขวางของการ
พฒนา agile และเพมเขาไปในทฤษฎ agile
บางหลกการ Agile ทแถลงไวคอ
• การท าใหลกคาพอใจ ดวยความเรว การสงขอมลทตอเนอง
• การท างานของซอฟตแวร คอ การสงขอมลใหบอยๆ (รายสปดาหดกวาราย
เดอน)
• การท างานของซอฟตแวรเปนการวดความกาวหนาเปนสวนใหญ
• แมกระทงการเปลยนความตองการลาสดกยอมรบได
• การท างานรวมกนในแตละวนคลายกน ระหวาง ธรกจและนกพฒนา
• การสนทนาซงหนาเปนการสอสารทดทสด
• โครงงานทสรางจากการกระตนสวนตว ควรจะเชอได
• การเอาใจใสทตอเนองใหความยอดเยยมทางเทคนคและการออกแบบทด
• งายขน
• จดระเบยบทมดวยตนเอง
• การปรบใหเขากบสภาวะแวดลอมทเปลยนแปลง
การพมพแถลงการณออกใหบคคลในอตสาหกรรมซอฟตแวร รจกกนใน
ชอการพฒนาซอฟตแวรแบบ agile
ในป 2005 Alistair Cockburn และ Jim Highsmith รวมกบกลม
ของผเชยวชาญการจดการไดเขยนใบแทรกซงเปนทรจกโดยทวไปวา PM Declaration of
Interdependence.
4 Agile Modeling: AM
Agile Modeling: AM
Agile เปนแนวคดใหมส าหรบการพฒนาซอฟตแวร ทพยายามทจะแทรกตวเขา
ไปใน methodology แบบเดม เพอใหงานสนลงเปนหลกการในการพฒนา software แบบใหม
ทเนน...
Rapid and flexible response to change
ท าใหการพฒนาวองไว
มการท าเรอยๆไมตองหยด แมมอะไรมากระทบกไมเปนไร
เมอมการเปลยนแปลง เราสามารถรองรบความเปลยนแปลงนนไดอยาง
รวดเรว ไมตายตว
วตถประสงคของ Agile
1. เนนวาใครถนดอะไร และการพดคยสอสารกน มากกวา การยดตดทเครองมอและกระบวนการ เชนเปลยนใหโปรแกรมเมอรไปคยกบลกคาแทน ลกคาบอก
อะไรมากท าตามนนไดเลย
2. ใหท างานโดยยดทผลผลตหรอ software เปนหลก เชน เดมเนนเอกสารแต
Agile ไมค านงถงมากนก แตจะใหความส าคญทวาเราม s/w หรอของสงให
ลกคาไดตรงตามความตองการหรอไม
3. ใหความส าคญเรองของการตดตอสอสาร เชน เดมมสญญาหรอ contact
กนแต Agile ไมสนใจ ใหมองทความสมพนธระหวางผพฒนาและลกคา
4. ยอมรบความเปลยนแปลง เชน เดมตองวางแผนใหครบเปนอยางด และท าตามแผน (Gantt chart) ใหได แต Agile ไมตองท าตามแผนแตเนนการ
สนองความเปลยนแปลงทเกดขนได
ถาเรามโปรเจคเกาทสามารถตอเนองได ดงนนแสดงวาเราม Asset เดมเพอมา
ตงตนท าโปรเจคใหม เพราะฉะนนงานใหมเรากสามารถน า Asset มาสงมอบไปกอนกได
5 หลกการ Agile
หลกการ Agile
เนนความพอใจใหลกคา ลกคาชอบ มการสงมอบ sw อยางตอเนอง
ยอมรบ requirement ทเปลยนแปลง
มการสงมอบงานบอยๆ (ทกๆ 2 สปดาห)
ลกคาและผพฒนาตองท างานรวมกน (โปรแกรมเมอรไปท างานท site
ลกคา) ตองเจอกน
ทกวนจนโปรเจคเสรจ
การท างานตองปลอยใหทมงานมอ านาจการตดสนใจเองได ปลอยใหเคาท างาน
ไวใจกน
และทมงานกตองมความรบผดชอบระดบหนง
การตดตอกน ตองคยซงๆหนา หามอเมลลหรอโทร
วดความกาวหนาของงานท SW
กระบวนการท างาน ใหท าไปเรอยๆ อยาหวอหวา คอยๆท า สงงานทละนด
ชวยท าใหคณภาพชวตของผพฒนาดขน
ผพฒนา สปอนเซอร ลกคา ตองมการท าไปเรอยๆ คงท ไมเรวเกนหรอชา
เกน
ทมงานตองใหความสนใจกบเทคนคตางๆ มการแชรกน
เนนความงาย ออกแบบงายๆ พนๆ ไมซบซอน ท าใหดแลแกไขงายเมอพบ
ความเปลยนแปลง
ทมมความรบผดชอบในกระบวนการของตวเอง
มการนดพบแลกเปลยนกนสม าเสมอ
การท างานในขนแรก กอาจมการสงมอบของไดเปน หนาจอ, prototype,
infrastructure โดยขนแรกอาจมองวา progress เราเทากบ 0 เปอรเซนต (เพราะยงไมม
SW เกดขน)
6 โครงรางแนวคดตนแบบ ของ Agile Model Process
โครงรางแนวคดตนแบบ ของ Agile Model Process
7 โมเดลของ Agile (AM : Agile Modeling)
โมเดลของ Agile (AM : Agile Modeling)
เลอกบางหลกการมาท า
เปนวธหนงทจะเอาหลกการของ Agile มาจดการกบเอกสารและระบบเดมทม
อยได
ใน Agile ประกอบดวย
1. value ผลลพธ
2. principle หลกการ
3. practices วธปฏบต
ทงสามอยางนเปนสวนหนงในโมเดล Agile ทสามารถน ามาพฒนา SW ใหม
ประสทธภาพและเกด overhead นอย
ใหมอง Agile เปนสวนขยายของกระบวนการพฒนา SW แบบเดมได
o ให Agile เขาไปก ากบ ดวาของเดมทมอยอนไหนส าคญกท า ไมส าคญก
ละ
o น า Agile มาจดล าดบความส าคญ ดวากจกรรมไหน ควรท า ไมควรท า
8 โมเดลของ Agile (AM : Agile Modeling)
9 AM Value (ผลลพธ)
AM Value (ผลลพธ)
เนนตดตอสอสาร
เนนความงาย ไมซบซอน
เนน feedback จากลกคา
เนนความกลาตดสนใจ
เนนความเคารพกนและกน
AM Core Principle (หลกการ)
อยบนความเหมาะสมทพอด
รบ requirement พรอมเปลยนแปลงไดตลอดเวลา
เนนปจจบนเปนหลก
ท า model ตามความจ าเปนเทานน
พยายามใช multiple model มองหลายๆมมมอง
มการตอบกลบเรว
SW ถอเปนจดมงหมายหลก
ใหแบกสมภาระเบาๆ
AM Supplement Principle
o เนน content มากกวา representation(ทใช UML เขยน) ไมเนน
เครองมอ เนนทเนอหาขางใน
o ตดตอกนอยางเปดเผย และตรงไปตรงมา
AM Core Practice (แนวทางปฏบต /ลงมอท า)
1. จดประชม รวบรวม Active stakeholder เทานน บางมอาจม None stakeholder เขามาฟงได แตหามออกความคดเหน หามถาม หามตดตอ
หามแสดงไอเดย
2. น า Artifact มาใชใหถกตอง Artifact คอชนสวนของงานทเราท าระหวางการพฒนาระบบเชน อเมลล,
source code,จดหมาย,ใบเชญประชม ถา Artifact ใดถกเลอกมาใชในการท างาน เรยกวา
"work products" และถา work products น ถกสงมอบใหลกคาเรยกวา "Deliverable"
3. พยายามเปนเจาของงาน สามารถท างานแทนกนและกนได 4. พยายามใชโมเดลแบบคขนาน จะไดมองตางมม เพอเกบรายละเอยดของระบบ
ใหครบ
5. ท าใหเนอหางาย 6. พยายามวาดรปไมใหซบซอน
10 AM Core Practice (แนวทางปฏบต /ลงมอท า)
7. พยายามใหโมเดลเขาถงไดทกคน 8. สามารถเปลยน Artifact สวนหนง ไปอกสวนหนงได 9. ใชโมเดลแบบเลกกอนคอยขยาย 10. พยายามใหผอนมสวนรวมในการท าโมเดล
11. พสจนดวยการลองเขยน code ด (จาก code เรมตนตงแตแรก)
12. ใชเครองมองายๆในการท างาน เชน กระดาษ,กระดานด า
AM Supplement Practices
o ท าใหเปนมาตรฐาน
o คอยๆสรางใหมรปแบบ เมอถงเวลาคอยใช
o โมเดลไมใช ใหโยนทงไปเลย เพราะจะไดไมเสยเวลามาดแล
o เนน contract (สญญาระหวางระบบทสมพนธกนอย) พยายามจด
contract ใหเปนทางการ เชน web service ม signatureอะไรบางใน function call
o การ update code เฉพาะตอนทมปญหา
Design By Contract (อยางเปนทางการ)
A เรยกใช B เพอจบบรการท B มให , A ตองรวา B มอะไรใหใช และใชแลว
ไดอะไร แบบนเปน contract ระหวาง A-B เชน การถอนเงน A (client), B (บญชเงน
ฝาก)
1. Pre Condition (เขยนเงอนไขทเปนจรง กอนไปใชบรการ) WDAmount <= -100
2. Post condition (เงอนไขใดๆ เมอไปเรยกใชบรการแลว มอะไรทเปนจรงบาง)
New Balance = Balance – WDAmount
3. Invariant (เงอนไขใดๆ ทจะตองเปนจรง ตลอดเวลา ในขณะท B ท างาน
อย)
Balance >= 100 B.
11 เทคนคการพฒนาแบบ Agile
เทคนคการพฒนาแบบ Agile
Agile model driven development (AMDD)
Code Refractor : เปนการ redesign code คอใหแก code เดยวนน
แลว design
เปลยนเอง
Pair Programming : จบทมท างานเปนค 2 คนท างานรวมกน ท าท
เดยวกน
ใหเครองเดยว 2 คน,แชรกนใช,คนหนงท า-คนหนงด (มการตรวจสอบกนไปดวย)
Test Driven Development(TDD) : เปนเทคนคในการเขยน test
case เขยน test case
กอนและคอยท าการ implement code
ตวอยางการเขยน
Test
case No. Desc. Inputs
Expected
Outputs
Actual
Outputs Remark
1. ชอ
pathname A=5,B=2 X=5 X=-5
2. ชอ
pathname C=8 X=2 X=2
รปแบบวธการทท าเอา Agile มาใช
1. Agile UP 2. XP (Extreme Programming)
3. FDD (Feature Driven Development)
4. Scrum
12 ตวอยางการน าเอาเทคโนโลย แบบ Agile ไปใชงาน ในธรกจ
ตวอยางการน าเอาเทคโนโลย แบบ Agile ไปใชงาน ในธรกจ
Agile Messenger 3.0 ใหบรการ สงขอความสนทนาแบบ Instant
Messaging (IM) บนโทรศพทมอถอ ใหบรการเทคโนโลยมลตมเดยและเทคโนโลย Push-to-
Talk ส าหรบโทรศพทมอถอไปยงเครองคอมพวเตอร
AgileMobile.com (เอไจล โมบายล ดอท คอม) ผพฒนาซอรฟแวรและ
โซลชนส าหรบโทรศพทมอถอ ไดเปดตว Agile Messenger 3.0 (เอไจล แมสเซนเจอร 3.0)
ซงเปนบรการสงขอความสนทนาแบบ Instant Messaging (IM) ททนสมยทสดส าหรบ
โทรศพทมอถอ โดย Agile Messenger 3.0 น สามารถใชไดกบระบบสงขอความสนทนา
แบบ IM หลายระบบ ไดแก ICQโ, AIMโ, Yahoo!โ, MSN, QQโ และ Wireless Village?
นอกจากนน Agile Messenger 3.0 ยงใหบรการมากขน และยงใหบรการเทคโนโลย
Push-to-Talk ส าหรบการสอสารระหวางโทรศพทมอถอกบโทรศพทมอถอดวยกน และการ
สอสารระหวางโทรศพท มอถอและเครองคอมพวเตอร ซงทางเอไจลก าลงด าเนนการขอ
สทธบตรส าหรบเทคโนโลยดงกลาว
ระบบการท างานของ Agile Messenger 3.0 นไดรบการพฒนา
จากขอมลจากผลงทะเบยนใช Agile Messenger ทมมากกวา 400,000 รายทวโลก
Agile Messenger 3.0 เปดใหดาวโหลดฟรทเวบไซต www.agilemobile.com ในชวง
แนะน า
Agile Messenger 3.0 เปนโซลชนส าหรบรบสงขอความสนทนาทใช
กบโทรศพทมอถอ ซงสามารถสงขอความไดอยางราบรน ผใชยงสามารถเชอมตอกบระบบสง
ขอความสนทนาแบบ IM หลายๆ โปรแกรมโดยการเชอมตอเพยงจดเดยว การสงขอความ
สนทนาแบบมลตมเดย ท าใหผใชสามารถสอสารไดทงภาพ และเสยง หรอแมกระทงสงวดโอสนๆ
ส าหรบโทรศพทมอถอทมกลองในตว
ดวยเทคโนโลย Push-to-Talk ซงเปนเทคโนโลยลาสด ท าใหผใช
สามารถสงขอความเสยงจากโทรศพท ซงการท างานคลายกบการใช walkie-talkie โดย
ขอความจะถกสงไปยง เครองคอมพวเตอรหรอโทรศพทมอถอ ของเพอนหรอผทมรายชอตดตอ
ในระบบสงขอความสนทนา ในกรณทผรบขอความไมไดออนไลน ขอความเสยงจะถกเกบไวและ
ผรบจะไดรบเมอเขาสโปรแกรม
Agile Messenger 3.0 ยงสามารถแยกหนาจอและปม เพอใชในการ
แสดงการบทสนทนาหลายๆ คน สามารถเกบขอมลบทสนทนา และใหบรการรปไอคอนแสดง
อารมณ นอกจากนน Agile Messenger 3.0 ยงสามารถแสดงภาษาตางโดยใชการ
ถอดรหสภาษาโดย Unicode และ BIG5 encoding
ทมอน ฮารนกา ผอ านวยการดานเทคนค AgileMobile.com กลาว
วา “Agile Messenger 3.0 เปนโซลชนสงขอความสนทนาแบบ Instant messaging
ส าหรบโทรศพทมอถอทมระบบการท างานทมากทสด ในปจจบนยงไมมบรการใดทสามารถ
13 ตวอยางการน าเอาเทคโนโลย แบบ Agile ไปใชงาน ในธรกจ
เทยบเทา Agile Messenger 3.0 ไดในแงของความหลากหลายของบรการและความเสถยร
ของระบบ Agile Messenger 3.0 นนสามารถเชอมตอและท างานไดอยางมประสทธภาพ
และสามารถใชไดกบโทรศพทมอถอไดทกรน”
ขอบคณ www.baanmobile.com ส าหรบการใหขอมลครบ