การรวมเอฟเฟ็กต์ Einstellung [ปิด]


17

Einstellung ผลหมายถึง "จูงใจของบุคคลในการแก้ปัญหาที่กำหนดในลักษณะที่เฉพาะเจาะจงแม้ว่าจะมี 'ดี' หรือวิธีการที่เหมาะสมมากขึ้นในการแก้ปัญหาที่เกิดขึ้น."

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

เพื่อให้ตัวอย่างที่เป็นรูปธรรมมากสองตัวอย่างฉันได้สร้างเว็บแอปพลิเคชั่นเป็นเวลานานนานพอที่จะประเมินเฟรมเวิร์ก Javascript (เช่น jQuery) และเฟรมเวิร์กแอปพลิเคชันเว็บที่ดีกว่า (เช่น ASP.NET MVC) ถ้าฉันมีลูกค้าทำงานที่ฉันอยู่ภายใต้ช่วงเวลาวิกฤติหรือปัญหาเร่งด่วนจากโดเมนปัญหาหรือกฎเกณฑ์ทางธุรกิจฉันมักจะใช้สิ่งที่ฉันรู้เพื่อพยายามแก้ปัญหา สิ่งนี้เกี่ยวข้องกับสิ่งที่น่าเกลียดมาก ๆ

document.getElementById 

หรือการใช้ ASP.NET กับเทมเพลตที่ถูกผูกไว้ควบคุม (DataList / Repeater) มากกว่าการหาวิธีการออกแบบใหม่สิ่งที่มีวิธี ASP.NET MVC

เทคนิคหนึ่งที่ฉันเคยใช้ในอดีตคือการมีโครงการส่วนตัวที่มีอยู่เพียงเพื่อการสำรวจเทคโนโลยีใหม่ ๆ เหล่านี้ แต่มันยากที่จะรักษา มีวิธีการอื่นที่จะแนะนำอีกไหม?


คุณทำงานเดี่ยวหรือไม่?
Apalala

3
ระวังเกี่ยวกับ bandwagon "MVC" มันมีสถานที่ หากวิธีการแก้ปัญหา Webforms ทำงานแล้วปล่อยให้มันเป็น
Darknight

คำตอบ:


4

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

มีสองด้านกับปัญหานี้ - หนึ่งที่ไม่ดีและคนที่เป็นจริงที่ดี

ไม่ดี - เลือกวิธีที่ไม่ถูกต้อง

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

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

แล้วคุณจะทำอย่างไรที่จะไม่ทำผิดพลาดอีกครั้ง? สองสิ่ง:

  1. ค้นหาว่าปัญหาใหม่นี้แตกต่างกันอย่างไร คิดว่าวิธีการใดที่อาจทำงานแตกต่างกันและทำไม
  2. ทำแค็ตตาล็อกปัญหานี้ออกไปและแก้ไขปัญหาใหม่เพิ่มเติม

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

ดี - ประสิทธิภาพ

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

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

นั่นไม่ใช่เรื่องเลวร้าย - ใช้การวิเคราะห์ความเสี่ยงเพื่อเลือกประสิทธิภาพที่มีความแม่นยำมากกว่า 100% มันทำทุกวันและเราทุกคนจะผูกติดอยู่ในสิ่งที่ไม่ได้รับเราทุกที่ถ้าเราไม่ได้ทำ

ดังนั้นเพื่อตอบคำถามของคุณ:

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

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

ฉันรักคำตอบนี้ขอบคุณที่สละเวลา
ดาวิดในดาโกต้า

9

จัดสรรเวลาทำงาน 20% เพื่อพัฒนาทักษะ / ทำสิ่งที่ถูกต้องแทนการอดอาหาร มิฉะนั้นคุณจะค่อยๆเริ่มล้มลง นี่อาจหมายความว่าคุณจะได้งานทำน้อยลงในระยะสั้น แต่ในระยะยาวการลงทุนจะจ่ายออก

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


2
หากคุณมีเวลาให้เพิ่ม 20% ฉันไม่ได้เป็นคนที่มีประสบการณ์ แต่ฉันได้คิดเรื่องนี้แล้ว: การทำมันถูกต้องจะได้ผลตอบแทนในที่สุด ยิ่งคุณมีความรู้เกี่ยวกับการทำสิ่งใดถูกต้องมากเท่าไรคุณก็ยิ่งทำเร็วขึ้นและในที่สุด (นั่นคือสิ่งที่ฉันหวังไว้ P) ทั้งสองจะรวมเข้าด้วยกันและคุณจะสามารถทำทุกอย่างได้อย่างถูกต้องและ รวดเร็ว
stijn

