The Signature เรื่องมันมีอยู่ว่า

วันหนึ่งมีโทรศัพท์เข้ามาหาพี่ตู่

ปลายสาย : ตู่….ตู่… ตู่ (ทำเสียงแต่ echo) พี่…… มีเรื่องจะปรึกษาเล็กน้อย พอดีผู้ว่า ต้องการระบบแบบที่สามารถเซ็นต์ชื่อบน ipad แล้วไปโชว์บนจอได้เลย พอทำได้ไหม?
ตู่ : น่าจะได้นะครับ แต่อาจจะต้องปรึกษากับทางทีมงานนิสนุงก่อน…..
ปลายสาย : โอเช เดี๋ยวพี่ให้พี่หนุ่มคนจัดงานโทรหานะจ๊ะ….
ตู่ : โอเชฮับ

หลังจากนั้น พี่หนุ่ม Managing Director ของ BIC Event Phuket (Event Organizer ชื่อดังเจ้าหนึ่งของภูเก็ต) ได้โทรเข้ามาแจ้ง ความต้องการของซอฟต์แวร์ที่ต้องการให้ทีมเราพัฒนา ซึ่งสรุปความต้องการได้ดังนี้

– ผู้ร่วมงาน 10 ท่าน ต้องสามารถเซ็นชื่อลงบน iPad
– ลายเซ็นที่ทำการเซ็นบน iPad นั้นจะต้องแสดงผลบนจอยักษ์ Projector ของงานได้ทันที และ แสดงผลลายเซ็นของแต่ละท่านไว้บนนั้น 10 ท่าน
– ห้ามผิดพลาดเป็นอันขาด

ซึ่งจากความต้องการด้านบนแล้ว ทางเทคนิค สามารถทำได้ไม่ยาก แต่สิ่งที่มัน “บีบหัวใจ” คือ เรามีเวลาพัฒนาแค่ 1 วัน!!! และ ทดสอบระบบ และ คิวของงานอีก 1 วัน!!!

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

เริ่มแรก คือการวางแผนว่า เราจะพัฒนาซอฟต์แวร์อย่างไรให้ ครบตามความต้องการและพัฒนาเสร็จภายใน 1 วันนั้น

สรุปคือ เราจะพัฒนา iPad Application ไว้สำหรับเซ็นชื่อ และส่งไปยังหน้าจอที่เป็น Web Base Application

ทีมงานร่วมพัฒนาคือ

1. พี่แอล ทำหน้าที่พัฒนา Server side ด้วย Nodejs
2. ผมเอง ทำหน้าที่พัฒนา iPad Application
3. พี่บิ๊ก ออกแบบและพัฒนาหน้าจอแสดงผลด้วย HTML-CSS
4. พี่ตู่ ควบคุมและดูแลการพัฒนาทั้งหมด

ขั้นตอนการพัฒนา (ผมจะเล่าแค่ขั้นตอนคร่าวๆนะครับ เพราะอย่างที่บอกว่า ทางเทคนิคนั้นไม่ได้ยากมากมายอะไร)

tumblr_inline_nar28xF4V01qg3wjr

iPad Application เราตั้งชื่อแอพแบบง่ายๆว่า “PhuketSIGN”
ผมเขียนด้วย Objective-C ใช้ Open Source Library ช่วยให้การพัฒนาคือ  DrawViewซึ่งการทำงานของ iPad Application คือ เมื่อผู้ใช้เซ็นชื่อแล้ว ให้บันทึกลายเซ็นนั้นเป็นภาพ PNG และส่งไปให้กับ Server ตาม ID ของผู้เซ็นแต่ละท่านที่เราได้กำหนดไว้แล้ว ซึ่งบน iPad ผมได้ใส่หน้าสำหรับตั้งค่าว่า จะให้ส่งไปยัง Server ที่เป็น Localhost หรือ บน Heroku Cloud Application Platform สำรองไว้กรณีที่เกิดปัญหาด้าน Network

Server side with NodeJS

การทำงานของ Server application คือ รับรูปจาก iPad Application และแสดงผลบนจอ (เว็บเพจ) แบบ Realtime ใช้ SocketIO ช่วย ซึ่งพี่แอล ถนัดในการเขียนแอพพลิเคชั่นประเภทนี้อยู่แล้ว

tumblr_inline_nar29mZS7r1qg3wjr-2

ซึ่งเราก็พัฒนามันทั้งหมดเสร็จสิ้นภายใน 1 วันตามที่เราได้วางแผนเอาไว้ (เย้!!! พร้อมทำท่าปาดเหงื่อ)

 

ทดสอบในสถานที่จัดงานจริงๆ
สถานที่จัดงานจริงนั้นคือ รีสอร์ทสุดหรู “Angsana Laguna Phuket” ซึ่งเวลาที่เราทดสอบนั้นเป็นเวลา 22.00 น. ซึ่งจริงๆแล้วถ้าควรจะถึงสถานที่จัดงานตั้งแต่ 21.00 น. แต่เนื่องด้วยการสื่อสารผิดพลาดนิดหน่อยกับพี่หนุ่ม BIC ทำให้เราเดินทางไปผิดที่คือไปโรงแรมสุดหรู “Hilton Phuket Arcadia Resort And Spa” (เจอเรื่องตื่นเต้น ตั้งแต่ยังไม่ได้ทดสอบเลย ฮาาาา)

