คุณจะรู้ได้อย่างไรว่าเมื่อใดจะหยุดเพิ่มคุณสมบัติ


16

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

หลังจากที่ในขณะที่ฉันตัดสินใจว่ามันอาจเป็นประโยชน์กับคนอื่น ๆ และเริ่มที่จะเป็นระเบียบขึ้นอินพุตฆ่าเชื้อกำจัดแมลง มันเกิดขึ้นกับฉันเพราะฉันเขียนสคริปต์ฉันรู้วิธีใช้อย่างมีประสิทธิภาพถูกต้อง ฯลฯ คนอื่นอาจไม่ได้ดังนั้นฉันจึงเริ่มเพิ่ม GUI สิ่งนี้เริ่มต้นจากเมนูง่าย ๆ จากนั้นขยายเป็น GUI เต็มรูปแบบมากขึ้นด้วยทั้งเมนูอินเตอร์เฟสและตัวเลือก ฉันเพิ่มการตั้งค่าผู้ใช้ที่เก็บไว้และที่เก็บข้อมูลสำหรับฟีด xml ที่ค้นหาก่อนหน้านี้เพื่อเพิ่มความเร็วในการค้นหาซ้ำ

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

ฉันได้แก้ไขข้อผิดพลาดและแสดงความคิดเห็นรหัสของฉันอย่างชัดเจน แต่ฉันยังมีสิ่งที่ฉันคิดว่าสามารถทำได้เพื่อปรับปรุงแอพก่อนที่ฉันจะเปิดให้ผู้ทดสอบอัลฟ่าใช้งานได้ มันเป็นหนทางไกลมากจากสคริปต์บรรทัดเดิมของฉัน 20-30 สิ่งที่ฉันคาดหวังจะใช้เวลาเพียงหนึ่งหรือสองชั่วโมงในการเปลี่ยนจากการพิสูจน์แนวคิดไปสู่โปรแกรมการใช้งานที่ยอมรับได้ซึ่งใช้เวลา 10-20 เท่า (ฉันยังคงเป็น noob และสิ่งต่าง ๆ ใช้เวลานาน แต่ก็ยัง .... )

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

คำตอบ:


8

เมื่อคุณถึงกำหนด

หากคุณไม่มีกำหนดเวลานี่เป็นปัญหาของคุณ ...

นี่คือวิธีที่ฉันทำงาน:

  1. ฉันเพิ่มคุณสมบัติใหม่ / ข้อบกพร่องในสินค้าค้างของฉัน
  2. ฉันจัดลำดับความสำคัญของผลิตภัณฑ์ที่ค้างทั้งหมดในมูลค่าทางธุรกิจและประมาณ (สุดท้ายเป็นตัวเลือกในกรณีของโครงการส่วนบุคคล)
  3. ฉันจัดสรรเวลาทำงานให้กับตัวเอง วันที่วางจำหน่ายคือจุดสิ้นสุดของเวลานั้น
  4. ฉันเริ่มต้นด้วยตัวแรกในรายการ ฉันทำงานกับคุณสมบัติหนึ่งครั้ง จะแล้วเสร็จคุณสมบัติต้องสมบูรณ์จริง ๆ รวมถึงเอกสารประกอบ (ในตอนท้ายของคุณลักษณะฉันอาจจัดส่งผลิตภัณฑ์)
  5. ฉันใช้เวลาต่อไปจนกว่าจะหมดเวลาที่กำหนดไว้
  6. หากเวลาหมดลงเมื่อฉันสร้างสถานที่ฉันจะทิ้งมันไว้ชั่วคราว
  7. เมื่อหมดเวลาที่จัดสรรไว้ฉันใช้งานบิลด์ล่าสุดและเผยแพร่ด้วย
  8. ฉันทำซ้ำขั้นตอนที่ 1

อืมฉันชอบเวิร์กโฟลว์ที่นี่เป็นอย่างมาก นี่เป็นโครงการงานอดิเรกฉันไม่แน่ใจว่าฉันจะพยายามสร้างรายได้จากมันมีแนวโน้มที่จะได้รับข้อเสนอฟรีหรือโอเพนซอร์ส
fearoffours

4
ค่าไม่ได้หมายความว่าเงินในเวิร์กโฟลว์แนะนำข้างต้น คุณตัดสินใจว่าอะไรคือคุณค่า

ตกลงนี่มันยอดเยี่ยม ฉันสมัครแล้วตั้งแต่วันนี้ฉันเห็นโพสต์ก่อนหน้านี้ วันสุดท้ายของฉันคือ 15:00 น. และทุกอย่างเป็นไปด้วยดี! ฉันรู้สึกมั่นใจมากขึ้นเกี่ยวกับสิ่งที่เกิดขึ้นและสิ่งที่ฉันกำลังทำงานอยู่ ฉันได้จัดลำดับความสำคัญ (ในความคิดเห็นที่ด้านบนสุดของสคริปต์) สิ่งที่ต้องทำก่อนที่จะปล่อยรุ่นนี้และสิ่งที่สามารถปล่อยไว้จนภายหลัง และฉันกำลังเขียนคุณลักษณะที่ฉันกำลังทำงานเพื่อให้แน่ใจว่าฉันยังคงเพ่งความสนใจไปที่งานในเวลา ขอบคุณ!
fearoffours

