วิธีการพัฒนาควรกำจัดความเป็นปัจเจกของนักพัฒนาหรือไม่?


9

ฉันอยู่ในภาคการศึกษาสุดท้ายของวิทยาลัยและกำลังเรียนหลักสูตรวิศวกรรมซอฟต์แวร์ ในชั้นเรียนเราเรียนรู้เกี่ยวกับวิธีการพัฒนาซอฟต์แวร์ที่หลากหลาย สิ่งที่เรามุ่งเน้นและใช้ในการพัฒนาโครงการของเราคือวิธีน้ำตก

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

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


20
ไม่ดีนักที่ห้องเรียนของคุณกำลังสอนวิธี Waterfall ซึ่งเป็นตัวอย่างที่ยอมรับได้ของกระบวนการที่ไม่ดีสำหรับการพัฒนาซอฟต์แวร์
whatsisname

6
ฉันว่าคลาสนี้สอนคุณมาก
JeffO

7
ที่จริงแล้วน้ำตกดั้งเดิมนั้นมีความคิดเห็นซ้ำซ้อนกัน มันเป็นคำสอนที่ไม่ถูกต้องของน้ำตกตลอดหลายปีที่ทำลายความมีประโยชน์ของมัน แม้จะมีบางอย่างเช่นการต่อสู้ขั้นตอนที่เรื่องราวผ่านเข้าไปใน Sprint จะเลียนแบบน้ำตกในตัวมันเอง แผนภาพ UML มีประโยชน์สำหรับการออกแบบระดับสูงเท่านั้น ทันทีที่รหัสถูกเขียนเอกสารใด ๆ ที่เขียนก่อนรหัสนั้นจะล้าสมัย นี่คือการตระหนักถึงวิศวกรรม ในที่สุดรหัสจะต้องเป็นเอกสาร
Andrew T Finnell

10
นักพัฒนาซอฟต์แวร์แทบทุกคนเห็นกรณีของความเป็นปัจเจกชนของนักพัฒนาที่ควรถูกแบน (แม้ว่าอาจไม่ใช่วิธีการน้ำตก)
psr

2
@whatsisname ฉันไม่เห็นด้วยอย่างยิ่ง นักพัฒนาทุกคนควรเรียนรู้การพัฒนา Waterfall เพื่อให้เข้าใจและได้รับประสบการณ์เป็นตัวอย่างที่ดีของการพัฒนาซอฟต์แวร์ที่ไม่ดี นอกจากนี้ร้านค้าหลายแห่งยังคงเป็นน้ำตกสำหรับถูกหรือผิดและเป็นสิ่งสำคัญที่ผู้สำเร็จการศึกษาต้องเตรียมพร้อมสำหรับเรื่องนั้น
maple_shaft

คำตอบ:


10

คุณถามผู้สอนว่าทำไมคุณต้องเขียนรายการวิธีการทั้งหมด

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

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


+1 สำหรับการชี้ให้เห็นว่าจำเป็นต้องมีการออกแบบที่แตกต่างกันอย่างไร ข้อดีของการออกแบบชั้นเรียน ขอให้ผู้สอนเป็นความคิดที่ดี
Ethel Evans

1
จำกฎสำหรับการผ่านหลักสูตรวิทยาลัย: ค้นหาสิ่งที่อาจารย์ต้องการและส่งมอบสิ่งนั้น
Christopher Mahan

9

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

หลายคนแย้งว่าโมเดลน้ำตกเป็นแนวคิดที่ไม่ดีในทางปฏิบัติ - เชื่อว่าเป็นไปไม่ได้สำหรับโครงการที่ไม่สำคัญที่จะเสร็จสิ้นวงจรชีวิตของผลิตภัณฑ์ซอฟต์แวร์อย่างสมบูรณ์แบบก่อนที่จะย้ายไปยังขั้นตอนถัดไปและเรียนรู้จากพวกเขา ตัวอย่างเช่นลูกค้าอาจไม่ทราบถึงความต้องการที่แน่นอนก่อนที่จะตรวจสอบต้นแบบการทำงานและแสดงความคิดเห็น พวกเขาอาจเปลี่ยนความต้องการของพวกเขาอย่างต่อเนื่อง ผู้ออกแบบและโปรแกรมเมอร์อาจควบคุมสิ่งนี้ได้เล็กน้อย หากลูกค้าเปลี่ยนข้อกำหนดหลังจากการออกแบบเสร็จสิ้นการออกแบบจะต้องแก้ไขเพื่อรองรับความต้องการใหม่ สิ่งนี้หมายถึงการทำให้ชั่วโมงการทำงานของโมฆะเป็นโมฆะซึ่งหมายถึงค่าใช้จ่ายที่เพิ่มขึ้นโดยเฉพาะอย่างยิ่งหากทรัพยากรจำนวนมากของโครงการได้ถูกลงทุนไปแล้วใน Big Design Up Front

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

