✍🏼 ความพอดีในการสร้างซอฟต์แวร์

“ทำไมเราไม่ควรทำ Feature เพื่อสนองนีดลูกค้าแค่คนเดียว?” เป็นคำถามที่น่าสนใจ …

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

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

“If you try to please everyone, you will please no one.”

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

Hosted Software/Service

ถ้าเราผลิตซอฟต์แวร์หรือให้บริการที่เป็น Hosted การที่พัฒนา Feature ใหม่เพื่อเอาใจคนหนึ่งคนหรือคนกลุ่มน้อยอาจจะทำให้คนกลุ่มใหญ่เริ่มรู้สึกถึงความไม่พอดี เช่น แต่ก่อนใน Mobile App เคยใช้งานง่ายๆมีปุ่มให้กดแค่สามสี่ปุ่ม ผมก็แฮปปี้ดี อยู่มาวันหนึ่งหลังอัพเกรด ปุ่มเพิ่มมาอีกสองซึ่งเป็น Feature ที่ผมไม่ต้องการเลย ในมุมมองลูกค้ามันไม่ใช่ตัวช่วย (Helper) แต่มันคือภาระ (Burden) ที่ผมต้องแบกรับ

Client-Deployed Software

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

  • Code-Customer-A-v0.1
  • Code-Customer-B-v0.3
  • Code-Customer-C-v1.6

เมื่อ Code Base มีจำนวนมากขึ้นเรื่อง Support and Maintenance ก็จะเป็นเรื่องยุ่งยากที่ตามมาอย่างหลีกเลี่ยงไม่ได้ เมื่อเป็นแบบนี้แล้วการยอมตามใจลูกค้าแค่บางคนจะเป็นเรื่องที่ได้ไม่คุ้มเสีย มันเป็นการหวังผลระยะสั้นที่ต้องชดใช้ในระยะยาว

Software House

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

สิ่งที่เราควรเก็บเป็นข้อมูลนั้นไม่ใช่ Requirement (ความต้องการของลูกค้า) แต่ควรจะเป็น Pain Point (ปัญหาที่ลูกค้าเจอ) เพราะอย่างที่สตีฟ จ๊อบส์เคยพูดไว้ประมาณว่า “ลูกค้าจะไม่รู้ว่าตัวเองต้องการอะไร จนว่าเราจะโชว์ให้เค้าเห็น” นั่นคือลูกค้ามักจะไม่เก่งเรื่องคิดหาทางแก้ปัญหา (Solution) ที่รอบคอบตามที่เฮนรี ฟอร์ด (ผู้ก่อตั้งบริษัทฟอร์ด มอเตอร์ — ผู้ผลิตรถยนต์ฟอร์ด) ที่ว่า “ถ้าผมถามลูกค้าว่าอยากได้อะไร พวกเค้าคงตอบว่าอยากได้ม้าที่วิ่งเร็วขึ้น”

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

ซอฟต์แวร์ที่มี Feature มากที่สุดไม่ใช่ซอฟต์แวร์ที่ดีที่สุดเสมอไป (มันออกจะตรงข้ามกันด้วยซ้ำ) เพราะไม่เช่นนั้นแล้วเราคงไม่เห็น Project Management Software อื่นๆเกิดขึ้นมากมายมาเป็นคู่แข่ง Microsoft Project … เราคงไม่เห็นระบบ Customer Relationship Management (CRM) อื่นๆที่ทำอะไรได้น้อยกว่า SAP หลาย 10 เท่าได้โอกาสเชิดหน้าชูตาในตลาด

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

Leave a Reply

Your email address will not be published. Required fields are marked *