ขั้นตอนในการเริ่มต้นโครงการขนาดใหญ่มีอะไรบ้างเมื่อฉันมีความคิดที่ยิ่งใหญ่ [ปิด]


49

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

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

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


11
คำตอบ: ขั้นตอนแรกเริ่มใช้การควบคุมเวอร์ชัน ตรวจสอบวิธีที่พวกเขาทำเช่นนั้นในแหล่งเก็บข้อมูลโอเพ่นซอร์สเช่น github, bitbucket, codeplex, sourceforge เป็นต้น
Spoike

ความหมายของ "การควบคุมเวอร์ชัน" คืออะไร? คุณช่วยอธิบายเพิ่มเติมได้ไหม

ดูคำตอบของฉันด้านล่าง
Spoike

1
ฉันขอแนะนำการโยกย้ายไปที่ [Productivity.se] แต่อาจจะปิดตัวลงเมื่อ NARQ อยู่ที่นั่น สิ่งนี้ไม่มีอะไรเกี่ยวข้องกับการเขียนโปรแกรมหรือโปรแกรมเมอร์มันเปิดกว้างอย่างไม่น่าเชื่อและคลุมเครือ (โครงการ "ใหญ่" คืออะไร "มีประสิทธิภาพ / ประสิทธิผลมากกว่าอะไร")
Aaronaught

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

คำตอบ:


64

ลืมการเข้ารหัสและตั้งค่าสภาพแวดล้อมการพัฒนาสักครู่ หากคุณต้องการเริ่มดำเนินการในโครงการขนาดใหญ่สิ่งแรกที่คุณต้องทำคือจัดการจุดประสงค์และขอบเขตของโครงการ

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

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

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


+1 สำหรับทุกสิ่งที่คุณพูด อ่านหนังสือเล่มนี้ด้วย
treecoder

+1 - ไม่จำเป็นสำหรับฉันที่จะเพิ่มอะไรเลย
ล่อลวง

นี่คือคำตอบที่ดี นอกจากนี้หากคุณมีซอฟต์แวร์การจัดการโครงการบางประเภทให้เริ่มต้นกับซอฟต์แวร์ก่อน มีบางอย่างที่ฟรีมีข้อ จำกัด แน่นอน ฉันใช้ CampFire ( campfirenow.com/signupแล้วมองหา "เรายังเสนอแผนฟรี: 4 นักแชทที่มีพื้นที่เก็บข้อมูล 10 MB") ก่อนหน้านี้
m4tt1mus

1
ฉันอยากจะแนะนำ mindmaps มากกว่า word processor (ไม่มีประสบการณ์ + blank page = project จะไม่ถอด)
MaR

1
โปรแกรมประมวลผลคำ? ใช้ปากกาและกระดาษ :)
rightfold

41

ฉันคิดว่าไลนัสทำให้ดีที่สุด

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


12

สิ่งแรกที่ฉันควรทำเพื่อให้บรรลุเป้าหมายของฉันในวิธีที่มีประสิทธิภาพและประสิทธิผลยิ่งขึ้นคืออะไร

ฉันคิดว่าคุณเคยทำโครงการมาก่อนและคุณอยู่ในวิทยาลัย / มหาวิทยาลัยที่ไม่สอนการควบคุมเวอร์ชัน / แหล่งที่มา หากคุณต้องการที่จะเห็นโครงการบางอย่างที่คุณสามารถไปที่เปิดที่เก็บแหล่งที่มาเช่นGithub (ใช้ Git) Bitbucket (ใช้ Mercurial) Google Code (ใช้ Mercurial, Git และการโค่นล้ม) CodePlex (Mercurial และการโค่นล้ม / TFS) SourceForge (หลายคน) ฯลฯ และดูที่รหัสฐาน สิ่งที่พวกเขามีเหมือนกันคือพวกเขากำลังใช้ซอฟต์แวร์ควบคุมแหล่งที่มา

มีข้อมูลมากมายเกี่ยวกับวิธีการใช้ดังนั้นฉันขอแนะนำให้คุณเรียนรู้วิธีใช้สิ่งนี้เพราะนี่เป็นวิธีปฏิบัติในอุตสาหกรรมมาตรฐาน นี่คือคำแนะนำแบบเห็นภาพบางส่วนเพื่อให้คุณไป:

คุณรู้ไหมว่าเมื่อมีโครงการหนึ่งเกิดขึ้นในใจฉันไม่รู้ว่าควรทำอะไร หลายครั้งที่ฉันไม่สนใจมัน

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