คุณพบข้อบกพร่องของน้ำตกใช่ แต่ทุกอย่างมีจุดแข็งและจุดอ่อน


4

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

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

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

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

นี่คือจุดที่ถูกต้องทั้งหมด

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

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

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


1
@pillmuncher ดังนั้นไม่กี่คนที่ได้อ่านมันเป็นเรื่องน่าเศร้า
Thomas Owens

3
สิ่งที่เศร้าที่สุดเกี่ยวกับกระดาษนั่นคือคนส่วนใหญ่ค้นพบน้ำตกผ่านมันในขณะที่มันเป็นกระดาษที่ทำลายการปฏิบัติอย่างทั่วถึง
Joeri Sebrechts

3

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

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

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

ดังนั้น?

ผู้สอนบอกเราผิดโดยขอให้เราทำรายการทุกฟังก์ชั่นหรือไม่?

ไม่มันเป็นข้อกำหนดทั่วไป

และวิธีการออกแบบเหล่านี้ทำให้นักออกแบบของนักออกแบบ (นักพัฒนา) ใช้วิธีการเขียนโค้ดเพื่อให้เข้าใจได้ดีที่สุดหรือไม่?

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

เลขที่คุณเพิ่งจะสะดุดกับความน่าเบื่อ เอาชนะมันและกลับไปทำงาน


1
@FreshDaddy "พวกเขา (ส่วนใหญ่) จะไม่เคยเห็นฟังก์ชั่นส่วนตัว" เท็จ หลังจากที่คุณชนะลอตเตอรีผู้เขียนโปรแกรมคนอื่นจะรับรหัสของคุณและดูฟังก์ชั่นส่วนตัว ด้วย บางภาษา (เช่น Python) หลีกเลี่ยงความเป็นส่วนตัวประเภทนี้
S.Lott

2
@ S.Lott - การแสดงทุกฟังก์ชั่นส่วนตัวไม่ใช่ข้อกำหนดทั่วไปเลย มันเกิดขึ้นอย่าเข้าใจฉันเลย แต่รายการ "ฟังก์ชั่นส่วนตัวทุกส่วนก่อนเขียนโค้ด" นั้นค่อนข้างหายาก มี "tedius ที่จำเป็น" และจากนั้นก็มี "tedius ไร้ค่า" เมื่อพิจารณาว่าโปรแกรมเมอร์กำลังดำเนินธุรกิจเพื่อกำจัด "ความน่าเบื่อไร้ค่า" ลูกค้าในโลกแห่งความเป็นจริงแทบจะไม่เคยขออะไรที่มีราคาแพงและไร้จุดหมายเช่นนี้เว้นแต่จะเป็นรหัสประเภท "ชีวิตหรือความตาย"
Morgan Herlocker

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

1
@S Lott - คติประจำใจของฉันคือหากการพัฒนาซอฟต์แวร์น่าเบื่อคุณกำลังทำผิด เราเป็นโปรแกรมเมอร์ เราสร้างความเบื่อหน่ายโดยอัตโนมัติ เราไม่ทำซ้ำตัวเองในรหัสและไม่มีเหตุผลที่จะทำซ้ำตัวเองในเอกสารประกอบทั้ง
วินไคลน์

1
@ เควิน: คำตอบนี้เป็นถ้อยคำที่บริสุทธิ์ เช่นนี้มันไม่เหมาะสมอย่างสมบูรณ์และฉันตั้งค่าสถานะแล้ว
Michael Borgwardt

