ศิลปะแห่งการทิ้ง


เคยทิ้งของไหมครับ?

คำถามนี้ทุกคนจะตอบว่าเคยทั้งนั้น ไม่มีใครไม่เคยทิ้งอะไรสักอย่างในชีวิต อย่างน้อยเราก็ทิ้งขยะทุกวันครับ

แล้วเคยทิ้งของที่ใช้ความพยายามในการสร้างขึ้นมาไหมครับ?

หลายคนอาจตอบว่าเคย หลายคนอาจตอบว่าไม่เคย

สำหรับผมแล้ว ผม "ทิ้ง" เป็นเรื่องปกติในชีวิต และบันทึกนี้ผมจะมาเล่าศิลปะในการทิ้งครับ

เวลาเราจินตนาการภาพศิลปินในสาขาต่างๆ ไม่ว่าจะเป็นวิจิตรศิลป์หรือวรรณศิลป์ เราส่วนใหญ่มักจะนึกภาพศิลปินคนนั้นทำงานอยู่ท่ามกลางข้าวของรกรุงรังซึ่งส่วนใหญ่เป็นขยะทั้งสิ้น

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

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

ศิลปินทุกแขนงเป็นเช่นนี้ครับ การสร้างงานศิลปะนั้น สร้างขึ้นมาบนกองสิ่งที่ทำต่อไม่ได้หรือตัวต้นแบบ (prototypes) โดยกว่าจะได้งานแต่ละชิ้นที่งดงามที่ให้คนอื่นเสพได้นั้น มีชิ้นที่ทำแล้วทิ้งมากมายจนกว่าจะได้พบเจอสิ่งที่ "ลงตัว" ที่สุด

ความ "งาม" แห่งงานศิลป์คือความ "ลงตัว" ครับ มากเกินไปก็ไม่งาม น้อยเกินไปก็ไม่งาม แต่กว่าจะเจอจุด "ลงตัว" ได้นั้น ต้องผ่านการทดลองมากมายครับ

และคำว่า "ลงตัว" ของศิลปะแต่ละแขนงนั้นก็จะแตกต่างกัน การจะเสพความงามได้นั้นจึงต้องอาศัยการซึมซับตลอดชีวิตครับ

เรื่องเหล่านี้คนที่ทำงานศิลปะจะต้องเรียนรู้ด้วยใจครับ และเป็น requirement แรกสุดของการฝึกฝนที่จะทำงานศิลปะ

จากงานศิลปะ คราวนี้เรามามองงานวิศวกรรมกันบ้าง

ใครนึกภาพวิศวกรยืนอยู่ท่ามกลางซากตึกปรักหักพังบ้างยกมือขึ้น

นึกไม่ออกใช่ไหมครับ แต่ผมนึกออก เป็นวิศวกรที่กำลังจะเข้าคุก เพราะสร้างตึกแล้วพังครับ

ในเจตคติ (mind set) แบบวิศวกรนั้น สร้างแล้วแก้ สร้างแล้วทิ้ง สร้างแล้วต้องสร้างใหม่ ถือว่าเป็นความผิดพลาดอย่างมหันต์

เจตคติแบบศิลปินและวิศวกรนั้น ต่างกันอย่างกับฟ้ากับดินครับ หากวิศวกรใช้เจตคติแบบศิลปินในการทำงานนั้น แย่แน่ๆ และหากศิลปินใช้เจตคติแบบวิศวกรในการทำงาน ก็ย่อมไม่ได้สร้างงานที่งามแท้จริงขึ้นได้

เรื่องเหล่านี้ไม่มีปัญหาครับ เพราะโลกของวิศวกรและศิลปินนั้นเป็นคนละโลกอยู่แล้ว

แต่ประเด็นของเจตคติที่ต่างกันนั้นมากลายเป็นปัญหาเมื่อมาเจอกันที่สาขาวิชาที่เรียกว่า "วิศวกรรมซอฟต์แวร์" (Software Engineering)

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

เมื่อผมมาเรียนรู้การสร้างซอฟต์แวร์ ผมก็มาเรียนรู้นอกระบบในประเทศไทยอีก เมื่อผมไปเรียนรู้ในระบบที่ต่างประเทศ สิ่งที่เรียกว่า "นอกระบบ" นั้นคือสิ่งที่ได้รับการส่งเสริม

ผมจึงสร้างซอฟต์แวร์อย่างการสร้างงานศิลปะมาตลอดชีวิต ผมไม่เคยพยายามเรียกตัวเองว่า "วิศวกรซอฟต์แวร์" ถ้าไม่จำเป็น

ผมชื่นชมแนวความคิดแบบ Agile Software Engineering เพราะเห็นว่าเป็นแนวคิดที่เริ่มเข้าถึง "ศิลปะ" ของการพัฒนาซอฟต์แวร์แล้ว และผมชื่นชอบ User-Centered Software Development เพราะเป็นแนวคิดที่เริ่มกำหนดให้เห็นถึงความ "งาม" ของงานศิลปะแขนงนี้แล้ว

การเขียนซอฟต์แวร์คือการเขียนกลอน nothing more, nothing less

ความงามของซอฟต์แวร์เบ่งบานที่ผู้ใช้ nothing more, nothing less

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

ผมทิ้งโปรแกรมที่เขียนมาหลายหมื่นบรรทัดเพื่อเริ่มต้นใหม่อย่างเป็นเรื่องปกติ เหมือนนักเขียนสักคนขยำเรื่องสั้นที่เขาเขียนทิ้งหลังจากอ่านทวนหลายต่อหลายครั้งแล้วพบว่า "มันไม่ใช่"

ผมไม่ได้บอกว่าผมคิดถูกหรือคิดผิด แต่นี่คือหนทางที่ผมเรียนรู้ และยังเรียนรู้ต่อไปครับ

