วิธีการที่คล่องตัวและฐานข้อมูลที่จุดเริ่มต้นของโครงการ


12

ใหม่เพื่อความคล่องตัวและฉันไม่แน่ใจว่าจะเริ่มอย่างไร ความคิดคือการสร้างส่วนเล็ก ๆ ของโครงการในการวิ่ง อย่างไรก็ตามโครงการที่ฉันทำงานอยู่ต้องใช้ฐานข้อมูลและฐานข้อมูลจะต้องใช้งานได้เกือบทุกอย่างเพื่อทำสิ่งต่างๆกับโครงการ

ดังนั้นโปรเจ็กต์ Agile จัดการกับสิ่งนี้อย่างไรคุณเริ่มต้นด้วยการสร้างฐานข้อมูลหรือไม่

คุณจะทำอย่างไรเช่นใช้ Scrum คุณจะทำเรื่องราวของผู้ใช้อย่างไรและทดสอบ db

คุณต้องการทำบางส่วนของ db ในเรื่องที่ต้องใช้รหัสด้วยหรือไม่

สมมติว่าคุณมีเรื่องราวที่เป็น "ในฐานะผู้ใช้คุณต้องลงทะเบียน ... " คุณจะสร้างตารางผู้ใช้ในฐานข้อมูลเป็นส่วนหนึ่งของเรื่องนี้หรือไม่?

ว่องไวจะช่วยคุณออกแบบฐานข้อมูลได้อย่างไร?


1
เรื่อง: "ในฐานะผู้ใช้คุณต้องสามารถลงทะเบียน ... " ฉันขอแนะนำให้อ่านผ่านblog.gdinwiddie.com/2011/06/11/dont-you-have-to-login-firstและโพสต์ที่เขากล่าวถึง . อาจไม่มีใครตอบ "ถูกต้อง"; เป็นการดีที่จะเข้าใจเหตุผลต่าง ๆ ในการอภิปราย
StevenV

หากคุณกำลังเริ่มต้น Agile หรือวิธีการอื่น ๆ สำหรับเรื่องนั้นโปรดตรวจสอบให้แน่ใจว่ามันเหมาะกับทีมโครงการและรูปแบบขององค์กรในการจัดการกับโครงการซอฟต์แวร์ (หรือลูกค้าของคุณ) มันไม่เป็นความจริงที่ทุกวิธีการทำงานสำหรับทุกโครงการและทุกองค์กร
NoChance

คำตอบ:


14

ใช่คุณจะสร้างฐานข้อมูลเพิ่มขึ้นโดยการเพิ่มตารางและคอลัมน์ที่จำเป็นตามที่เรื่องราวต้องการ โดยปกติคุณไม่ต้องการฐานข้อมูลทั้งหมดเมื่อคุณเริ่มเรื่องแรกเช่น "ในฐานะผู้ใช้คุณต้องสามารถลงทะเบียน ... " ส่วนใหญ่อาจต้องใช้โต๊ะเดี่ยวที่มีชุดคอลัมน์ที่กำหนดไว้อย่างแน่นอน

หากคุณมีเรื่องราวที่ต้องใช้ฐานข้อมูลทั้งหมดจริงๆแล้วเรื่องราวคือ Epic - มันใหญ่เกินไปและต้องถูกแบ่งออก


5

ใหม่เพื่อความคล่องตัวและฉันไม่แน่ใจว่าจะเริ่มอย่างไร

หลังจากอ่านโพสต์ของคุณฉันคิดว่าคุณเข้าใจผิดและคุณควรเริ่มต้นจากการอ่านความหมายที่แท้จริงและพยายามทำให้บรรลุผล

ความคิดคือการสร้างส่วนเล็ก ๆ ของโครงการในการวิ่ง

ปิด แต่ไม่ปิดพอ แนวคิดคือการส่งมอบซอฟต์แวร์ที่ใช้งานได้ในตอนท้ายของการวิ่งแต่ละครั้ง (ส่วนหนึ่งของระบบสามารถพอดีกับการวิ่งหนึ่งครั้งหรือไม่) ฐานข้อมูลสามารถมองว่าเป็นซอฟต์แวร์ที่ใช้งานได้หากว่าฐานข้อมูลเป็นสิ่งที่คุณส่งมอบให้กับลูกค้า

