ขั้นตอนการใช้งานซอฟแวร์สำหรับ One Man Teams [ปิด]


15

ฉันกำลังสร้างระบบซอฟต์แวร์สำหรับโครงการปริญญาโทของฉันและกำลังมองหาคำแนะนำเกี่ยวกับวิธีการเฉพาะที่เหมาะสมกับ "ทีมชายคนหนึ่ง" ...


1
ฉันดีใจที่คุณถามคำถามนี้ฉันอยู่ในสถานการณ์เช่นนี้ในขณะนี้ ฉันได้เข้าควบคุมทีมชายสองคนโดยไม่มีกระบวนการและการควบคุมแหล่งที่ปลูกฝังการบูรณาการอย่างต่อเนื่องการพัฒนาที่ขับเคลื่อนด้วยการทดสอบและอื่น ๆ อีกมากมาย ฉันสงสัยเกี่ยวกับสิ่งที่ฉันสามารถทำได้เพื่อปรับปรุงประสิทธิภาพและวิธีการเตรียมพร้อมที่ดีที่สุดเมื่อในที่สุดฉันก็ได้รับอนุญาตให้จ้างคนที่อยู่ภายใต้ฉัน
maple_shaft

คำตอบ:


11

ฉันทำให้ชีวิตของฉันเป็น "ซอฟต์แวร์เช่าปืน" ชายคนหนึ่งซึ่งทำงานจากที่บ้านเป็นส่วนใหญ่ดังนั้นฉันจึงอยากได้ยินสิ่งที่คนอื่นพูดเกี่ยวกับเรื่องนี้

นี่คือบางสิ่งที่ฉันพบว่าสำคัญ:

  • ดังที่ Denis กล่าวว่าการควบคุมแหล่งข้อมูลมีความสำคัญ แต่ SVN ไม่ใช่ตัวเลือกเดียว ฉันใช้ Perforce เป็นส่วนใหญ่และคอมไพล์เป็นทางเลือกที่ดี ฉันชอบรูปแบบการพัฒนา "ฉีดยา" ที่ให้ฉันทำการทดลองในรหัสสาขารวมพวกเขาเข้าสู่การฉีดเมื่อพวกเขาทำงานและขยะพวกเขาหากพวกเขาไม่
  • ฉันใช้สมุดบันทึกสำหรับบันทึกและโปรแกรมสำหรับติดตามงาน ปัจจุบันฉันใช้ Redmine ในตอนหลัง ก่อนหน้านั้นฉันใช้ Fogbugz ฉันชอบ Redmine เพราะมีวิกิในตัวที่ดีมากซึ่งฉันสามารถใช้สำหรับบันทึกย่อและลิงก์ไปยังไซต์สำคัญ ๆ
  • นอกจากนี้ยังเป็นสิ่งสำคัญในการติดตามสิ่งที่ฉันกำลังทำอยู่และตั้งค่าขีด จำกัด บางอย่างที่เหมาะสมกับตัวเองดังนั้นฉันจึงทำได้พอโดยไม่ต้องเหนื่อย - ดูด้านล่าง

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

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

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

เพื่อนของฉันสาบานโดย Pomodoro เพื่อให้พวกเขาจดจ่ออยู่กับงานและติดตามประสิทธิภาพส่วนบุคคลและฉันก็คิดว่าจะลองทำดู

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


3

ใช้ SVN ด้านบนอื่นทุกอย่างเป็นเวอร์ชั่น สำหรับการติดตามโน้ตบุ๊กจะทำเพื่อโครงการที่ง่ายกว่าถ้าต้องการคุณมีแอปพลิเคชั่นติดตามงาน / ข้อบกพร่องฟรีมากมาย (Redmine เจ๋ง) Agile / XP / Continuous Integration / อื่น ๆ จะคิดค่าใช้จ่ายน้อยเกินไปในความคิดของฉัน


3

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

ฉันคิดว่าแนวทางการปฏิบัติที่ดีที่สุดคือเพียงทำตามสิ่งที่เลือกไว้อย่างเหมาะสม (ตามความต้องการของคุณและโครงการ) แนวทางปฏิบัติที่ดีที่สุดที่ได้รับการยอมรับอย่างกว้างขวางจากแบบจำลองกระบวนการจำนวนหนึ่ง ดูวิธีการติดตามงานที่ทำได้ / เหลืองานการจัดการความต้องการการควบคุมเวอร์ชันการทดสอบ (โดยเฉพาะหน่วยและการทดสอบการยอมรับ) การรวมอย่างต่อเนื่องมาตรฐานการเข้ารหัสคุณไม่จำเป็นต้องทำอย่างนั้น หากคุณยังไม่มีฉันแนะนำให้อ่านCode CompleteและThe Pragmatic Programmerและฝึกฝนเคล็ดลับ

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


1

ผู้ชายคนนั้นถามเกี่ยวกับวิธีการเฉพาะและผู้คนตอบว่า "ใช้ซอฟต์แวร์ X / Y" ไม่ใช่เรื่องของเครื่องมือจริงๆมีหลายวิธีและดูเหมือนว่ายังไม่มีรายงานการตรวจสอบสำหรับพวกเขา: Agile, Iterative, Spiral, Waterfall, XP, V-Model, TDD


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