3. I allocate work time to myself. The release date is the end of that time.@ เปียโน 303, เมื่อคุณพูดว่าtimeคุณหมายถึงเป็นชั่วโมงเช่นสร้างขึ้นทุกคืน? หรือเวลาเช่นวิ่งเต็ม?
Kenan D

@ LordCover: ตัวอย่างเช่นฉันมอบหมายให้ฉัน 3 สัปดาห์ (5 วันต่อสัปดาห์ 8 ชั่วโมงต่อวัน) เพื่อทำงานกับผลิตภัณฑ์ ฉันจัดส่งเมื่อสิ้นสุด 3 สัปดาห์

3

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


เป็นจุดที่ดี ฉันไม่ได้เขียนอะไรเกี่ยวกับจุดประสงค์ในขณะนี้
fearoffours

SRS นั้นดี แต่สำหรับทีมชายเดี่ยวในโปรเจ็กต์ส่วนตัว เอกสารเป็นสิ่งที่ดี แต่สำหรับโครงการประเภทนี้ฉันยังไม่คิดว่า SRS ทั้งหมดเป็นสิ่งจำเป็น
คริส

@Chris - SRS เป็นสิ่งที่ดีเสมอ เป็นโครงการส่วนตัวและเผยแพร่ฟรีวันนี้ยังเป็นซอฟต์แวร์ฟรีและเขียนโดยคนหลายสิบคน ตัวอย่างที่ดีว่าทำไมเอกสารเป็นสิ่งสำคัญสำหรับ Facebook มันง่ายกว่าที่จะเขียนเอกสารในช่วงแรกและอัปเดตเอกสารนั้นแล้วมันจะเป็นการเขียนในวันนี้ หากคุณไม่สามารถจดการออกแบบของคุณอธิบายการออกแบบเอกสารวิธีการทำงานของคุณสมบัติแล้วคุณจะรหัสมันได้อย่างไร
Ramhound

2

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

ในระยะยาว: เมื่อคุณเสร็จสิ้นและจัดทำเอกสารระบบปลั๊กอินที่จะช่วยให้ผู้ใช้ของคุณ (และแน่นอนว่าคุณ) ใช้งานคุณสมบัติใหม่ได้อย่างรวดเร็วและง่ายดายหากคุณต้องการ นั่นควรเป็นคุณสมบัติสุดท้ายที่คุณต้องเพิ่มหลังจากนั้นคือปลั๊กอินทั้งหมด


1

เมื่อคุณแน่ใจเกี่ยวกับความเสถียรของซอฟต์แวร์ของคุณจะออกวางจำหน่ายแม้ว่าจะมีคุณสมบัติที่ค้างอยู่ ความเสถียรมีความสำคัญมากกว่าฟีเจอร์ รับข้อเสนอแนะรวมกับคุณสมบัติที่มีอยู่และตัดสินใจในสิ่งที่จะต้องส่งต่อไปและเมื่อ!


1

คุณสามารถดูแลโครงการตลอดไปได้ตลอดไป

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


1

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

  • เพิ่มคุณสมบัติที่คุณต้อง
  • ร่อนผ่านคุณสมบัติที่สำคัญ
  • ดูรายละเอียดคุณสมบัติที่ดีที่จะมี

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


ฉันชอบความคิดในการรักษาผลิตภัณฑ์ที่เพ่งความสนใจไป ฉันพยายามที่จะทำเช่นนั้นและยังคงหาวิธีที่จะครอบครองตัวเอง!
fearoffours

2
@fearoffours คุณสามารถหาวิธีที่จะทำให้งานของคุณเองดีขึ้น ประเด็นก็คือการค้นหาจากผู้ใช้ว่าจะทำให้มันทำงานได้ดีขึ้นสำหรับพวกเขา แก้ไขอุปสรรคที่แท้จริง Smooth จริงจุดหยาบ
Huperniketes

คำแนะนำที่ดีในความคิดเห็นนั้น (+1) ขอบคุณ!
fearoffours

0

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

นอกจากนี้ยังช่วยให้ฉันชอบทำนาทีที่เป็นไปได้ที่จะทำอะไรบางอย่าง (โดยไม่ต้องหันไปแฮ็ค)


0

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

ในตอนท้ายของสัปดาห์ปล่อยมัน ปล่อยก่อนปล่อยบ่อย


แต่จะทำอย่างไรเมื่อคุณสมบัติบางอย่างมีการพึ่งพาซึ่งกันและกัน?
Kenan D

0

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

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