ฉันควรสร้างแอปพลิเคชั่นที่โดดเด่นหรือกระดูกเปลือยแล้วค่อย ๆ เพิ่มคุณสมบัติ?


11

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



3
ลืมสิ่งที่กรอบในบริบทนี้ สร้างแอปไม่ใช่กรอบงานแฟนซี
keuleJ

2
ไม่ว่าคุณจะทำอะไรในท้ายที่สุดคุณก็จะสร้างมันขึ้นมาทีละชิ้นการสร้างกล่าวว่า "กรอบงาน" ซึ่งหวังว่าจะมีความหมายอย่างอื่นนอกเหนือจากการเขียนกรอบเมื่อคุณไป คำถามคือพวกเขาต้องการให้คุณปล่อยเร็วและให้ข้อเสนอแนะ ... นี่เป็นเส้นทางที่ดีกว่า นอกจากนี้คุณไม่ควรทำผิดคุณควรแนะนำให้พวกเขานำนักพัฒนาอาวุโสมาช่วยเหลือแอพขนาดนี้ สิ่งที่พวกเขาต้องการพวกเขาอาจคิดว่ามันสามารถทำได้เร็วกว่าและถูกกว่าที่คิด
xenoterracide

คำตอบ:


29

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

โอกาสที่ดีมาก (ติดกับบางอย่าง) ว่าสิ่งที่พวกเขาต้องการ / ถามจะไม่คล้ายกับสิ่งที่คุณจะสร้างขึ้นด้วยตัวคุณเองอย่างมาก (ถ้าเลย)

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


จุดที่ดีมากกับความแตกต่างระหว่างสิ่งที่พวกเขาขอและต้องการและสิ่งที่เราคิดว่าพวกเขาทำ ฉันคิดว่าความลังเลที่ยิ่งใหญ่ที่สุดที่ฉันคิดคือระหว่างเวลาที่พวกเขาบอกเราว่าสิ่งที่พวกเขาต้องการและเวลาที่เราคิดวิธีที่พวกเขาต้องการเปลี่ยนไปอย่างสิ้นเชิง แต่ฉันเดาว่าเล็กและเรียบง่ายแน่นอนเปลี่ยนได้ง่ายกว่าและมีคุณลักษณะครบถ้วน
Kyle Vancamp

2

คุณมีความคิดหรือไม่ว่าพวกเขาจริงจังกับแอพหรือไม่คุณอาจไม่ต้องการสร้างเฟรมเวิร์กเป็นต้น

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

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

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

จากนั้นในอนาคตหากผู้คนกลับมาหาคุณเพื่อขอคุณลักษณะนี้คุณมีโครงสร้างและคุณเพิ่งสร้างส่วนกลาง / ส่วนหน้า


2

บ่อยครั้งที่คุณมีข้อมูลไม่เพียงพอที่จะสร้างโปรแกรมที่สมบูรณ์ในขั้นต้น การทดสอบและความคิดเห็นจากลูกค้ามักจะเปิดเผยบางส่วนของการออกแบบเริ่มต้นของคุณที่ไม่ดีเท่าที่เคยมีในทางทฤษฎี

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

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


1

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

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.