9
+1 สำหรับการเริ่มต้นเล็ก ๆ นั่นคือวิธีการพื้นฐานสำหรับโครงการขนาดใหญ่: แบ่งเป็นชิ้นเล็ก ๆ และจัดการกับพวกเขาทีละครั้ง
Joel C

5

เป็นเรื่องปกติอย่างสมบูรณ์ที่จะได้รับผลกระทบจาก "กระดาษเปล่า"

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

คุณต้องเริ่มทำสิ่งที่เกี่ยวข้องกับโครงการเพื่อที่คุณจะรู้สึกว่ามันเกิดขึ้น

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

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

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

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

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

แต่อย่าเพิ่งเริ่มจนกว่าคุณจะรู้สึกว่ามันเป็นเวลาที่เหมาะสม!


4

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

ทำลายมันลง; ถามตัวเองว่า'ฉันต้องการชิ้นส่วนขนาดเล็กเพื่อทำสิ่งนี้'

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


2

สร้างโครงร่าง

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

กำหนดเวลาเดินของคุณ

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

ค้นหาเครื่องมือสำหรับงาน

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

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

ขอความช่วยเหลือ

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

เริ่มต้น!

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


1

อาจจะเต็มไปด้วยความคิดโบราณ แต่ ... ฉันจะส่ง

เพื่อให้สามารถจัดการกับโครงการขนาดใหญ่ที่คุณต้องการเป็นหลัก: ประสบการณ์ ประสบการณ์มอบทุกสิ่งที่คุณต้องการ:

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

ดังนั้นคุณสามารถทำสองสิ่ง:

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

ฉันหวังว่าจะช่วย


1

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

ขั้นตอนแรกในการจัดการ (ด้วย "มีบทบาทนำ") โครงการขนาดใหญ่คือการเข้าร่วมโครงการใหญ่โดยไม่ต้องมีบทบาทนำ ขั้นตอนที่สองคือการเข้าถึงระดับบทบาทนำในขณะที่ได้รับคำแนะนำจากใครบางคนที่มีประสบการณ์

อีกทางเลือกหนึ่งคือการเพิ่มขนาดของโครงการอย่างต่อเนื่องและเรียนรู้จากประสบการณ์ของคุณ ...


1

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

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


1

แยกสิ่งใหญ่ออกเป็นสิ่งเล็ก ๆ

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


1

ฉันคิดว่าบางสิ่งที่คำตอบจำนวนมากไม่ได้สัมผัสคือการทำสิ่งที่จับต้องได้และบังคับให้คุณทำมันให้สำเร็จ

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

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


1

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

ในฐานะ [X]
ฉันต้องการ [Y]
ดังนั้น [Z]

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

การพัฒนาพฤติกรรมขับเคลื่อนใช้วิธีการนี้และเว็บไซต์ที่ลิงค์มีหลายตัวอย่างของการใช้รูปแบบนี้เพื่อแสดงเรื่องราวของผู้ใช้

ฉันคิดว่ามันจะเป็นวิธีที่เร็วและเป็นระเบียบที่สุดในการรับจากแนวคิดไปยังโค้ด


1

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

ฉันเพิ่งจะเริ่มเขียนวลีง่ายๆที่นึกถึงเช่นเมนูหลักรายงานฐานข้อมูลการรับรองความถูกต้อง ฯลฯ ฉันจะติดสิ่งเหล่านี้บนกระดานไวท์บอร์ดและจ้องมองและรับความคิดเพิ่มเติมเช่นตัวอย่างว่าเมนูหลักควรมีลักษณะอย่างไร :

ไฟล์เปิด, บันทึกไฟล์, บันทึกไฟล์เป็น, พิมพ์ ฯลฯ และติดเหล่านี้บนกระดานสีขาวภายใต้เมนูหลัก

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

Sticky สีเหลืองนั้นยอดเยี่ยมพวกมันสามารถเคลื่อนที่ได้อย่างรวดเร็ว

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

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


0

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

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

สิ่งต่อไปที่ผมทำคือการสร้างโฟลเดอร์และวางไว้ภายใต้การควบคุมแหล่งที่มา นี่เป็นเรื่องง่ายเหมือนgit init .ทุกวันนี้

ต่อไปผมจะได้รับ "Hello World" การทำงาน สิ่งนี้ช่วยให้ฉันรู้ว่าสภาพแวดล้อมการพัฒนาของฉันได้รับการตั้งค่าอย่างเหมาะสม

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

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

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

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


0

หากสิ่งที่คุณมีคือ "คิดใหญ่" คุณจะต้องเป็นจำนวนมากของสิ่ง (ที่อธิบายไว้อย่างดีในคำตอบอื่น ๆ ) และโดยเฉพาะอย่างยิ่งเหล่านี้ 2: เวลาและแรงจูงใจ

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

