Pages

วันอังคาร, เมษายน 21, 2558

[Blog] It's not a bug , It's a broken by design


ในการทำ software เรามักจะมีสำนวนขำขำไว้เป็นคำแก้ตัว ไว้บอกคนอื่น
อย่างเช่น "It is not a bug , It is a feature" หรือ คำศัพท์อื่นๆ ที่ยังนึกไม่ออกตอนนี้ #ฮา

แต่ถ้าเรามีสติแล้วมานั่งวิเคราะห์ปัญหาที่เกิดขึ้น 
ว่าจริงๆ แล้วมันเกิดจากอะไร ... เราจะพบว่า
ปัญหาทุกปัญหาเกี่ยวกับ Software Development 
ส่วนใหญ่นั้นก็หลุดมาจากมือ Developer เองทั้งนั้นแหละ 

จะไม่ขอพูดถึงว่า User Requirement เปลี่ยนบ่อยก็กระทบ 
เพราะปัญหาพวกนั้น มี process พวก Agile มาประยุกต์ใช้อยู่แล้ว  
Blog นี้เลยขออุทิศให้เฉพาะ Dev เลยแล้วกัน

Broken by Design คืออะไร ?

ในความเห็นส่วนตัว ขอนิยามว่า "ผิดตั้งแต่คิดจะเริ่มแล้ว" 
เริ่มในที่นี้หมายถึง เริ่มลงมือในการออกแบบ 
โดยเฉพาะอย่างยิ่งกับ ระบบงานที่เป็น Legacy แล้ว การที่จะทำอะไรใหม่ๆ นั้น ควรจะรู้ workflow ที่เป็นไปได้ให้ได้มากที่สุดเสียก่อน เพราะบางทีการออกแบบอะไรใหม่ๆ จะไปกระทบกับสิ่งที่มีอยู่ หรือแม้แต่ Bug ที่เค้าซ่อนๆ ไว้ก็จะโผล่ออกมา
มั่นใจที่จะแก้ != เข้าใจที่จะทำ


สุดท้าย "มักง่าย" กับ "ขี้เกียจ" มันมีความหมายต่างกันนะ 
มักง่าย = ทำส่งๆให้เสร็จเป็นพอ
ขี้เกียจ = ทำครั้งเดียวไม่ต้องมาแก้บ่อยๆ

หลายๆ คนมักเข้าใจความหมาย quote ของ Bill Gate แบบผิดๆ
แล้วไม่ไปอ่านคำอธิบายว่าทำไมเขาถึงพูดแบบนั้น ...

ถ้าแยกแยะคำสองคำนี้ไม่ออก ... 
ก็อย่าไปทำมันทั้งคู่ เป็นทางออกดีที่สุดครับ :)