tumblr_inline_nar2emXmn51qg3wjr

 

บีบหัวใจกันสุดๆเมื่อรู้ว่า…
งานที่เราเข้าร่วมนั้นคืองาน “The 18th Inter-Islands Tourism Policy Forum” ที่จัดขึ้นที่ประเทศไทย โดยภูเก็ตเป็นเจ้าภาพ ซึ่งเป็นงานที่เหล่าผู้นำของจังหวัดที่เป็นเกาะชื่อดังเกี่ยวกับการท่องเที่ยวของหลายๆประเทศ ได้พูดคุยพบประกัน โดยมี ไทย, เกาหลี, ญี่ปุ่น, จีน, อินโดนิเซีย, ศรีลังกา, ฟิลิปปินส์, มาเลเซีย, สวีเดน และ รัสเซีย (แม่เจ้าโว้ยยยยย งานระดับประเทศ หนิหว่า)

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

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

tumblr_inline_nar2gpAGv81qg3wjr-2

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

tumblr_inline_nar2ihSSWY1qg3wjr-2

ได้เวลาระบบที่เราพัฒนาทำหน้าที่ของมัน
เริ่มแรก ท่านแรกที่จะทำการลงนามบน iPad คือ ท่านผู้ว่าราชการจังหวัดภูเก็ต ท่านไมตรี อินทุสุต ซึ่งเกิดข้อผิดพลาดเล็กน้อย เพราะแขนเสื้อของท่านไปโดนกับปุ่มบนหน้า Screen iPad ทำให้ iPad ได้ทำการส่งภาพเปล่าไปยัง Server (อันนี้ผิดพลาดเพราะผมเอง วางปุ่มไว้ไม่ดีเอง) และ พี่ๆที่เป็นคนควบคุมจอภาพดันหยุดภาพบนหน้าจอค้างไว้และลืมปลดทำให้ภาพที่แสดงผลอยู่นั้นเป็นแค่รายชื่อของผู้นำแต่ละท่าน และลายเซ็นของท่านผู้ว่าฯ ไม่ขึ้นบนจอแสดงผล ทำให้งานหยุดฉงักชั่วขณะ ทุกคนในงานต่างเงียบ ผมและทีมงานต่างตกใจ แต่ก็แก้สถานการณ์กลับมาได้ทัน และหลังจากนั้นงานก็ผ่านไปได้ด้วยดี ทุกคนต่างดีใจ และจบงานได้อย่างราบรื่น

 

tumblr_inline_nar2lxxWtX1qg3wjr-2(Photo: Woranut Pechdee via http://www.phuketgazette.net )

tumblr_inline_nar2qa16941qg3wjr-2(Photo: Woranut Pechdee via http://www.phuketgazette.net)

เราได้ประสบการณ์หลายอย่างจากการทำงานครั้งนี้เป็นอย่างมาก ทั้งความรู้ในการพัฒนาซอฟต์แวร์ การทำ UX/UI การแก้ปัญหา การเตรียมพร้อม และอะไรหลายๆอย่างที่ล้วนแต่เป็นสิ่งที่ทำให้เราพัฒนาตัวเองเพิ่มยิ่งขึ้น เป็นการดีที่ Programmer ได้ออกมาสู่โลกภายนอก ได้เจอสถานการณ์จริง ได้เห็นสีหน้าของ USER ที่กำลังใช้ซอฟต์แวร์ของตัวเอง

ขอบคุณอย่างยิ่ง
สุดท้ายนี้ทางทีมงานบริษัท เลี่ยนอุดม จำกัด หรือทีมที่คนในภูเก็ตเรียกกันว่า ทีม ZocialPrint ขอขอบพระคุณ พี่โน๊ต คุณ ประชา อัศวธีระ ผู้จัดการสำนักงานส่งเสริมอุตสาหกรรมซอฟแวร์แหงชาติ สาขาภูเก็ต (SIPA Phuket), พี่แหม่ม SIPA Phuket และ พี่หนุ่ม MD BIC Event Phuket ที่ได้ให้โอกาสและเชื่อใจ ทีมเราได้ร่วมงานครั้งนี้ และขอขอบคุณ ทีมงานผู้จัดงานทุกคนที่ร่วมกันทำจัดงานครั้งนี้อย่างเต็มที่ ขอบคุณพี่ๆที่ควบคุม จอ ที่ร่วมลุ้นไปกับเรา และที่สำคัญ ขอบคุณทีมเราเองที่ตั้งใจทำงานออกมาอย่างที่เต็ม ไม่ว่าจะยากลำบากแค่ไหนก็ตาม

Source Code
PhuketSIGN iPad
PhuketSIGN NodeJS Server