สำหรับนักพัฒนาซอฟต์แวร์แล้ว เมื่อใช้เจตคติอย่างศิลปินในการสร้างซอฟต์แวร์นั้น ต้องพร้อมที่จะทิ้งซอฟต์แวร์ที่ตนเองทำได้ทุกเมื่อ

แต่จะทิ้งตอนไหนล่ะ

จะทิ้งตอนไหนนี่ละครับคือ "ศิลปะแห่งการทิ้ง"

ศิลปะแห่งการทิ้งคือ ต้องทิ้งให้เร็วที่สุด ทันทีที่พบว่าต้องทิ้งแล้ว

ทิ้งเหมือนศิลปินทิ้งครับ คือ 80% ทิ้ง 20% ใช้ได้จริง

เมื่อจะทิ้งเยอะขนาดนี้ ก็ต้องทิ้งได้เร็ว

เหมือนการเดินหลงทางครับ ไม่แปลกที่จะเดินหลงทาง หากทางที่เดินมีความซับซ้อน (complexity) สูง แต่อย่าหลงทางไกล เพราะเราจะเสียดายหนทางที่เราอุตส่าห์เดินมา แม้เราจะรู้ว่าไม่สามารถไปถึงจุดหมายที่เราต้องการได้ก็ตาม

ดังนั้นนักพัฒนาซอฟต์แวร์ต้อง "รู้ตัว" อยู่ตลอดเวลา (อาจใช้คำว่า "สติ") ในการเขียนโปรแกรม

โปรแกรมเมอร์ไม่ใช่มีหน้าที่ทำงาน routines ตาม descriptions ที่ส่งมาจากนักวิเคราะห์ระบบโดยไม่มีคำถาม แต่ต้องคิดอย่างเป็นส่วนหนึ่งของระบบในการพัฒนาตลอดเวลาครับ

นักวิเคราะห์ก็เช่นกัน ต้องพร้อมทิ้งงานที่ตัวเองคิดได้อย่างเร็วที่สุดเมื่อพบว่า "It's a no-go!"

ผมจึงเห็นว่าแนวความคิดแบบ Iterative Software Development นั้นดีและเป็นธรรมชาติเหมาะกับงานพัฒนาซอฟต์แวร์มาก

แนวคิดการพัฒนาแบบ Prototype-Based Software Development ก็เป็นสิ่งที่ควรทำ การเริ่มต้นตั้งแต่ Low Fidelity Prototype แล้วค้นหา "ความงาม" ไปถึง High Fidelity Prototype จนกว่าจะได้ที่จึงส่งให้โปรแกรมเมอร์ทำจริงนั้นเป็นสิ่งที่ดี

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

ผมยืนยันอีกครั้ง "งานพัฒนาซอฟต์แวร์นั้นเป็นงานศิลปะ ต้องจับด้วยใจศิลปะ" ครับ

 

หมายเลขบันทึก: 169676เขียนเมื่อ 8 มีนาคม 2008 10:04 น. ()แก้ไขเมื่อ 26 พฤษภาคม 2012 18:00 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (7)
  • เขียนด้วยใจ
  • ยอมรับการเปลี่ยนแปลง  อิอิ

Sasinanda

แล้วงานของอาจารย์ไปจด ความเป็นเจ้าของลิขสิทธิ์ไว้หรือเปล่าคะ

ในด้านสิทธิบัตรยาให้.การคุ้มครองลิขสิทธิ์ยาวนานถึง 50 ปี และการคุ้มครองสิทธิบัตรยาวนานถึง 20 ปี ทำให้ราคายาแพง

ไม่ทราบว่า เรื่องซอฟแวร์นี้เป็นอย่างไร ไม่ทราบเหมือนกันค่ะ

ทราบแต่ว่า นายบิล เกตส์เป็น เจ้าของลิขสิทธิ์และสิทธิบัตรรายใหญ่ที่สุดของโลก แต่ตอนนี้ ความรวยตกลงมาเป็นอันดับ 3 แล้วค่ะ

เรียนท่าน อาจารย์ ดร.ธวัชชัย ศิลป การทิ้ง เคล็ดวิชา คงต้อง "ทำใจ" ด้วยครับ

เป็นคำถามที่ให้ข้อคิดดีมากค่ะ

P

ดร. ธวัชชัย ปิยะวัฒน์

 

มีจิตรกรคนหนึ่งเคยเล่าให้ฟัง (ไม่ยืนยันว่าเรื่องจริงหรือไม่) เค้าว่า...

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

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

เจริญพร

การเขียนซอฟต์แวร์ในความคิดผม ใช้ทั้งศาสตร์และศิลป์ บางครั้งก็ใช้มนต์ดำด้วย
โค้ดสวยงามแต่ประสิทธิภาพไม่ดีก็ไม่พอใจ
ประสิทธิภาพดีแต่โค้ดไม่สวยงามก็ไม่พอใจ
บางงานก็ต้องพบกันครึ่งทาง บางงานก็ต้องเอนเอียงไปข้างใดข้างหนึ่ง
มนต์ดำจะเอาไว้ใช้กันตอนพรีเซนท์ครับ (โอม.. มหาอุจ เนตเวิร์คอย่าหลุด บั๊กที่นึกไม่ถึงอย่าได้ออกมา) ^_^;

ผมเองก็ทิ้งเหมือนกันครับ ไม่พอใจก็เขียนใหม่ แต่ทิ้งไว้ใน Harddisk เพราะบางครั้งก็สามารถเอาบางส่วนของงานที่ทิ้ง มาใช้ในงานใหม่ได้

ชอบมากๆครับ จะลองนำไปใช้ดูบ้าง

ขอบคุณครับ

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท