Feature-Driven Development (FDD) เป็น วิธีการพัฒนาโปรแกรมแบบ Agile แบบหนึ่ง
ที่นำเอาความคาดหวัง และความต้องการของลูกค้า มาเป็นแนวทาง ในการพัฒนาโปรเจค
บทบาทต่างๆ ในการพัฒนา FDD
1.Six Key Project Roles จะมี
-Project Manager ผู้จัดการ โปรเจค มีหน้าที่บริหาร จัดการทุกอย่างในโปรเจค ทั้งงบประมาณ เวลา ตั้งแต่วันแรก จนจบ
-Chief Architect หัวหน้า ผู้ออกแบบ คอยควบคุมโครงสร้าง ต่างๆ ในระบบของโปรเจค
-Development Manager ผู้จัดการ การพัฒนา ดูแลการส่งมอบงานให้กับลูกทีม
-Chief Programmer หัวหน้าโปรแกรมเมอร์ ดูแลโปรแกรมเมอร์ ในหนึ่งงานอาจมีหลายคน เพื่อดูแล
-Class Owners เป็นผู้พัฒนา class ให้กับทีม ควบคู่ไปกับ Chief Programmer หากมีความสามารถ ก็อาจสับเปลี่ยนหน้าที่กันได้
-Domain Experts ผู้เชี่ยวชาญ เป็นผู้ที่เข้าใจ ธุรกิจ เป็นอย่างดี เพื่อช่วยให้ลูกทีม สามารถสื่อสารกับลูกค้าให้ได้ดีที่สุด แต่หากทีมมีขนาดเล็ก ก็ ร่วมหน้าที่นี้กับ Project Manager
2.Supporting Roles จะมี
-Release Manager ผู้จัดการ ความคืบหน้า จะคอยดูแลความคืบหน้าในโปรเจค จะคอยรายงานกับ Project Manager
-Language Lawyer เป็นผู้ช่วยให้ทีม เข้าใจในเทคโนโลยีต่างๆ
-Build Engineer เป็นผู้รวบรวมโปรแกรม เวอร์ชั่นต่างๆ เพื่อรวบรวมไว้เมื่อโปรเจคสุดท้าย
-Toolsmith เป็นผู้ที่เตรียม Environment ต่างๆ ในการทำโปรเจค หากมีหลายคนก็อาจเรียกว่า IT team
-System Administrator เป็นจัดการแก้หัญหาต่างๆ รวมถึง Security
3.Additional Roles จะมี
-Testers เป็นผู้ตรวจสอบระบบ และ ช่วย QC
-Deplorers เป็นผู้พัฒนาระบบ ให้เข้ากับสิ่งใหม่ๆ
-Technical Writers เป็นผู้เก็บรายงานจากผู้ใช้
การพัฒนาโปรเจคแต่ละช่วง ตามรูปด้านบน จะมี
1.Develop an Overall Model เป็นช่วงที่ลูกค้าและนักพัฒนาทา งานร่วมกัน โดยจะมีลูกค้าเป็น Domain Expert คอยอธิบายต่างให้ ทีมพัฒนา โดยมี Chief Architect เป็นผู้ดูแลภาพรวมของระบบ
ผู้เกี่ยวข้อง ผู้เชี่ยวชาญ, หัวหน้า สถาปนิก, หัวหน้า โปรแกรมเมอร์
2.Build Feature List เมื่อสร้างระบบแล้ว ก็จะเริ่มสร้างรายการ Features โดยรายการดังกล่าวจะแบ่งดังนี้
-Features : <action><result><object>
-Feature Sets : <action><-ing> a(n) <object>
-Major Feature Sets: <object> management
ผู้เกี่ยวข้อง ผู้เชี่ยวชาญ,หัวหน้า โปรแกรมเมอร์,หัวหน้า สถาปนิก
3.Plan by Feature เป็นการวางแผนในการพัฒนา โดยยึดเอา Feature ที่ต้องการเป็นหลัก เพื่อสามารถนำมาคำนวนเวลา ในโปรเจค
ผู้เกี่ยวข้อง ผู้จัดการ โครงการ,ผู้จัดการ การพัฒนา,หัวหน้า โปรแกรมเมอร์
4.Design by Feature เป็นการที่ Chief Programmer เลือกรายการต่างๆ จาก Set of Feature มาพัฒนาเป็นชุดๆ
ผู้เกี่ยวข้อง หัวหน้า โปรแกรมเมอร์, เจ้าของ Class
5.Build by Feature นำเอาชุด มาทดสอบ และรวมเข้าไปในงานจริง
ผู้เกี่ยวข้อง หัวหน้า โปรแกรมเมอร์, เจ้าของ Class
วิธีการเขียน ฟี เจอร์ตามหลัก FDD
ต้องเขียนให้เข้าใจงาน เช่น “Task performed by who” ,“งาน ทำโดยใคร”
โดยใช้ Pattern ดังนี้ <action><result><object> เช่น
>Calculate the totalof a sale
>Assess the performance of a salesman
>Retrieve the balanceof a bank account
>Authorize a credit card transaction of a card holder
>Perform a scheduledserver
ข้อดีของ -FDD
-ความต้องการ เกิดจากผู้ว่างจ้าง เพราะแก้ไขงานตามความต้องการอยู่เสมอ
-การตรวจสอบ มีการแบ่งงานย่อย ทำให้ตรวจสอบได้ง่าย
VDO อธิบาย FDD ครับ
credit – http://www.flipbooksoft.com/upload/books/12-2014/aa5d65fc41fa8c61243c33cf0689e552/_155.pdf