ในฐานะโปรแกรมเมอร์ฉันจะเพิ่มความเร็วในการนำไปใช้และความเข้าใจในกฎเกณฑ์ทางธุรกิจได้อย่างไร


11

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

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

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

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


3
นี่เป็นคำถามที่ดีมากที่จะพูดคุยกับโปรแกรมเมอร์คนอื่น ๆ แต่น่าเสียดายที่มันไม่ใช่หัวข้อสำหรับเว็บไซต์คำถามและคำตอบ: มันกว้างเกินไป (มีหลายสิ่งที่จะพูดเกี่ยวกับเรื่องนี้) และโดยพื้นฐานแล้วความคิดเห็น (คนอื่นจะบอกคุณต่างกัน สิ่งต่าง ๆ สิ่งที่เหมาะกับพวกเขา ... คุณจะเลือกคำตอบที่ "ถูกต้อง" อย่างไร)
Andres F.

คำตอบ:


4

สำหรับฉันมันคือการอ่านและทำความเข้าใจฐานรหัส

ฉันพูดแบบนั้นด้วยเหตุผลสองประการ:

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

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


2
วิธีการของคุณฟังดูเป็นไก่และไข่
Robert Harvey

@RobertHarvey คุณช่วยอธิบายความหมายของคำว่า 'ไก่และไข่' ได้ไหม?
Falgantil

3
@ BjarkeSøgaard: คุณเขียนโค้ดเพื่อทำความเข้าใจกฎเกณฑ์ทางธุรกิจโดยไม่ต้องทำความเข้าใจกฎธุรกิจก่อนเพื่อให้คุณสามารถเขียนรหัสที่เหมาะสม ดูไก่และไข่ด้วยถ้าคุณถามว่าสำนวนนั้นหมายถึงอะไร
Robert Harvey

เพื่อความชัดเจนฉันจะเน้นอ่านรหัสก่อน
Telastyn

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

3

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

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

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

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


ฉันต้องทำงานกับ # 5 ..... ฉันจะพยายามจดจำสิ่งนี้
lunchmeat317

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

3

ฉันอยากจะแนะนำให้อ่านหนังสือที่มีชื่อว่า 5 องค์ประกอบแห่งการคิดที่มีประสิทธิภาพโดย Edward Burger และ Michael P. Starbird มันเกี่ยวข้องกับการทำความเข้าใจแนวคิดใหม่โดยทั่วไป แต่ฉันคิดว่ามันใช้ได้กับสถานการณ์นี้

นี่คือบางจุดที่น่าสนใจจากหนังสือ:

เรียนรู้พื้นฐานเบื้องต้น

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

ให้ข้อผิดพลาดเป็นแนวทางของคุณ

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

สอนหรืออธิบายให้คนอื่นฟัง

เมื่อคุณพยายามสอนให้คนอื่นคุณจะเริ่มเปิดเผยที่ที่คุณมีปัญหาในการทำความเข้าใจ

หวังว่าจะช่วย!


0

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

ฉันเริ่มแก้ปัญหานี้ได้อย่างไร

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

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

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

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

การศึกษา> ข้อสงสัย> คำถาม> คำตอบ> ทำความเข้าใจ (ซ้ำวงจรซ้ำแล้วซ้ำอีก)

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