btw เกิดอะไรขึ้นกับฉันบ่อยกว่าไม่: เริ่มต้นบางสิ่งบางอย่างรู้ว่ามันไม่ถูกต้องแล้ว 2 วันต่อมาก็เสียเวลาจำนวนบ้าเพราะสิ่งที่ฉันรู้ว่าผิดในตอนแรกต้อง refactoring เพื่อให้ถูกต้องหลังจาก ทั้งหมด
stijn

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

5

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

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


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

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

3

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

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

ถ้าฉันมีลูกค้าทำงานที่ฉันอยู่ภายใต้ช่วงเวลาวิกฤติหรือปัญหาเร่งด่วนจากโดเมนปัญหาหรือกฎเกณฑ์ทางธุรกิจฉันมักจะใช้สิ่งที่ฉันรู้เพื่อพยายามแก้ปัญหา

ดี. คุณมุ่งเน้นไปที่ความต้องการของลูกค้ามากกว่าเป้าหมายของคุณเอง ทางที่จะไป.

สิ่งนี้เกี่ยวข้องกับสิ่งที่น่าเกลียดมาก ๆ

document.getElementById

หรือการใช้ ASP.NET กับเทมเพลตที่ถูกผูกไว้ควบคุม (DataList / Repeater) มากกว่าการหาวิธีการออกแบบใหม่สิ่งที่มีวิธี ASP.NET MVC

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

เทคนิคหนึ่งที่ฉันเคยใช้ในอดีตคือการมีโครงการส่วนตัวที่มีอยู่เพียงเพื่อการสำรวจเทคโนโลยีใหม่ ๆ เหล่านี้ แต่มันยากที่จะรักษา มีวิธีการอื่นที่จะแนะนำอีกไหม?

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

พยายามแล้วจริง! = แย่ "Einstellung Effect" ถูกนำออกไปเล็กน้อยจากบริบทที่นี่ การทดสอบหมายถึงคนที่เพิ่มประสิทธิภาพ "เปิดขวด" วิธีการ "เปิดขวด" ของผู้คนมี จำกัด และไม่ได้ปรับปรุงเมื่อเวลาผ่านไป (ไม่รวมสิ่งของ Sci-Fi) ในซอฟต์แวร์วิธีที่ดีที่สุดในการ "บรรลุภารกิจ X" จะเปลี่ยนไปตามกาลเวลา


2

สิ่งที่ช่วยให้คิดนอกกรอบคือการฝึกปฏิบัติจริง Edward De Bonoได้เขียนหนังสือหลายเล่มเกี่ยวกับการคิดนอกกรอบและวิชาที่เกี่ยวข้อง

แต่ ณ จุดตัดสินใจใดก็ตามสิ่งที่สำคัญที่สุดคือการประเมินและยอมรับความเสี่ยง Waltzing with Bearsโดย De Marco และ Lister เป็นหนึ่งในหนังสือที่ดีที่สุดเกี่ยวกับเรื่องนี้เมื่อนำไปใช้กับการพัฒนาซอฟต์แวร์

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


1

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


1

คุณแน่ใจหรือว่าไม่ใช่แค่สิ่งที่คุณจะใส่แทน document.getElementById อย่างแท้จริงเป็นการเสียเวลาไม่ว่าคุณจะอยู่กับมันอย่างไร

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


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

1
ดี$("#id")สั้นกว่า แต่ท้ายที่สุดก็เป็นเพียงนามแฝงที่document.getElementById("id")มีค่าใช้จ่ายอยู่ด้านบน คุณรู้หรือไม่ว่ามันจะช่วยปรับปรุงกระบวนการทำงานของคุณ? หรือคุณเพิ่งถูกบอกว่า jQuery ดีกว่าหลายต่อหลายครั้งที่คุณเชื่อ
aaaaaaaaaaaa

1
@eBusiness - คุณรู้หรือไม่ว่า$("#id")จะในท้ายที่สุดเพียงนามแฝงสำหรับdocument.getElementById("id")? หรือคุณเพิ่งถูกบอกมาหลายครั้งว่าคุณเชื่อหรือไม่ ฉันหวังว่าทุกครั้งที่คุณใช้getElementByIdคุณอย่าลืมจัดการเคสที่ IE และ Opera ส่งคืนองค์ประกอบตามชื่อแทนรวมถึงเคสเมื่อ Blackberry 4.6 ส่งคืนโหนดที่ไม่อยู่ในเอกสารอีกต่อไป
Nick Knowlson

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

1
ฉันรู้ว่าฉันจุดประกายนี้ แต่ฉันคิดว่าเรากำลังย้ายบิตไกลเกินไปใน jQuery กับ JavaScript flamewar
aaaaaaaaaaaa

1

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

การทราบตนเอง

ตระหนักถึงแนวโน้มจุดอ่อนและจุดแข็งของคุณ

การตัดสินใจที่มีสติ

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

เรียนรู้และนำไปใช้

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

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