อย่างไรก็ตามโครงการที่ฉันทำงานอยู่ต้องใช้ฐานข้อมูลและฐานข้อมูลจะต้องใช้งานได้เกือบทุกอย่างเพื่อทำสิ่งต่างๆกับโครงการ

ทำไมถึงต้องใช้งานได้เกือบ คุณลักษณะทุกอย่างของระบบใช้เนื้อหาทั้งหมดหรือส่วนใหญ่ของฐานข้อมูลหรือไม่ เพราะถ้าไม่เช่นนั้นจะไม่มีประเด็นในการออกแบบฐานข้อมูลทั้งหมดก่อน

ดังนั้นโปรเจ็กต์ Agile จัดการกับสิ่งนี้อย่างไรคุณเริ่มต้นด้วยการสร้างฐานข้อมูลหรือไม่

Agile ไม่รองรับการออกแบบฐานข้อมูลหรือระบบ มันบอกวิธีจัดการโครงการของคุณ เมื่อคำนึงถึงสิ่งนี้คุณจะต้องเริ่มต้นด้วยการระบุคุณสมบัติทั้งหมดของระบบและนำไปไว้ใน backlog ของผลิตภัณฑ์ จากนั้นคุณพร้อมกับเจ้าของผลิตภัณฑ์กำหนดลำดับความสำคัญให้กับคุณสมบัติในงานในมือ หลังจากที่คุณทำเสร็จแล้วคุณจะเริ่มต้นใช้งานฟีเจอร์จาก Backlog และสร้าง sprints (โดยปกติจะยาว 2 ถึง 4 สัปดาห์) เมื่อการวิ่งสิ้นสุดลงคุณควรมีคุณสมบัติการทำงานใหม่ในระบบที่สามารถส่งมอบให้กับลูกค้าได้

คุณจะทำอย่างไรเช่นใช้ Scrum คุณจะทำเรื่องราวของผู้ใช้อย่างไรและทดสอบ db

ฉันอาจจะผิด แต่ไม่มีจุดทดสอบฐานข้อมูล คุณสามารถทดสอบรหัสที่อัพเดตฐานข้อมูล แน่นอนคุณสามารถทดสอบส่วนที่ตั้งโปรแกรมได้ของฐานข้อมูล แต่สามารถทำได้โดยการทดสอบรหัสที่เรียกใช้

คุณต้องการทำบางส่วนของ db ในเรื่องที่ต้องใช้รหัสด้วยหรือไม่

ใช่.

Agile นั้นไม่ได้หมายความว่า bullet เงินเพื่อการจัดการโครงการและสามารถสะกดหายนะเมื่อไม่ได้ใช้อย่างถูกต้อง ลองใช้เวลาอ่านเกี่ยวกับเรื่องนี้ (คุณสามารถหาแหล่งข้อมูลมากมายที่นี่หรือในสแต็คโอเวอร์โฟลว์) บางทีหาคนที่คล่องแคล่วไปแล้วและสามารถช่วยให้คุณเร่งความเร็วได้


4

ฐานข้อมูลจะต้องใช้งานได้เกือบทุกอย่างเพื่อทำอะไรกับโครงการ

เท็จอย่างมาก

ดังนั้นโปรเจ็กต์ Agile จัดการกับสิ่งนี้อย่างไรคุณเริ่มต้นด้วยการสร้างฐานข้อมูลหรือไม่

ฐานข้อมูลเปล่าใช่ จากนั้นเพิ่มตารางตามต้องการเพื่อทำให้การวิ่งเสร็จสิ้น

คุณจะทำเรื่องราวของผู้ใช้และทดสอบฐานข้อมูลอย่างไร

คุณจะถามอะไร Agile ไม่มีส่วนเกี่ยวข้องกับการออกแบบฐานข้อมูล

คุณเขียนเรื่องราว

คุณออกแบบโซลูชัน

คุณสร้างตารางและรหัส

