งานสร้างบ้านกับงานสร้างซอฟต์แวร์ — ความเหมือนในกระบวนการ

Explain How Software Is Developed Using Simple Concept of House Construction

Piyorot
Pure Project Management
2 min readMar 11, 2015

--

มีเพื่อนคนนึงเคยขอให้ผมอธิบายให้ฟังเรื่องกระบวนการสร้างซอฟต์แวร์ เพื่อนคนนี้ไม่ได้มีพื้นฐานเรื่องพวกนี้มาก่อน ผมจึงอธิบายให้เค้าฟังด้วยการเปรียบเทียบกับการสร้างบ้านแบบนี้

Requirement

เริ่มต้นจากลูกค้าบอกมาว่าอยากได้อะไร … บ้านเดี่ยวสองชั้น สามห้องน้ำ สามห้องน้ำ มีห้องรับแขก ห้องครัว ห้องใต้บันได ห้องใต้หลังคา โรงจอดรด น้ำพุหน้าบ้าน

ซอฟต์แวร์ก็เหมือนกัน … อยากได้ระบบ Membership ของร้านค้า มีการจัดการเพิ่มชื่อลูกค้า มีระบบเก็บสะสมแต้ม มีระบบส่งโปรโมชั่น มีระบบตรวจสอบและเก็บประวัติการซื้อของลูกค้า มีระบบรายงานหลายๆแบบ

Design

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

House Paper Model — Credit: http://www.banidea.com/

นอกจากความสวยงามแค่รูปร่างหน้าตาแล้ว สถาปนิกที่ดีส่วนใหญ่ต้องคิดถึงความสะดวกและเหมาะสมในการใช้งานและอยู่อาศัยของลูกค้าด้วย เช่น ทิศทางการวางตัวของบ้านเพื่อหนีแดดและรับลม การวางตำแหน่งของห้องนอน ปริมาณแสงธรรมชาติที่เข้าถึงตัวบ้าน และอาจจะรวมไปถึงความถูกต้องตามหลักความเชื่ออย่างฮวงจุ้ยด้วย (ว่าไปนั่น)

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

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

Website Wireframe — Credit: http://www.flickr.com/photos/43641156@N02/4802953381/

เห็นแล้วลูกค้าก็คงงงว่ามันคืออะไร ว่าแล้วทีมดีไซเนอร์ก็จะเพิ่มขั้นตอนที่ทำให้เวปไซต์ต้นแบบของเราดูสวยขึ้น (Visual Design) ด้วยการกำหนดว่าธีมจะสีอะไร ฟ้อนท์ขนาดเท่าไร ก่อนเอามาลงโปรแกรมอย่างโฟโต้ชอปเพื่อใส่สีสันและความสมจริงหรือบางคนก็เอารูปพวกนั้นมาต่อๆกันให้คลิ๊กได้เหมือนจริงที่เรียกกันว่า Interactive Prototype ก็ยิ่งจะทำให้ลูกค้าเห็นภาพเวปไซต์ได้ชัดเจนขึ้น (เหมือนที่สถาปนิกนั่งทำโมเดลบ้านจากกระดาษ)

Website Prototype — Credit: http://flatfull.com/

ได้หน้าตาสวยงามออกมาแล้ว ขั้นตอนต่อมาก็คือการออกแบบในเชิงระบบภายในรวมถึงเทคโนโลยีและเทคนิคที่จะต้องใช้ในการสร้างเวปไซต์นี้ขึ้นมา เรียกว่า Architectural and System Design ก็เปรียบได้กับงานของวิศวกรในการออกแบบบ้าน

และเมื่อผ่านการรีวิวและแก้ไขเรียบร้อยแล้ว … ต้นแบบเหล่านี้ก็จะถูกนำไปเข้ากระบวนการสร้างอย่างจริงจัง

Building

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

House Under Construction — Credit: http://blog.jeffreyhannan.com/

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

Website Under Construction — http://www.gbmanagement.ro/under-construction.jpg

ผ่านไปหกเดือนบ้านเสร็จพร้อมอยู่ ผ่านไปหกเดือนซอฟต์แวร์เสร็จพร้อมใช้ (สาธุ)

Testing

ก่อนจะเข้าอยู่ เจ้าของบ้านต้องขอตรวจสอบความเรียบร้อยซะหน่อย ใช่ๆ สร้างบ้านก็มี Testing Phase เหมือนกัน มีเช็คลิสต์ด้วยนะ

User Acceptance Test for House — Credit: http://www.chumchonburi.com/

ซอฟต์แวร์ก็เหมือนกันสร้างเสร็จไม่ได้แปลว่าทำงานถูกต้อง 100% มันก็ต้องมีการตรวจสอบและทดสอบปิดท้าย

Website Checklist — Credit: http://www.boxuk.com/

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

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

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

The Future Has Arrived — It’s Just Not Evenly Distributed Yet, William Gibson

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

--

--

Piyorot
Pure Project Management

A member of Mutrack and Inthentic. I lead, learn, and build with vision, love and care. https://piyorot.com