ดังนั้นตามที่ได้กล่าวไปแล้วให้ทำตามขั้นตอนเล็ก ๆนั่นคือกุญแจสำคัญ

แต่นี่ไม่ใช่ทั้งหมดคุณต้องทำตามขั้นตอนเล็ก ๆ และให้รางวัล ! นั่นคือขั้นตอนที่จะทำให้คุณมีค่ามากที่สุดและแสดงให้เห็นถึงแนวคิดที่สำคัญของความคิดใหญ่ของคุณ

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


0

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

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

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

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


0

ความพยายามของรหัสโดยทั่วไปจะอยู่ที่ประมาณ 20% (+ -10%) ของงบประมาณโครงการ การมุ่งเน้นไปที่การแก้ไขโค้ดนั้นไม่มีจุดหมายนั้นมี 80% ของความพยายามที่คุณไม่ได้กล่าวถึงดังนั้นการได้รับการจัดการโค้ดที่สมบูรณ์แบบยังคงทำให้คุณทำงานเพียง 20 ครั้งเท่านั้น

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

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

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

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

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


0
  1. ความสำเร็จมีลักษณะอย่างไร
  2. สิ่งที่ไม่ทราบในโครงการคืออะไร?
  3. สิ่งที่เป็นที่รู้จักในโครงการ?
  4. คุณสามารถทำอะไรเพื่อกำจัด / ค้นหาสิ่งแปลกปลอมเพื่อแปลงให้เป็นที่รู้จัก?
  5. คุณจะทำอะไรได้บ้างเพื่อรวบรวมคนที่รู้จักเพื่อให้บรรลุความสำเร็จ
  6. ขั้นตอนที่เป็นรูปธรรมต่อไปคืออะไรที่จะดำเนินโครงการต่อไป

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


0

คำตอบทั้งหมดที่นี่ดีและทั้งหมด แต่ในความจริงแล้วมันไม่สำคัญว่าคุณจะควบคุมเวอร์ชัน, gitting, flow-chart และ mark-ups ได้อย่างไรทั้งหมดที่สำคัญคือคุณมีแอปพลิเคชั่นที่ใช้งานได้ ถูกกำหนดให้เป็นหนึ่งในการแก้ปัญหาซึ่งเป็นสิ่งที่เข้าใจได้สิ่งอื่น ๆ ทั้งหมดนั้นค่อนข้างไม่เกี่ยวข้องเลย

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


-1

รายการสิ่งที่ต้องทำเมื่อเริ่มต้นโครงการใหม่:

  1. สร้างไดเรกทอรีใหม่
  2. สร้าง makefile โดยคัดลอกเทมเพลต makefile ที่มีอยู่
  3. สร้างไฟล์ส่วนหัวและไฟล์การนำไปใช้งาน
  4. ตรวจสอบให้แน่ใจว่ารวบรวม
  5. เริ่มใช้การควบคุมเวอร์ชัน
  6. ตัดสินใจแบบแผนการตั้งชื่อสำหรับคลาสฟังก์ชันสมาชิกข้อมูลตัวแปร
  7. เขียนชั้นแรกของคุณ
  8. ตรวจสอบให้แน่ใจว่าคลาสของคุณมีความเป็นอิสระและฟังก์ชั่นสมาชิกทุกคนเป็นอิสระจากฟังก์ชั่นสมาชิกอื่น ๆ
  9. สร้างวัตถุต่าง ๆ โดยการสร้างฟังก์ชั่นเช่น main ()
  10. ทำซ้ำขั้นตอนที่ 7-10 จนกว่าโปรแกรมของคุณจะพร้อม
  11. รวบรวมมัน
  12. จัดส่งไปยังผู้ใช้ปลายทาง

นั่นเป็นเรื่องเกี่ยวกับการเขียนโค้ด แต่มันไม่ได้เป็นวิศวกรรมและไม่ทำงานเกินขนาดที่กำหนด คุณต้องทำอะไรบางอย่างที่เริ่มต้นจากเรื่องราวของผู้ใช้หรือข้อกำหนดหรือข้อกำหนดบางประการ สิ่งเหล่านี้จะช่วยให้คุณเลือกเทคโนโลยีการนำไปใช้ของคุณสำหรับการเริ่มต้น 'เขียนบางเรื่อง' 'เรียงลำดับเรื่องราวของคุณ' เป็นสองขั้นตอนแรกการควบคุมเวอร์ชันมาก่อนโค้ดใด ๆ และเรื่องแรกคือ 'เทคโนโลยีการดำเนินการวิจัย' เสมอ (ซึ่งมากกว่า 'เลือกภาษา')
Andrew McGregor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.