ผมทำงานด้านการออกแบบซอฟต์แวร์มาสักพักแล้วก็เริ่มจับสังเกตตัวเองได้ว่า ผมกำลังทำงานในสองระดับอยู่ … แบบนี้ครับ
1️⃣ ในอุดมคติ — เมื่อผมสามารถคิดและจินตนาการได้กว้างไกลตามความเหมาะสมเพื่อมองหาสิ่งที่ดีที่สุดสำหรับการแก้ปัญหานี้ รูปแบบที่ดีที่สุดสำหรับผู้ใช้ เป้าหมายที่น่าตื่นเต้นที่สุดสำหรับอนาคตของโปรดักท์
ผมสามารถใฝ่ฝันถึงสิ่งเหล่านั้นได้โดยไม่ต้องกังวลเรื่องข้อจำกัดอื่นๆ เช่น เงินทุน ทีมงาน งบประมาณ และสิ่งที่ระบบทำได้อยู่ตอนนี้ (จริงๆก็ต้องกังวลแหละแต่ก็พยายามไม่มองมันให้เป็นปัญหามากเกินไป) และผมก็จะได้ผลงานออกมาชิ้นนึงที่ดูดีอย่างที่อยากให้เป็น เป็นชิ้นงานที่น่าสนใจและถูกใช้ในการกำหนดว่าซอฟต์แวร์จะออกมาในรูปแบบไหน
2️⃣ ในโลกแห่งความเป็นจริงตอนนี้ — เมื่อข้อจำกัดทั้งหมดนั้นกลายเป็นเรื่องซีเรียสที่มองข้ามไม่ได้ เมื่อเริ่มลงมือทำจริงผมก็จะมองเห็นอีกด้านของการออกแบบ ผมจะเริ่มถามตัวเองด้วยคำถามอีกประเภทหนึ่ง … “กับของที่มีตอนนี้ ทำยังไงให้มันออกมาดูดีที่สุด”
เพราะการสร้างมันไม่ได้เสร็จอย่างรวดเร็วและครบถ้วนตามสิ่งที่ออกแบบไว้ เราเริ่มสร้างทีละส่วน งานเริ่มเสร็จมาแบบชิ้นๆ และเมื่อผมเริ่มเห็นเริ่มได้เข้าไปรีวิวโค๊ดแล้วก็จะเห็นความจริงในอีกด้าน … “เอาหละ ที่อยากได้แบบนี้ตอนนี้ยังไม่เสร็จ ไม่เป็นไรทำแบบนี้ไปก่อนแล้วกันสำหรับเวอร์ชั่นนี้”
งานของผมจึงกลายเป็นการจับคู่ความฝันกับความจริงให้ใกล้เคียงกันที่สุด มันเป็นการทำงานด้วยมุมมองที่ว่า “ความสมบูรณ์แบบไม่มีอยู่จริง” เพราะผมรอให้ทุกอย่างเสร็จตามฝันไม่ได้ เพราะทีมงานของผมรอให้ทุกอย่างพร้อมจึงค่อยลงมือทำไม่ได้ และเพราะธุรกิจของผมรอให้โปรดักท์ที่สมบูรณ์แบบถูกพัฒนาออกมาจนแล้วเสร็จไม่ได้
ผมก็ต้องผลักดันเท่าที่จะทำได้ จากอุดมคติมาเป็นโลกแห่งความจริง จากความเกือบสมบูรณ์แบบมาเริ่มต้นที่การทำงานได้อย่างราบรื่นและมีจุดเด่น จากความมีอิสระมาอยู่ในกรอบข้อจำกัด แต่มันเป็นการฝึกฝนที่ดีครับ ให้เราในฐานะคนออกแบบได้เห็นทั้งความเป็นไปได้ในอนาคตและสิ่งที่ต้องเป็นไปตอนนี้
มันเลยกลายมาเป็นแนวทางปฏิบัติของผมไปอย่างไม่ตั้งใจ … การออกแบบสองระดับที่เข้ากันได้ดีกับบริษัทเล็กๆอย่างพวกผม ✌🏼