การเขียนโปรแกรมเป็นงานศิลปะ

ผมคิดว่า งานเขียนโปรแกรมเป็นงานศิลปะ เพราะโปรแกรมเป็นเรื่องของนามธรรม จับต้องไม่ได้ เราจินตนาการในความคิดแล้วสื่อออกมาเป็นภาษาคอมพิวเตอร์ แล้วให้คอมพิวเตอร์ทํางานตามคําสั่งที่ถูกวางไว้
จิตรกรมีสีและพู่กันกับผ้าใบในการสร้างสรรค์งานศิลป์ โปรแกรมเมอร์ก็มีโปรแกรมที่เรียกว่า Text Editor ซึ่งเป็นโปรแกรมที่ใช้สําหรับแก้ไขข้อความ ซึ่งก็เป็นสีขาว ว่างๆ เหมือนผ้าใบ มี Keyboard ที่ใช้ในการพิมพ์คําสั่งคอมพิวเตอร์แทนพู่กัน ส่วนสีที่ใช้สําหรับจิตรกรทางฝั่งโปรแกรมเมอร์จะเรียกว่า API (Application Programming Interface) ในการส่งคําสั่งไปให้คอมพิวเตอร์ประมวลผล
ในการเขียนโปรแกรม ไม่มีกฏตายตัวว่า โปรแกรมเดียวกันจะต้องใช้ API เหมือนกัน ขึ้นอยู่กับโปรแกรมเมอร์ว่าจะเลือกใช้อันใหน หรือออกแบบไว้อย่างไร ใช้เทคนิคในการเขียนอะไรบ้าง
ผลงานศิลป์ที่ออกมานั้นมีได้ตั้งแต่กระดาษที่ถูกขยําทิ้งลงถังขยะ ไปจนถึงงานที่ประเมินค่าไม่ได้ เพราะฉะนั้นงานเขียนโปรแกรมถ้าทําให้มันเสร็จๆ ไปแล้วรับเงินไป ก็ทําได้ ซึ่งก็ทํากันเป็นปกติอยู่แล้ว ไม่ว่าด้วยเหตุผล Requirement ไม่นิ่ง มีผู้มีอํานาจตัดสินใจหลายคนแล้วเกิดการเมืองภายใน หรือแม้กระทั่งการเมืองภายในทีมพัฒนาซอร์ฟแวร์เองก็ตาม อยากถามว่า แล้วมันเกี่ยวกับความงามของงานศิลป์ชิ้นนั้นตรงใหน ผมว่าไม่เกี่ยวกัน หากโปรแกรมเมอร์ยังมีใจที่รักงานศิลป์อยู่ ศิลปะในการเขียนโปรแกรม

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

ส่วนคําถามที่ว่า สวยงามแต่ไม่ทันกําหนดส่ง แล้วจะมีประโยชน์อะไร แค่ทําให้ทันเวลาก็แทบกระอักเลือดแล้ว งานก็เยอะ เวลาส่วนตัวก็ไม่มี ใหนจะครอบครัวอีก แล้วก็นี่ นู่น นั่น สารพัด
ผมก็ขอยกตัวอย่างนี้หล่ะกัน เคยอ่านในเว็บบล็อก Agile66 สรุปคร่าวๆ ว่า
“ปกติเวลาเราเดินไปข้างหน้า โดยการเดินหันหน้าไปทางนั้น เราจะเดินได้เร็ว เพราะเราเดินแบบนี้จนชิน การทํา TDD (Test-Driven Development) ที่เป็นการเขียนโค้ดเพื่อ Test ก่อนที่จะเขียนโค้ดจริงนั้น เมื่อเริ่มหัดทํา มันก็เหมือนกับการแบบเดินถอยหลัง (ไม่ใช่เดินถอยกลับนะ คือเดินไปทิศที่ต้องการแต่หันหน้าไปอีกทาง) ซึ่งเริ่มแรก เราจะเดินช้าแน่นอน มีชนนั่นนี่บ้าง ซึ่งถ้าหากเราชิน เราจะรู้เทคนิคในการเดินยังไงไม่ให้ชน พอเดินจนคล่องแล้ว เราสามารถวิ่งกลับหลังได้โดยไม่ต้องกลัวด้วยซํ้า”

ผมก็คงตอบคําถามด้วยคําถามหล่ะกันว่า

คุณรักในงานศิลป์นี้แค่ใหน?

ถ้าคุณรักในงานนี้จริง ผมว่าคุณต้องลองหัดเดินถอยหลังให้เป็น จนถึงขั้นวิ่งได้แล้วหล่ะ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s