คุณทดสอบรหัส

คุณต้องการทำบางส่วนของฐานข้อมูลในเรื่องที่ต้องใช้รหัสหรือไม่

มีทางเลือกอื่นอีกบ้าง? ทำ DB ทั้งหมดก่อนหรือไม่ นั่นเป็นไปไม่ได้

"ในฐานะผู้ใช้คุณต้องลงทะเบียน ... " คุณจะสร้างตารางผู้ใช้ในฐานข้อมูลเป็นส่วนหนึ่งของเรื่องนี้หรือไม่?

ข้อแรกนั่นเป็นเรื่องที่ไร้ประโยชน์เนื่องจากการลงทะเบียนไม่มีค่า นั่นเป็นเพียงอุปสรรคทางเทคนิคที่ผู้ใช้ถูกบังคับให้ผ่าน

ประการที่สองคุณจะสร้างตารางเพียงพอที่จะใช้เรื่องราว

ว่องไวจะช่วยคุณออกแบบฐานข้อมูลได้อย่างไร?

คุณจะถามอะไร

Agile คือการจัดการโครงการ มันไม่ได้ช่วยในการออกแบบใด ๆ

มันเพียงช่วยให้คุณแบ่งงานใหญ่ออกเป็นชิ้นเล็ก ๆ


2

ก่อนอื่นให้ทำตามวิธีการที่เพิ่มขึ้นเลือกโมดูลที่กำหนดความต้องการของมันชอล์กฟังก์ชั่นเป้าหมายพื้นที่การทำงานและจากนั้นก็สร้างแบบจำลอง, การออกแบบฐานข้อมูล, algos, รหัสและในที่สุดก็ทดสอบและทำซ้ำกระบวนการ


2

คำถามของคุณตะโกนเกี่ยวกับรูปแบบการต่อต้านการพัฒนาAgileFall

มันคืออะไร? โดยปกติจะเป็นองค์กรที่พัฒนาซอฟต์แวร์แบบดั้งเดิมในวิธีการ Waterfall แต่เนื่องจากพวกเขาตระหนักว่ามันไม่ทำงานจึงต้องดิ้นรนภายในเพื่อนำเอาเทคนิค Agile มาใช้ "ความล้มเหลวของก๊าซ" ที่เกิดขึ้นมักเกิดขึ้นเนื่องจากความต้องการความคล่องตัวที่แท้จริงเป็นพื้นฐานการเขย่าองค์กรจากวิธีการที่ร้านค้าน้ำตกหลายแห่งมีโครงสร้าง และแน่นอนว่าพวกเขามีแนวโน้มที่จะอยู่อย่างมีโครงสร้างเช่นเดียวกับคนที่มีอำนาจและดำรงตำแหน่งจำนวนมากรู้สึกว่าพวกเขาจำเป็นต้องฉีดตัวเองเข้าสู่กระบวนการเมื่อ Agile แสดงให้เห็นว่าคนเหล่านั้นไร้ประโยชน์จริง ๆ ต่อการพัฒนาซอฟต์แวร์อย่างไร

คุณต้องหลบหนีจากความคิดนี้ที่ใดก็ตามที่คุณเริ่มจากด้านล่างออกแบบและสร้างฐานข้อมูลของคุณแล้วย้ายไปที่ระดับกลางและไม่ต้องแตะฐานข้อมูลของคุณอีก นี่เป็นวิธีที่ผิดที่จะทำใน Agile

เริ่มต้นที่โมเดลโดเมนสำหรับเรื่องราวของผู้ใช้และดำเนินการของคุณจนถึงฐานข้อมูลและลงไปที่ระดับกลางและการนำเสนอ


ใช่ฉันเห็นคำตอบคำแนะนำมากที่สุดที่นี่และฉันก็คิดได้ในขณะที่เขียนคำถาม ไม่ต้องกังวลกับ AgileFall นี่เป็นโครงการทดสอบส่วนใหญ่ที่ฉันลองใช้วิธีการและรูปแบบเพื่อเรียนรู้วิธีการทำงานไม่ใช่โครงการที่จริงจัง
Ingó Vals
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.