1

การเขียนโปรแกรมเป็นศิลปะของการทำงานภายใต้ข้อ จำกัด CPU มีชุดคำสั่งที่ จำกัด IO ถูก จำกัด ด้วยการออกแบบของฮาร์ดแวร์ OS API ถูกสร้างขึ้นเพื่อส่งเสริมพฤติกรรมบางอย่างและ จำกัด ผู้อื่น ภาษาระดับสูงมักได้รับการออกแบบมาเพื่อส่งเสริมสำนวนหนึ่งชุดเหนือภาษาอื่น ...

และวิธีการก็ถูกสร้างขึ้นมาเพื่อ จำกัด

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

คุณจริงๆคิดปรารถนาอาจารย์ของคุณจะอ่านผ่านหน้าไม่มีที่สิ้นสุดของ minutia? จากนั้นทดสอบทฤษฎีนั้น: เลิกโปรแกรมและบันทึกแต่ละอะตอม เมื่อโต๊ะทำงานของเขาหย่อนคล้อยใต้น้ำหนักฉันค่อนข้างจะสงสัยว่าคุณจะพบว่าความปรารถนาที่แท้จริงของเขานั้นค่อนข้างแตกต่างจากที่คุณคาดไว้

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


1

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


1

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

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

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

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


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

@ คริสโตเฟอร์: ปรับคำตอบของฉันให้ดีขอบคุณสำหรับความคิดเห็น :)
แมทธิว

0

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


0

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

ผู้สอน "บอกคุณผิด" หรือไม่?

ฉันคิดอย่างนั้น

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


2
กล้าฉันว่าคุณไม่เคยทำงานให้ บริษัท ที่ทำเงินจากสัญญารัฐบาล (แก้ไข) คุณเคยพูดว่าซอฟต์แวร์เชิงพาณิชย์ .. คำสั่งของฉันไม่มีความหมายในขณะนี้
Andrew T Finnell

@Andrew Finnel: ความจริงมันเจ็บปวดมากในหลาย ๆ ระดับ
Peter Rowell

2
@Andrew - ฉันได้ทำงานกับ DOD2167 แล้ว มันช่างน่ากลัวและไม่ก่อผลเหมือนที่ปฏิบัติกันมาแล้ว ต่อมาฉันทำงานกับ บริษัท อื่นที่กำลังพัฒนาอย่างคล่องตัวสำหรับรัฐบาลด้วยการส่งมอบบ่อยครั้ง ลูกค้ามีความสุขมาก พวกเขามีแอปพลิเคชั่นที่มีประโยชน์ในหกเดือนและได้รับคุณสมบัติใหม่ทุกไตรมาส
วินไคลน์

@ แอนดรูว์ฉันมีประสบการณ์มากกว่า 2 ปีในการทำงานกับ USDD ในฐานะพนักงานของรัฐและในฐานะผู้รับเหมา วิธีการเปรียวจะถูกนำมาใช้ ทีมหนึ่งที่ฉันทำงานคือใช้ Scrum อย่างจริงจังโดยจัดทำเอกสาร "เพียงพอ" ในเวลา " ใช่เอกสาร (แม้แต่เอกสาร "เพียงพอ") นั้นครอบคลุมมากกว่าสถานที่อื่น ๆ อย่างมาก แต่โดยทั่วไปแล้วจะขับเคลื่อนด้วยจำนวนผู้ที่เกี่ยวข้อง (สัญญาสามารถเปลี่ยนมือได้บุคคลอื่น ๆ สามารถพัฒนาระบบอื่น ๆ และอื่น ๆ ) และ / หรือ ความสำคัญของความปลอดภัยหรือชีวิตและความสำคัญของระบบที่กำลังพัฒนา
Thomas Owens

2
@ ดึงมันไม่ใช่แค่รัฐบาล ฉันเคยเห็นข้อมูลจำเพาะ 40 หน้าสำหรับ "ผลิตภัณฑ์"; โดยปกติคุณสามารถเลือกทุกอย่างจากตารางนี้และมอบให้คุณได้ที่มีตัวคั่นท่อโปรด ไม่มีใครที่จะใส่ใจอ่านได้เลย ...
เบ็น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.