Tôi có nên xây dựng một ứng dụng đầy đủ tính năng hoặc một ứng dụng xương trần và sau đó từ từ thêm các tính năng?


11

Tôi làm việc trong một nhà máy sản xuất đã giao nhiệm vụ cho CNTT trong việc tạo ra một chương trình lập kế hoạch sàn cửa hàng (điều đó rất cần thiết). Dựa trên kinh nghiệm của những người khác, sẽ tốt hơn nếu mất ít thời gian hơn và xây dựng một khung cơ bản có thể sử dụng được và sau đó xây dựng dựa trên đó bằng cách thêm các tính năng hoặc bắt đầu bằng cách tạo ra một giải pháp được thực hiện đầy đủ ngay ngoài cổng. Tôi mới chỉ là một nhà phát triển trong khoảng một năm và không có nhiều kinh nghiệm với việc tạo các ứng dụng có kích thước ban đầu này. Tôi đã nghiêng về ý tưởng rằng một ứng dụng barebones là cách đi đầu tiên do nhu cầu rất cao đối với một số loại lịch trình kỹ thuật số nhưng lo ngại rằng việc thêm các tính năng ngẫu nhiên sau khi thực tế có thể hơi lộn xộn. Nếu bạn ở trong hoàn cảnh tương tự, bạn sẽ đi theo con đường nào?



3
Hãy quên điều khuôn khổ trong bối cảnh này. Xây dựng một ứng dụng, không phải là một khung ưa thích.
keuleJ

2
bất kể bạn làm gì, cuối cùng bạn cũng sẽ xây dựng nó thành một mảnh. Xây dựng nói "khung", điều này hy vọng có nghĩa là một cái gì đó khác hơn là viết một khung khi bạn đi. Câu hỏi là, họ có muốn bạn phát hành càng sớm càng tốt không, và đưa ra phản hồi ... đây thường là con đường tốt hơn. Ngoài ra, không có ý xúc phạm bạn, có lẽ bạn nên đề nghị họ mang đến một nhà phát triển cao cấp để trợ giúp với một ứng dụng có kích thước này. Bất cứ điều gì họ muốn có lẽ họ nghĩ rằng nó có thể được thực hiện nhanh hơn và rẻ hơn nó có thể.
xenoterracide

Câu trả lời:


29

Kinh nghiệm chắc chắn dẫn đến việc xây dựng một cái gì đó nhỏ và đơn giản, và đưa nó đến với người dùng càng sớm càng tốt. Thêm các tính năng và khả năng theo yêu cầu của người dùng.

Rất có thể (rất chắc chắn) giáp với những gì họ muốn / yêu cầu sẽ không giống với những gì bạn sẽ tự mình xây dựng (nếu có).

Theo như mọi thứ trở nên lộn xộn khi bạn thêm vào ứng dụng ban đầu của mình: tốt, đây là lý do tại sao Agile (và hầu hết các phương pháp tương tự) tập trung mạnh vào kiểm tra và tái cấu trúc. Tái cấu trúc có nghĩa là làm sạch mã khi bạn thực hiện thay đổi và bộ kiểm tra chắc chắn (mà bạn chạy mỗi khi bạn thực hiện thay đổi) đảm bảo rằng nếu / khi bạn giới thiệu các lỗi bạn biết về chúng (gần như) ngay lập tức, để khi bạn phát hành một cái gì đó người dùng của bạn, bạn có một sự đảm bảo hợp lý rằng nó thực sự hoạt động.


Điểm rất tốt với sự phân biệt giữa những gì họ yêu cầu và cần và những gì chúng tôi nghĩ rằng họ làm. Tôi nghĩ rằng sự do dự lớn nhất mà tôi đã nghĩ đến là giữa thời gian họ nói với chúng tôi những gì họ muốn và thời gian chúng tôi đưa ra một giải pháp mà họ muốn hoàn toàn thay đổi. Nhưng tôi đoán nhỏ và đơn giản chắc chắn là dễ dàng hơn để thay đổi sau đó đầy đủ tính năng.
Kyle Wrapsamp

2

Bạn có biết họ có nghiêm túc với ứng dụng không, sau đó bạn có thể không muốn xây dựng các khung, v.v.

Tuy nhiên, bạn cần tìm một sự cân bằng. Phát triển nhanh nhẹn đề nghị bạn tập trung vào những gì được yêu cầu bởi ứng dụng ở giai đoạn này nhưng điều này không có nghĩa là bạn phải giới hạn bản thân bằng cách bỏ qua thiết kế cơ bản. Có những thứ có thể dễ dàng nhìn thấy sắp tới (và có kinh nghiệm đóng vai trò ở đây) và những thứ khác mà bạn không thể tưởng tượng được ở giai đoạn này (tôi chắc chắn rằng những người yêu cầu ứng dụng cũng không thể tưởng tượng ra chúng).

Tôi không biết chi tiết về ứng dụng lập lịch nhưng tôi có thể tưởng tượng rằng "loại cuộc hẹn" là thứ gì đó mà bạn sẽ bắt gặp sớm. Có lẽ mọi người không yêu cầu điều này bây giờ không hợp lý để mong đợi chức năng như vậy.

Tôi sẽ tiếp cận trường hợp này như sau: Tôi sẽ xây dựng cơ sở hạ tầng (khung mà bạn đề cập) bằng cách tạo một bảng trong cơ sở dữ liệu để giữ các loại cuộc hẹn nhưng tôi sẽ không tạo giao diện để thêm hoặc chọn các loại. Tôi sẽ cứng mã một loại cơ bản và tiếp tục với các tính năng thực tế. Rốt cuộc, không ai yêu cầu bao gồm các loại cuộc hẹn khác nhau.

Sau đó, trong tương lai, nếu mọi người quay lại với bạn yêu cầu tính năng này, bạn có cấu trúc và bạn chỉ cần xây dựng phần giữa / mặt trước.


2

Thông thường, bạn không có đủ thông tin để xây dựng một chương trình hoàn chỉnh ban đầu. Kiểm tra và phản hồi của khách hàng hầu như luôn tiết lộ các phần trong thiết kế ban đầu của bạn không tốt như trên lý thuyết.

Điều đó nói rằng, nếu vấn đề được hiểu rõ và bạn có thể viết một chương trình hoàn chỉnh ban đầu, thì điều này tốt hơn bởi vì nếu không bạn liên tục tái cấu trúc mã và kết quả hiếm khi sạch như một thiết kế chắc chắn được bắt đầu từ đầu.

Ít nhất, tôi nghĩ điều quan trọng là phải suy nghĩ kỹ về loại chương trình nổi bật mà chương trình của bạn có thể cần. Bằng cách đó, bạn có thể thiết kế nó để các tính năng như vậy có thể dễ dàng được thêm vào trong cấu trúc hiện có.


1

Từ trải nghiệm cá nhân: xây dựng MVP (Sản phẩm khả thi tối thiểu) của bạn và sau đó thêm các tính năng cho nó dựa trên phản hồi bạn nhận được. Thật dễ dàng để có được hàng tấn các tính năng và không có ai sử dụng chúng.

Cũng quan trọng là trải nghiệm người dùng mà bạn sử dụng để giải quyết vấn đề. Xác thực quy trình công việc bạn tạo với người dùng thực tế của mình và sau đó tiến hành thêm các tính năng khác. Đó là cách bạn có thể tập trung vào giá trị cốt lõi mà bạn đang xây dựng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.