ถ้าพูดถึงการพัฒนาซอฟต์แวร์ จะว่าไปแล้วมันก็ดูเป็นสิ่งนึงที่ติดลูป วนไปวนมาในชีวิตชาวเดฟเหมือนกันนะ โดยเฉพาะอย่างยิ่งกับองค์กรที่ใช้ 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
「borntodevวันละคำ」的推薦目錄:
- 關於borntodevวันละคำ 在 BorntoDev Facebook 的精選貼文
- 關於borntodevวันละคำ 在 BorntoDev Facebook 的最佳貼文
- 關於borntodevวันละคำ 在 BorntoDev - Home - Facebook 的評價
- 關於borntodevวันละคำ 在 EP.02 What's New : 20 คำศัพท์ที่คุณควรรู้ก่อนเริ่มสร้าง Web ... 的評價
- 關於borntodevวันละคำ 在 สอนคอมให้พูดได้ครั้งแรก โดนคอมด่าซะงั้น ! - YouTube 的評價
- 關於borntodevวันละคำ 在 สร้างแอปเล่นๆ ลง Play Store .. จะออกมาเป็นยังไง !? - Borntodev X ... 的評價
borntodevวันละคำ 在 BorntoDev Facebook 的最佳貼文
แม้ชีวิตคนเราจะไม่เหมือนกัน แต่แอดก็เชื่อว่า ร้อยละ 95 ของโปรแกรมเมอร์ (หรือใครที่เคยเขียนโปรแกรม) ล้วนผ่านจุด ๆ นึงมาเหมือนกัน นั่นก็คือ จุดที่เราหัดเขียนโปรแกรมครั้งแรก เพื่อแสดงข้อความ “Hello World” ในภาษา C, Java, Python หรือภาษาใด ๆ ก็ตาม 💻
.
แล้วทำไมต้องเป็นคำว่า “Hello World” ด้วยล่ะ มีที่มาที่ไปเป็นยังไง? 🤔 วันนี้แอดจะมาเล่าให้ทุกคนอ่านเอง ถ้าพร้อมแล้วก็จะเริ่มละนะ ! 📢 🔥
.
.
🔸 ผู้ให้กำเนิดคำว่า “Hello World” ในวงการคอมพิวเตอร์คือใคร?
.
เชื่อกันว่า จุดเริ่มต้นของ Hello World ในแวดวงคอมพิวเตอร์อยู่ในยุค 70 มาจากนักคอมพิวเตอร์ชื่อ Brian Kernighan ผู้ร่วมแต่งหนังสือโปรแกรมมิ่งอันโด่งดังเรื่อง C Programming Language และในหนังสือดังเล่มนี้ก็กล่าวถึง Hello World เช่นกัน 📖
.
👉 โดยคุณ Brian Kernighan พูดถึง Hello World ครั้งแรกในหนังสือ “A Tutorial Introduction to the Programming Language B” หนังสือเล่มก่อนหน้าของเขาเองที่ถูกตีพิมพ์เมื่อปี 1973 เพื่ออธิบายวิธีการเขียนโปรแกรมแสดงข้อความ
.
main( ) {
extrn a, b, c;
putchar(a); putchar(b); putchar(c); putchar(’!*n’);
}
a ’hell’;
b ’o, w’;
c ’orld’;
.
⬆️ และนี่ก็คือหน้าตาของโค้ดแสดงข้อความ Hello World ในหนังสือ A Tutorial Introduction to the Programming Language B
.
หลังจากนั้นก็ปรากฏ Hello World ในหนังสือ C Programming Language รวมถึงคู่มือการเขียนโปรแกรมภาษาต่าง ๆ มาจนถึงปัจจุบัน ราวกับเป็นประเพณีที่สืบต่อกันมาของชาวโปรแกรมเมอร์ 🧑💻
.
.
🔸 แล้วคำว่า Hello World มาจากไหน?
.
เป็นอีกเรื่องที่ไม่ชัดเจนมากนัก คุณ Brian Kernighan เคยให้สัมภาษณ์กับทาง Forbes India ว่าเท่าที่เขาจำได้ เขาเจอการ์ตูนที่พูดถึงลูกเจี๊ยบออกจากไข่ แล้วลูกเจี๊ยบก็พูดว่า Hello World 🐣 จึงได้ไอเดียมาใช้อธิบายการเขียนโปรแกรมนั่นเอง
.
ถ้าย้อนกลับไปสมัยนั้น ผู้คนในวงการคอมพิวเตอร์ รวมถึงคุณ Brian Kernighan เอง คงไม่มีใครคิดว่า Hello World จะกลายมาเป็นวลีดังระดับโลก และเป็นเป้าหมายแรกที่โปรแกรมเมอร์มือใหม่เกือบทุกคนต้องพิชิต 💥 หรือเป็นวลีเด็ดที่โปรแกรมเมอร์มือเก่าต้องโค้ดเป็นพิธี ตอนเริ่มเรียนโปรแกรมมิ่งภาษาใหม่ 🔥
.
👉 ซึ่งนอกจากจะเป็น Tutorial บทแรกของมือใหม่แล้ว ปัจจุบัน Hello World ยังถูกใช้ตอนเริ่มต้นโปรเจกต์ เพื่อเช็กว่าโปรแกรมหรือคอมไพเลอร์ทำงานได้ไหม และใช้เปรียบเทียบ Syntax ของโปรแกรมมิ่งแต่ละภาษาอีกด้วย
.
ส่องโค้ด “Hello World” ฉบับโปรแกรมมิ่งกว่า 30 ภาษาได้ที่ https://www.geeksforgeeks.org/hello-world-in-30-different-languages/
.
.
เป็นยังไงกันบ้างวันนี้ เพื่อน ๆ คิดยังไงคอมเมนต์คุยกันได้น้า 😎 ถ้าใครอินดี้ไม่อยากใช้ Hello World ตอนหัดเขียนโปรแกรมภาษาต่อไป ลอง print คำว่า “borntoDev” ก็ได้นะครับ >< หรือถ้าใครมีคำเจ๋ง ๆ มาเสนอก็บอกกันได้ 😂
.
🔖 ขอบคุณข้อมูลจาก
https://blog.hackerrank.com/the-history-of-hello-world/
https://thongchairoj.medium.com/ที่มาของ-hello-world-ในภาษาคอมพิวเตอร์-bdd45eba8789
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
#BorntoDevวันละคำ #BorntoDev
borntodevวันละคำ 在 EP.02 What's New : 20 คำศัพท์ที่คุณควรรู้ก่อนเริ่มสร้าง Web ... 的推薦與評價
สำหรับใครที่กำลังจะเริ่มต้นสร้าง Web Application ของตัวเองอยู่ ล่ะ ก็ ห้ามพลาดคลิปนี้ !! เพราะ วัน นี้ What's New มี 20 ... ... <看更多>
borntodevวันละคำ 在 สอนคอมให้พูดได้ครั้งแรก โดนคอมด่าซะงั้น ! - YouTube 的推薦與評價
แต่สุดท้าย ไหงโดนด่าซะงั้นน 555 วัน นี้เรามาดูการเขียนภาษาไพธอนกับเรื... ... "เปรม BorntoDev " ผู้ชื่นชอบ และ หลงไหลด้านวิทยาศาสตร์ เทคโนโลยี ... ... <看更多>
borntodevวันละคำ 在 BorntoDev - Home - Facebook 的推薦與評價
ใครที่กำลังมองหาสรุปการใช้งานคำสั่งภาษา Markdown แบบครบจบในภาพเดียว วันนี้ borntoDev เตรียมพร้อมเสิร์ฟให้คุณถึงที่แล้ว ! กับ Markdown Cheat Sheet !! ... <看更多>