ถ้าพูดถึงการพัฒนาซอฟต์แวร์ จะว่าไปแล้วมันก็ดูเป็นสิ่งนึงที่ติดลูป วนไปวนมาในชีวิตชาวเดฟเหมือนกันนะ โดยเฉพาะอย่างยิ่งกับองค์กรที่ใช้ 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
同時也有4部Youtube影片,追蹤數超過37萬的網紅ADBIG,也在其Youtube影片中提到,แจกการ์ดจอฟรี! กดแชร์ให้ด้วย รีวิวการ์ดจอแพงกว่าทอง ออกแบบมาเพื่อการเล่นเกม 4K โดยเฉพาะ SAPPHIRE NITRO+ AMD Radeon™ RX 6800 ลิงค์ร่วมกิจกรรม https:/...
「software architecture」的推薦目錄:
- 關於software architecture 在 BorntoDev Facebook 的精選貼文
- 關於software architecture 在 軟體開發學習資訊分享 Facebook 的最讚貼文
- 關於software architecture 在 軟體開發學習資訊分享 Facebook 的最佳解答
- 關於software architecture 在 ADBIG Youtube 的最佳貼文
- 關於software architecture 在 ehsan mokhtary Youtube 的最佳解答
- 關於software architecture 在 ehsan mokhtary Youtube 的最佳解答
- 關於software architecture 在 GitHub - PacktPublishing/Software-Architecture-with-Cpp 的評價
- 關於software architecture 在 Software architecture | Taiwan Gold Card 的評價
- 關於software architecture 在 Software Architecture in Practice 的評價
software architecture 在 軟體開發學習資訊分享 Facebook 的最讚貼文
NT530 特價中
課程已於 2021 年 7 月更新
透過學習真實的架構案例研究,成為一個更好的軟體架構師。
https://softnshare.com/software-architecture-case-studies/
software architecture 在 軟體開發學習資訊分享 Facebook 的最佳解答
NT430 特價中
學習如何使用正確的架構設計模式和技術來設計和實現微服務系統
從這 1 小時的課程,你會學到
學習微服務架構
學習如何實現分散式系統的軟體架構模式,在保持一致性的同時並保持可擴展性
學習技術來幫助你設計,開發,部署和監控基於微服務的系統
識別技術挑戰和常見陷阱
https://softnshare.com/microservices-software-architecture-patterns-and-techniques/
software architecture 在 ADBIG Youtube 的最佳貼文
แจกการ์ดจอฟรี! กดแชร์ให้ด้วย
รีวิวการ์ดจอแพงกว่าทอง ออกแบบมาเพื่อการเล่นเกม 4K โดยเฉพาะ
SAPPHIRE NITRO+ AMD Radeon™ RX 6800
ลิงค์ร่วมกิจกรรม https://www.facebook.com/ADBIGGY/posts/3734403126646279
สเปค
GPU: Boost Clock: Up to 2190MHz
Memory: 16GB/256 bit DDR6. 16 Gbps Effective
Stream Processors: 3840
RDNA™ 2 Architecture
Ray Accelerator: 60
16GB GDDR6
ตัวการ์ดกินไฟ 290W
Tri-X Cooling
V-Shape Fin Design
Hybrid Fan
Metal Backplate)
Bios Switch 1 Performacne / Silent / Software
ราคากลาง 23,900 บาท
https://www.ascenti.co.th/product/sapphire-nitrorx-6800/
https://www.sapphiretech.com/en/consumer/nitro-radeon-rx-6800-16g-gddr6
เครื่องทดสอบ
Intel Core i9-10900K
ASrock Z490i PHANTOM GAMING ITX/TB3
SAPPHIRE NITRO+ AMD Radeon™ RX 6800
Corsair Vengeance RGB PRO SL 16GB 3200
WD BLACK SN750 1TB
CORSAIR SF750
CORSAIR H100i RGB PRO XT
Noctua 12x15 x 2
FormD T1 Case
![post-title](https://i.ytimg.com/vi/wG_zFoiZDr4/hqdefault.jpg)
software architecture 在 ehsan mokhtary Youtube 的最佳解答
I just saw this bridge while I was driving in Kuala Lumpur Malaysia.
design this kind of bridge is very fast and simple in Parametric design software such as Grasshopper.
also, I use Revit Rhino Plug-in to have my Final 3D model in BIM Revit File format.
done by: Ehsan
![post-title](https://i.ytimg.com/vi/SWNR5qm8rSk/hqdefault.jpg)
software architecture 在 ehsan mokhtary Youtube 的最佳解答
Cype software is BIM software for Architecture, structure engineers, M&E Engineers and all people related to the buildings industry.
Cype also has a BIM server that allows you to transfer your files through Autodesk Revit, Rhinoceros 3D, Grasshopper, and other 3D BIM software.
you can access your 3D model from Cype Software, browser and even your Cellphone application.
![post-title](https://i.ytimg.com/vi/5olBHeeBbsM/hqdefault.jpg)
software architecture 在 Software architecture | Taiwan Gold Card 的推薦與評價
Job category: Software architecture. Looking for work? You're in the right place. ... uP/DSP system Architecture and digital circuit design. 2. ... <看更多>
software architecture 在 Software Architecture in Practice 的推薦與評價
cHaPtEr 1 What Is Software architecture? 3. 1.1 What Software Architecture Is and What It. Isn't 4. 1.2 Architectural Structures and Views 9. ... <看更多>
software architecture 在 GitHub - PacktPublishing/Software-Architecture-with-Cpp 的推薦與評價
Software architecture refers to the high-level design of complex applications. It is evolving just like the languages we use. Modern C++ allows developers ... ... <看更多>