Measuring Agility in Agile Software Development

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Work Breakdown Structure
Advertisements

Business System Analyst
Information System Project Management
CSE323 การวิเคราะห์และออกแบบระบบ (Systems Analysis and Design)
บทที่ 2 การพัฒนาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศ (Information System Development)
แบบจำลองกระบวนการซอฟต์แวร์
Chapter 2 Software Process.
school of Information communication Tecnology,
Modeling and Activity Diagram
NJUG 4 Agile Software Development & Interactive TV application
Chapter 1 Introduction to Software Engineering – Software Engineering Chaichan Kusoljittakorn 1.
Homework 2 Present.
Business System Analysis and Design (BC401)
BC424 Information Technology 1 บทที่ 7 การพัฒนาระบบ สารสนเทศ (Information System Development)
Database and Application Development Life Cycle 2.
Tawatchai Iempairote วันที่ 3 กรกฎาคม 2556
1 คต ๔๔๑ สรุปการจัดการ โครงการซอฟต์แวร์ คต ๔๔๑ สรุปการจัดการ โครงการซอฟต์แวร์ Royal Thai Air Force Academy : RTAFA Royal Thai Air Force Academy : RTAFA.
อาจารย์ วิทูร ธรรมธัชอารี. เนื้อหาในการเรียน  เครื่องมือในการออกแบบและพัฒนาระบบ บัญชีด้วยคอมพิวเตอร์  ความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล  การวางระบบบัญชีด้วยคอมพิวเตอร์
ประเภทบุคลากร นักวิชาการสาธารณสุข, นักทรัพยากรบุคคล, จพ.ธุรการ Production Line 1.จัดทำแผนบุคลากร 2.จัดประชุม/สัมมนา 3.ประเมินผลและจัดการความรู้ 4.ร่วมผลิตบุคลากรทางการแพทย์
ลักษณะงานของวิศวกร ซอฟต์แวร์ ● วิเคราะห์และจัดทำความ ต้องการซอฟต์แวร์ ● ออกแบบซอฟต์แวร์ ● พัฒนาซอฟต์แวร์ ● ทดสอบซอฟต์แวร์ ● บำรุงรักษาซอฟต์แวร์ ● จัดการองค์ประกอบ.
ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีและนวัตกรรมการศึกษา
การจัดทำแผนกลยุทธ์การบริหารทรัพยากรบุคคล
วิชา การพัฒนางานด้วยระบบคุณภาพและเพิ่ม ผลผลิต (Work Development with Quality Management.
Information Systems Development
หน่วยการเรียนรู้ที่ 2 โรงเรียนของเรา.
Software Evolution แบบจำลองกระบวนการพัฒนา/ผลิตซอฟต์แวร์ (Process Model) แบบจำลองใช้สำหรับชี้นำถึงกิจกรรมหลัก (key Activities) ในการพัฒนาซอฟต์แวร์ ด้วยการกำหนดรายละเอียดหรือข้อบัญญัติไว้ในแต่ละกิจกรรมในแต่ละขั้นตอนที่มีลำดับขั้นตอนการพัฒนาที่ชัดเจน.
Thai Quality Software (TQS)
กระบวนการพัฒนาซอฟต์แวร์
Road to the Future - Future is Now
ความเป็นมาและความสำคัญ ของการเพิ่มผลผลิต
2 การพัฒนาระบบสารสนเทศ (Information System Development)
Information System Development
Java Development Tools
บทที่ 5 ความต้องการ วิศวกรรมความต้องการ แบบจําลองการวิเคราะห์
Software Evolution แบบจำลองกระบวนการพัฒนา/ผลิตซอฟต์แวร์ (Process Model) แบบจำลองใช้สำหรับชี้นำถึงกิจกรรมหลัก (key Activities) ในการพัฒนาซอฟต์แวร์ ด้วยการกำหนดรายละเอียดหรือข้อบัญญัติไว้ในแต่ละกิจกรรมในแต่ละขั้นตอนที่มีลำดับขั้นตอนการพัฒนาที่ชัดเจน.
การพัฒนาซอฟต์แวร์แบบเอจายล์
หลักการและแนวคิดเกี่ยวกับ การจัดการกระบวนการ
ความตระหนักการจัดการคุณภาพ
Generic View of Process
Introduction to CRISP-DM
โดยสรุป 10 ขั้นตอนในการ implement
(Smart Strategy Praboromarajchanok Institute: SSPI)
วัฒนธรรมองค์กร กรมอนามัย
Object-Oriented Programs Design and Construction
การบริหารและประเมินโครงการ แบบมุ่งผลสัมฤทธิ์
UML (Unified Modeling Language)
แนะนำรายวิชา การออกแบบระบบการจัดการเรียนรู้บนเครือข่าย
แผนที่ยุทธศาสตร์ของศูนย์พัฒนาอนามัยพื้นที่สูงปี
Development Strategies
การพัฒนาระบบสารสนเทศ
วิศวกรรมซอฟต์แวร์ (Software Engineering)
การออกแบบบทเรียนคอมพิวเตอร์
“No time to go to library use MSU LibraryGO. App”
Selecting Research Topics for Health Technology Assessment 2016
Family assessment.
วิชา วิศวกรรมซอฟต์แวร์ (Software Engineering)
การพัฒนาระบบสารสนเทศ (Information System Development)
13 October 2007
5. ข้อกำหนดความต้องการซอฟต์แวร์ (Software Requirements Specification)
บทที่ 8 ผลิตภัณฑ์การบริหารการผลิต
บทที่ 14 ระบบสารสนเทศ กับการเปลี่ยนแปลงองค์การ
บทที่ 2 การพัฒนาระบบสารสนเทศ
บทที่ 3 กระบวนการผลิตซอฟต์แวร์ (Software Process)
ประเด็นการขับเคลื่อนองค์การไปสู่ระบบราชการ 4.0
คณะวิทยาการจัดการ มหาวิทยาลัยราชภัฏยะลา
[ บทที่ 3 ] ระบบสารสนเทศ.
Program Evaluation Achakorn Wongpreedee, Ph.D.
Introduction to Structured System Analysis and Design
บทที่ 1 กลยุทธ์ของกระบวนการการพัฒนา ซอฟต์แวร์รายบุคคล
ใบสำเนางานนำเสนอ:

Measuring Agility in Agile Software Development

1. Agile software 2. Measuring Agility

Agile

Agile Agile เป็นหลักการในการพัฒนา software แบบใหม่ ตอบสนองได้อย่างรวดเร็วและมีความยืดหยุ่นต่อการเปลี่ยนแปลง มีการพัฒนาที่ว่องไว มีการดำเนินงานได้ต่อเนื่อง แม้จะมีสิ่งที่มากระทบก็ยังคงสามารถดำเนินงานต่อได้ เมื่อมีการเปลี่ยนแปลงจะสามารถรองรับความเปลี่ยนแปลงนั้นได้อย่างรวดเร็ว

วัตถุประสงค์ของ Agile ให้ความสำคัญกับความสามารถแต่ละบุคคล และการพูดคุยสื่อสารกันมากกว่า การยึดติดที่เครื่องมือและกระบวนการ ทำงานโดยยึดที่ผลผลิตหรือซอฟท์แวร์เป็นหลัก ให้ความสำคัญเรื่องของการติดต่อสื่อสาร ยอมรับความเปลี่ยนแปลงต่างๆ

หลักการ Agile

หลักการ Agile (1) • เน้นไปที่ความพึงพอใจของลูกค้า ทำตามที่ลูกค้าต้องการ และมีการส่งมอบซอฟท์แวร์อย่างต่อเนื่อง • ยอมรับ requirementที่เปลี่ยนแปลง • มีการส่งมอบงานบ่อยๆ (ทุกๆ 2 สัปดาห์) • ลูกค้าและผู้พัฒนาต้องทำงานร่วมกัน เพื่อให้งานที่ออกมาสามารถตอบสนองความต้องการของลูกค้า

หลักการ Agile (2) • วัดความก้าวหน้าของงาน(KPI) ที่ซอฟท์แวร์ • กระบวนการทำงาน ให้ดำเนินงานไปเรื่อยๆ ไม่เร็วจนเกินไปหรือช้าจนเกินไป • การออกแบบเน้นความเรียบง่าย ไม่ซับซ้อน ทำให้ดูแลแก้ไขง่ายเมื่อพบความเปลี่ยนแปลง หรือความผิดพลาด • ทีมงานต้องมีความรับผิดชอบในกระบวนการของตัวเอง • มีการนัดพบแลกเปลี่ยนความคิด และแสดงความคืบหน้ากันสม่ำเสมอ

Agile Modeling

Agile Modeling เป็นวิธีหนึ่งที่จะเอาหลักการของ Agile มาจัดการกับเอกสารและระบบเดิมที่มีอยู่ ประกอบด้วย value (ผลลัพธ์) principle (หลักการ) practices (วิธีปฏิบัติ)

Agile Modeling : value • เน้นติดต่อสื่อสาร • เน้นติดต่อสื่อสาร • เน้นความเรียบง่าย ไม่ซับซ้อน • เน้น feedback จากลูกค้า • เน้นความกล้าตัดสินใจ • เน้นความเคารพกันและกัน

Agile Modeling : principle • รับ requirement ของลูกค้าพร้อมเปลี่ยนแปลงได้ตลอดเวลา • ทำ model ตามความจำเป็นเท่านั้น • พยายามใช้ multiple model มองหลายๆมุมมองจะได้งานที่สมบูรณ์มากขึ้น • มีการตอบกลับเร็วที่รวดเร็ว • ซอฟท์แวร์ถือเป็นจุดมุ่งหมายหลัก • Supplement Principle • เน้น content มากกว่า representation(ที่ใช้UMLเขียน) ไม่เน้นเครื่องมือ เน้นที่เน้อหาที่มีข้างใน

Agile Modeling : practices • จัดประชุม รวบรวม Active stakeholder เท่านั้น บางทีอาจจะมี None stakeholder เข้ามาฟังได้ • นำ Artifact มาใช้ให้ถูกต้อง • พยายามใช้โมเดลแบบคู่ขนาน เพื่อเก็บรายละเอียดของระบบให้ครบถ้วน • ทำให้เนื้อหาง่าย พยายามวาดรูปไม่ให้ซับซ้อน และโมเดลเข้าถึงได้ทุกคน • ใช้โมเดลแบบเล็กก่อนแล้วค่อยขยาย • พิสูจน์ด้วยการลองเขียน code ดู (จาก code เริ่มต้นตั้งแต่แรก)

Agile Model • ทั้งสามอย่างที่กล่าวมาเป็นส่วนหนึ่งใน Agile Model ที่สามารถนำมาพัฒนา Software ให้มีประสิทธิภาพมากขึ้น • มอง Agile เป็นส่วนขยายของกระบวนการพัฒนาซอฟท์แวร์แบบเดิมได้ • ให้ Agile เข้าไปกำกับดูแลว่าของเดิมที่มีอยู่สิ่งใดสำคัญก็ทำ สิ่งที่ไม่สำคัญก็ละไว้เพื่อทำที่หลัง • นำ Agile มาจัดลำดับความสำคัญเพื่อดูว่ากิจกรรมใดควรทำก่อน

ความแตกต่างระหว่าง speed กับ agile

1. Agile software 2. Measuring Agility

Measuring Agility • การตั้งคำถามของProjectที่ถูกพัฒนาด้วยAgile ตอบสนองความต้องการของลูกค้าอย่างไร งานที่ลูกค้าต้องการความเร็วแค่ไหน • คำตอบที่ได้รับจะเน้นไปที่ความเร็วในการตอบสนอง ความเร็วเป็นสิ่งที่ทำให้ลูกค้าพึงพอใจในลักษณะของงานที่ทำ • ความเร็วอาจจะไม่ใช่คำตอบที่ลูกค้าต้องการ หากลูกค้ามีส่วนร่วมตั้งแต่เริ่มทำProjectและต้องการได้รับแก้ไขปัญหา การพัฒนาแบบ waterfall life cycle จะเร็วมากกว่า agile life cycle ซึ่ง waterfall life cycleจะวางแผนและเขียนโค้ดได้ง่ายกว่า นอกจากจะวัดความเร็วแล้วยังมีปัจจัยอื่นที่ต้องวัดหากมีการ เปลี่ยนแปลง

Measuring Agility (1)

Agility measurement methodology Change is easier in Reengineered Process BPR Workflow Management System AS-IS Process Reengineered Process AS-IS Process with change Reengineered Process with change CHANGE OR DISRUPTION

Agility measurement methodology (1) การที่จะทำให้โปรแกรมมีความซับซ้อนและมีความไวต้องอาศัย สองสิ่ง สิ่งแรกเราต้องสนใจความซับซ้อนในเชิงธุรกิจ ความคล่องตัวในการเปลี่ยนแปลงของระบบจากสถานะ หนึ่งของระบบไปยังอีกสถานะที่ต้องการ ซึ่งการที่เราจะทำเช่นนี้ได้เราต้องใช้การวางแผนและออกแบบ ระบบดังที่แสดงในรูปด้านบนซึ่ง ระบบที่เราศึกษาอยู่ตอนนี้คือ As-ls system ในส่วนของ reengineered system เป็นระบบ ที่สนับสนุนการเปลี่ยนแปลงของโปรเจคโดยจุดประสงค์ของการ ปรับเปลี่ยนระบบในเชิงธุรกิจนั้นเพื่อลดความซับซ้อนของ กระบวนการการทำงานและนำการปรับเปลี่ยนนี้ไปใช้ในระบบที่ เหลือทั้งหมด

สูตรการวัด Agility • ตัวชี้วัดระบุเวลา: • ตัวชี้วัดระบุเวลา: - Tstart = เวลาที่ลูกค้าระบุความต้องการ - Tdone = เวลา ที่ลูกค้ายอมรับข้อตกลงฟังก์ชันที่ต้องการ • ระยะเวลา: - Tdeliver = เวลาทั้งหมดที่ผู้รับงานตกลงรับงานจากลูกค้า - Taccept =เวลาที่ผู้รับงานเสนอฟังก์ชั่นที่สอดคล้องกับความ ต้องการของลูกค้า - Tlife cycle = ระยะเวลามาตรฐานของแต่ละagile delivery cycle

ReCycle Time Standard delivery time = Tdone – Tstart ReCycle Time =

เทคนิคการพัฒนาแบบ Agile Agile model driven development (AMDD) Code Refactor : เป็นการ redesign code คือให้แก้ code เดี๋ยวนั้นแล้ว design เปลี่ยนเอง Pair Programming : จับทีมทำงานเป็นคู่ 2 คนทำงานร่วมกัน ทำที่เดียวกัน แต่ทำเพียงเครื่องเดียว แชร์กันใช้ โดยคนหนึ่งทำ-อีกคนหนึ่งดู ( มีการตรวจสอบกัน ไปด้วย) Test Driven Development(TDD) : เป็นเทคนิคใน การเขียน test case เขียน test case ก่อนและค่อย ทำการ implement code

รูปแบบวิธีการที่ทำเอา Agile มา ใช้ • Agile UP • XP (eXtream Programming) • FDD (Feature Driven Development) • Scrum

เอกสารอ้างอิง http://wiki.nectec.or.th/setec/Knowledge/Agile http://noc.mcu.ac.th http://www.sciencedirect.com http://www.versionone.com/ Bob Moore Business Transformation Institute, Inc.

สมาชิกกลุ่ม นางสาวณภัทรา พลนารักษ์ รหัส 55010324 นางสาวณภัทรา พลนารักษ์ รหัส 55010324 นางสาวณัฏฐา เชื้อบุญชัย รหัส 55010342 นายปุณณวรรธน์ วัฒนะภาณุพัฒน์ รหัส 55010401 นายณัฐวุฒิ วัฒนาโยธิน รหัส 55010406 นางสาวนุชรี เสมสว่าง รหัส 55010673