คุณเคยกังวลหรือไม่ว่าคุณมีความกังวลกับสิ่งที่สร้างขึ้นมากกว่าสิ่งที่คุณกำลังสร้างจริง ๆ ?


11

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

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

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

  • การออกแบบปฏิสัมพันธ์
  • ประสบการณ์ของผู้ใช้
  • การตลาด

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

ฉันถูกไหม? ฉันควรจะพยายามพัฒนาทักษะเหล่านี้เพิ่มเติมหรือควรปล่อยให้คนที่ทำอาชีพนี้?

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

ไม่มีใครรู้แหล่งข้อมูลที่ดีสำหรับการเรียนรู้ทักษะเหล่านี้จากมุมมองการเขียนโปรแกรมหรือไม่?


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

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

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

1
@ ไม่มีชื่อมันไม่ง่ายแน่นอนว่า "ผลลัพธ์" อาจดูเหมือนว่าและแอปพลิเคชันดังกล่าวใช้งานได้ดีสำหรับ ver 1.0 ด้วยโค้ด ad-hoc บางอย่างที่ถูกแฮ็กด้วยกัน แต่สำหรับ ver 2.0 จำเป็นต้องมีการเปลี่ยนแปลงครั้งใหญ่ จะติดอยู่กับ "ผลลัพธ์" ของความพยายามก่อนหน้านี้ที่จะต้องทำงานอีกครั้ง .. ฉันคิดว่ามันเป็นสถานการณ์ที่การทำงานของแอปพลิเคชันจากมุมมองของผู้ใช้เป็นเพียงส่วนเล็ก ๆ ของภูเขาน้ำแข็งและคุณสามารถ ' ไม่ จำกัด "ผลลัพธ์" เพียงแค่นั้น
programmx10

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

คำตอบ:


5

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

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

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


+1 สำหรับการพูดคุยกับผู้ใช้ - จำเป็นสำหรับการสร้างผลิตภัณฑ์ที่มีประโยชน์
Gary Rowe

5

ฉันจะบอกว่ามันขึ้นอยู่กับว่าคุณทำงานที่ไหนและ บริษัท ประเภทใดที่คุณเห็นว่าตัวเองกำลังจะย้ายไปในอนาคต - ซึ่งเป็นการอภิปรายที่เปิดกว้างจริง ๆ

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

ใน บริษัท ที่ใหญ่กว่าพวกเขามีแนวโน้มที่จะมีคนที่มุ่งเน้นสิ่งเหล่านี้โดยเฉพาะ

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


2
ขอบคุณ - จุดที่น่าสนใจ ฉันมองว่าการตลาดเป็นมากกว่าการขายฉันกำลังคิดถึงบล็อกการพัฒนา SEO บริษัท ในเครือวิธีการรวมเข้าด้วยกัน ฯลฯ
Rob Stevenson-Leggett

2

สำหรับโค้ดทุกบรรทัดที่คุณเขียนคุณจะแนะนำโอกาสในการเกิดข้อผิดพลาด

ดังนั้นการออกแบบที่ดีที่สุดจะลดจำนวนรหัสที่แนะนำ - อาจผ่านหลักการ DRY (อย่าทำซ้ำตัวเอง) อย่างไรก็ตามผู้เริ่มต้นชอบแนวทางYAGNI (คุณไม่ต้องการมัน) ซึ่งนำไปสู่ ​​MVP (ผลิตภัณฑ์ที่มีศักยภาพขั้นต่ำ) ได้เร็วกว่ามาก

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

วัสดุการอ่านบางอย่าง

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


1

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

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


ฉันไม่ได้อยู่ใน บริษัท ใหญ่และเคยทำงานให้กับ บริษัท ออกแบบปฏิสัมพันธ์ในอดีต ฉันพบว่าเพราะบางครั้งฉันก็ขาดความรู้ คุณมีทรัพยากรหรือหนังสือแนะนำบ้างไหม?
Rob Stevenson-Leggett

1

ฉันสามารถเขียนข้อมูลจำเพาะทางเทคนิคที่จะเป่าถุงเท้าของคุณด้วยจำนวนรูปแบบที่ฉันสามารถบีบค่ะ

ข้อความนั้นทำให้ฉันเชื่อว่าคุณต้องทำงานด้านอื่น ๆ ของการพัฒนาซอฟต์แวร์


มีการประชดจำนวนมากในเรื่องนั้น :) อาจเป็นไปไม่ได้ในเรื่องนี้
Rob Stevenson-Leggett

@ Rob ดีใจที่คุณบอกว่าฉันมีไฟกระพริบสีแดงขนาดใหญ่รูปแบบการละเมิดไปทั่วสถานที่
ocodo

1

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

หากคุณไม่ได้รับการท้าทายมากพอในบางพื้นที่ในงานของคุณเริ่มโครงการของคุณเองที่บ้านเพื่อทำสิ่งที่คุณสนใจ หรือมีส่วนร่วมกับโครงการโอเพ่นซอร์ส


1

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

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


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