ถ้าพูดถึงการพัฒนาซอฟต์แวร์ จะว่าไปแล้วมันก็ดูเป็นสิ่งนึงที่ติดลูป วนไปวนมาในชีวิตชาวเดฟเหมือนกันนะ โดยเฉพาะอย่างยิ่งกับองค์กรที่ใช้ Agile และ Scrum ในการทำงาน ที่มีการแบ่งการทำงานเป็นรอบ ๆ (Sprints)
.
เพราะคุณจะต้องเก็บ Requirements ของลูกค้าหรือผู้ใช้งาน แล้วก็นำไป Design และ Process เป็นซอฟต์แวร์ขึ้นมา จากนั้นก็ไปเก็บ Feedback จากลูกค้าหรือผู้ใช้งาน เพื่อนำ Feedback ไปปรับปรุงและพัฒนาซอฟต์แวร์ต่อในรอบถัดไป 🤔
.
👉 ซึ่งในการพัฒนาซอฟต์แวร์จะมีคำอยู่คำนึงที่มักพูดถึงกันบ่อย ๆ นั่นก็คือคำว่า “Technical Debt” หรือแปลเป็นไทยตรง ๆ ว่า “หนี้ทางเทคนิค” นั่นเอง
.
.
🔥 Technical Debt คืออะไร?
.
คำว่า Technical Debt เกิดขึ้นครั้งแรกโดย Ward Cunningham ตอนกำลังทำ Software ด้านการเงินอยู่ (เขาคือ 1 ใน 17 คนที่ได้คิดคำว่า Agile ขึ้นมา) ซึ่งเขาอยากอธิบายปัญหาที่เจออยู่ให้นายจ้างที่ไม่รู้เรื่อง Technical จึงเลือกเปรียบเทียบปัญหาทางเทคนิคกับหนี้ทางการเงิน (Monetary Debt) 💸
.
👉 คำว่า Technical Debt จึงพูดถึงปัญหาต่าง ๆ ด้านเทคนิค 💻 ไม่ว่าจะมาจากการเขียนโค้ดที่ไม่ดี Design ที่ไม่มีคุณภาพหรือไม่ยืดหยุ่น การละเลยปัญหาบางอย่างระหว่างพัฒนา หรือสาเหตุใด ๆ ก็ตามที่สุดท้ายก็ต้องมาตามแก้ทีหลังอยู่ดี
.
.
🔥 Technical Debt เกิดจากอะไรได้บ้าง?
.
เป็นคำถามที่มีคำตอบได้ล้านแปดอย่าง เพราะการพัฒนาซอฟต์แวร์คงหลีกเลี่ยงปัญหาไม่ได้อยู่แล้ว ยิ่งเป็นซอฟต์แวร์ขนาดใหญ่แล้ว ยิ่งใช้เวลามากเท่าไหร่ หรือมีคนร่วมพัฒนาเยอะแค่ไหน ก็อาจทำให้มีปัญหาอีกมากมายที่รอให้เราไปตามแก้อยู่ 🤕
.
👉 และที่สำคัญ Technical Debt ไม่ได้มีแค่ “โค้ด” เท่านั้น ไม่ว่าจะปัญหาจากการออกแบบ การเทสต์ การทำเอกสาร เครื่องมือที่เลือกใช้ในการพัฒนา หรือผู้ร่วมพัฒนาเองก็เป็น Technical Debt ได้เหมือนกัน
.
.
🔥 ตัวอย่าง Technical Debt ที่คุณอาจจะได้เจอ
.
🔹 ใช้ Architecture หรือ Tools ต่าง ๆ ไม่เหมาะกับสิ่งที่พัฒนาอยู่
🔹 รู้ว่าซอฟต์แวร์มีปัญหาตรงไหน แต่ไว้ก่อนจนสุดท้ายไม่ได้แก้
🔹 เวลาที่ให้ไม่สอดคล้องกับจำนวนงานที่ต้องทำ
🔹 ไม่เข้าใจซอฟต์แวร์ที่กำลังทำอยู่
🔹 ลืมทำ Documents หรือทำแบบขอไปที ไม่มีคุณภาพ
🔹 เขียนโค้ดซับซ้อน อ่านทำความเข้าใจและ Maintain ได้ยาก
🔹 คนในทีมมีภาระหนักเกินไป เช่น ทำงานมากกว่า 1 งาน ในเวลาพร้อม ๆ กัน
.
.
🔥 ทำยังไงดี ถ้าไม่อยากมี Technical Debt
.
เอาเข้าจริง ๆ แล้วการพัฒนาซอฟต์แวร์ คงจะหลีกเลี่ยง Technical Debt ได้ยาก แถมพอมีแล้วก็ต้องตามแก้กันอีก ราวกับส่งดอกให้เจ้าหนี้ 😔 แต่ถึงจะเลี่ยงได้ยาก ก็ไม่ได้แปลว่าจะเลี่ยงไม่ได้เลย เรามาดูวิธีลด Technical Debt กันดีกว่า
.
👉 แน่นอนว่า สิ่งที่ช่วยลด Technical Debt ได้ดีที่สุด ก็คือการไม่สร้างมันขึ้นตั้งแต่แรกด้วยวิธีต่าง ๆ เช่น เขียนโค้ดให้ Clean, ใช้ Test-Driven Development (TDD) ในการพัฒนา, ทำ Unit Testing รวมถึงวางแผนการพัฒนาซอฟต์แวร์ให้ดีและเลือกใช้เทคโนโลยีที่เหมาะกับสิ่งที่ทำ
.
🤔 แต่ถ้ามันเกิดขึ้นมาแล้ว จะทำยังไงล่ะ? ข้อแรกเลยคือต้องรู้ก่อนว่า อะไรเป็น Technical Debt ของซอฟต์แวร์ แล้วจึงหาวิธีแก้ไขปรับปรุง โดยจัดลำดับความสำคัญของปัญหาที่เจอ แล้วแก้ไปเรื่อย ๆ เพื่อให้ Technical Debt ลดลง อย่าแค่รู้ว่ามีปัญหาอะไร แล้วก็ไว้ก่อน จนสุดท้ายก็ไม่ได้แก้
.
.
📌 สรุปแล้ว Technical Debt ก็ไม่ได้ต่างจากหนี้ทางการเงินเท่าไหร่ เพราะมีหนี้ก็ต้องมีจ่าย และไม่ได้จ่ายแค่เงินต้น เราต้องเสียดอกเบี้ย และจะเสียมากขึ้นไปอีก ถ้าปล่อยให้หนี้ก้อนนี้อยู่ไปนาน ๆ เหมือนกับ Dev ที่ต้องมาตามแก้ปัญหาต่าง ๆ แถมถ้าทิ้งไว้นานแล้ว หรือเป็นหนี้ก้อนใหญ่ ก็ต้องใช้ทั้งแรง ทั้งเวลา และทั้งเงินในการขจัดปัญหานั้นมากกว่าเดิม
.
เพราะฉะนั้น ถึงเวลาแล้วล่ะ 🙌 ที่จะบอกลา (หรือลด) คำพูดก่อหนี้อย่าง “เดี๋ยวค่อยทำ” หรือ “ทำ ๆ ให้เสร็จไปก่อน” หรือ “ไม่ต้องมี Test หรอก” เพื่อให้เกิดหนี้ทางเทคนิคอย่าง Technical Debt น้อยที่สุดนั่นเอง~
.
.
🔖 ขอบคุณข้อมูลจาก
https://siamchamnankit.co.th/ว่าด้วยเรื่อง-หนี้ทางเทคนิค-technical-debt-ทำไมต้องใส่ใจ-b7a0c296b590
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
#TechnicalDebt #BorntoDevวันละคำ #BorntoDev
同時也有2部Youtube影片,追蹤數超過19萬的網紅Mateusz Urbanowicz,也在其Youtube影片中提到,No voice today, sorry - Kana is thinking next to me. Shhhh. ;) Testing and adjusting some brushes for a new painting style in Procreate. Software: Pr...
software testing tools 在 BorntoDev Facebook 的精選貼文
📌 จากคนธรรมดา ใช้เวลา 9 เดือน เข้าสู่อาชีพสาย Software Engineer แบบ Full time เขาทำได้ยังไง ? วันนี้แอดจะหามาเล่าให้ฟัง !!
.
วันนี้หากใครจบไม่ตรงสาย หรือ อยากจะกระโดด มาลุยงานฝั่งนี้หละก็ บอกเลยว่าบทความนี้สร้างจากเรื่องจริง ของวิศวกรสายเคมี ที่อยากหันมาทำฝั่ง Software
.
🔥 ที่เขาตั้งเป้าไว้เลยว่า จะทำยังไงก็ได้ ให้ได้งาน Software Engineer ภายใน 1 ปี กับเงินเดือนที่เท่าเดิมที่เคยทำมาด้านเคมี หรือ มากกว่าเดิม
.
ซึ่งแผนที่เขาได้วางไว้นั้นเริ่มจากการเข้าเรียนในหลักสูตรพื้นฐานด้าน Computer Science เพื่อเข้าใจ Core Concept
.
และ ต่อมาได้เริ่มทำการเรียน Technology และ Tools หลังจากที่พื้นฐานแน่นหมดแล้ว ซึ่งในจุดนี้เขาก็ได้ทำการเก็บพอร์ตทั้งหมดไว้ด้วย
.
⭐ โดยแอปที่เข้าทำในส่วนนี้จะเป็นลักษณะ Full Stack Web App เลยทีเดียว ซึ่งแอดว่ามันจะทำให้เราเห็นภาพรวมทั้งระบบได้มาก ๆ
.
ต่อมา Step ที่ 3 เขาก็ได้ทำการเรียนรู้เกี่ยวกับการ Refactor การ Clean Code และ Testing ซึ่งเน้นไปที่ Concept แบบ Advance เลย
.
✅ และสุดท้าย Step ที่ 4 และ 5 เขาเลือกที่จะ Contribute Open Source Project เพื่อให้คนได้เห็นผลงาน และ ได้เรียนรู้จากงานคนอื่น เมื่อแน่นแล้วเขาก็พร้อมที่จะสัมภาษณ์งานนั่นเอง
.
ทั้งนี้แอดว่าประวัติเขาน่าสนใจมาก ๆ เพราะได้ระบุไว้ทุกจุดเลยว่า เขาจะทำอะไร แล้วได้อะไรกลับมาบ้าง จุดนี้จะเป็นจุดที่ให้ใครหลายคนเข้ามาดู Guideline สำหรับการเป็นนักพัฒนาโปรแกรมแบบทำตามได้เลย
.
👉 หากใครอยากอ่านฉบับเต็ม ตามแอดมาได้ที่นี่ได้เลยคร้าบบ >> https://www.freecodecamp.org/news/how-i-went-from-newbie-to-software-engineer-in-9-months-while-working-full-time-460bd8485847/?fbclid=IwAR0TmtdrRtBkLmMtUGu13lnzZ1euU8rkJxGyjGAdJtY0LgVPqL2CYvziMgc
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
software testing tools 在 資策會 Facebook 的精選貼文
【Job Description/工作內容】
1.5G core network system designing and developing/5G通訊核心網路(Core Network)產品開發
2.Designed and developed according to 3GPP SPEC/依3GPP SPEC設計、研發
3.Contributes to test strategy and test cases/核網功能測試及系統整合
4.Support Installation, integration and testing of 5G core network system/核網系統架構評估與效能改善
【Software tools/軟體工具】use C/C++, Ubuntu, Gitlab, Linux cmd
【Required Qualifications/應具備程式語言能力】
Must Skills : C/C++
【Education/學歷】
Master/碩士
【Desired Qualifications/其他條件】
1.Having experience in developing virtualization and network related field
2.Having 3GPP R15+ and 5G Core knowledge
software testing tools 在 Mateusz Urbanowicz Youtube 的最讚貼文
No voice today, sorry - Kana is thinking next to me. Shhhh. ;) Testing and adjusting some brushes for a new painting style in Procreate.
Software: Procreate, Artstudio Pro 3 beta, VizRef (reference screen)
Brushes: My own brushes, I'm developing right now. The older version is available on my Gumroad. Check tools on my website https://mateuszurbanowicz.com.
software testing tools 在 AnKGaming Youtube 的最讚貼文
with recording software, ttv page, and streaming tools in background, average 45fps and display card temperature at 65 degree celsius -- Watch live at http://www.twitch.tv/avilun
==============================================
若想觀看及查看更多艾維與卡苗的直播片段
可擊入http://www.twitch.tv/avilun
直播時間:晚上九時四十五分至十一時半/午夜零時至深夜三時
艾維和卡苗一直以來就對直播實況有著濃厚的興趣,直到二零一三年中在一切環境兼備的情況下展開直播生涯。其愛好的遊戲類型有角色扮演、動作冒險、射擊甚至一些小品遊戲都會直播遊玩,他理想不單是玩受人注意的遊戲,而是希望玩一些比較小眾的遊戲並推介這些給更多人認識。直播時常與觀眾聊天交流,希望能與觀眾打成一遍。