Làm thế nào để bạn biết khi nào ngừng thêm tính năng?


16

Cách đây một thời gian, tôi đã viết một tập lệnh python rất nhỏ, định kỳ kiểm tra nguồn cấp dữ liệu xml cho các mục mới và cảnh báo người dùng về các mục mới khi có mặt. Tôi đã viết cái này cho chính mình, vì vậy nó thực chất là một chương trình dựa trên giao diện điều khiển mà bất kỳ ai thoải mái với giao diện điều khiển đều có thể sử dụng.

Sau một thời gian, tôi quyết định nó có thể được sử dụng nhiều hơn cho người khác và bắt đầu dọn dẹp nó, vệ sinh đầu vào, loại bỏ lỗi. Tôi nhận ra rằng vì tôi đã viết kịch bản nên tôi biết cách sử dụng nó một cách hiệu quả, chính xác, v.v. Những người khác có thể không, vì vậy tôi bắt đầu thêm GUI. Điều này bắt đầu như một menu đơn giản, và sau đó mở rộng sang GUI đầy đủ hơn với cả giao diện và menu tùy chọn. Sau đó tôi đã thêm tùy chọn người dùng được lưu trữ và cũng lưu trữ cho các nguồn cấp dữ liệu xml được tìm kiếm trước đó để tăng tốc độ tìm kiếm lặp lại.

Tôi đã thêm ghi nhật ký để giúp gỡ lỗi ứng dụng trong trường hợp xảy ra sự cố, đưa ứng dụng lên cơ sở mã trăn ổn định mới nhất có sẵn cho nền tảng đã chọn của tôi và các tính năng hộp thoại được cải thiện.

Tôi đã sửa lỗi và nhận xét mã của mình một cách rõ ràng, nhưng tôi vẫn có những điều tôi nghĩ có thể được thực hiện để cải thiện ứng dụng trước khi tôi cung cấp nó cho những người thử nghiệm alpha. Nó khác xa so với kịch bản dòng 20-30 ban đầu của tôi. Những gì tôi dự đoán sẽ khiến tôi mất chỉ một hoặc hai giờ để đi từ bằng chứng về khái niệm sang một chương trình sử dụng chấp nhận được đã mất 10-20 lần. (Tôi vẫn là một người mới và công cụ này khiến tôi mất nhiều thời gian, nhưng vẫn ....)

Làm thế nào để bạn biết khi nào nên dừng thêm / điều chỉnh / sửa chữa các công cụ và để em bé của bạn bò ra ngoài trời?

Câu trả lời:


8

Khi bạn đạt đến thời hạn.

Nếu bạn không có thời hạn, đây là vấn đề của bạn ...

Đây là cách tôi làm việc:

  1. Tôi thêm các tính năng / lỗi mới trong sản phẩm tồn đọng của tôi.
  2. Tôi ưu tiên toàn bộ sản phẩm tồn đọng trên giá trị doanh nghiệp và ước tính (cuối cùng là tùy chọn trong trường hợp dự án personnal).
  3. Tôi phân bổ thời gian làm việc cho bản thân mình. Ngày phát hành là kết thúc thời gian đó.
  4. Tôi bắt đầu với đầu tiên trong danh sách. Tôi làm việc trên một tính năng một thời gian. Để được hoàn thành, một tính năng phải thực sự hoàn chỉnh bao gồm cả tài liệu (ở cuối tính năng, tôi có khả năng có thể giao sản phẩm).
  5. Tôi lấy cái tiếp theo cho đến khi hết thời gian được phân bổ.
  6. Nếu thời gian được sử dụng khi tôi xây dựng một tính năng, tôi sẽ loại bỏ tính năng này theo thời gian.
  7. Khi thời gian được phân bổ được sử dụng, tôi lấy bản dựng mới nhất và phát hành cùng với nó.
  8. Tôi lặp lại quá trình từ điểm 1.

Hmm tôi thích quy trình làm việc ở đây rất nhiều. Đây là một dự án sở thích, tôi không chắc chắn tôi sẽ cố gắng kiếm tiền từ nó, nhiều khả năng nó sẽ được cung cấp miễn phí hoặc tạo nguồn mở.
sợ hãi vào

4
Giá trị không có nghĩa là tiền trong quy trình đề xuất ở trên. Bạn quyết định giá trị là gì.

OK điều này thật tuyệt vời. Tôi đã áp dụng điều này kể từ khi tôi nhìn thấy bài viết sớm hơn ngày hôm nay. Hạn chót của tôi là Thứ Tư 3 giờ chiều, và mọi thứ đang diễn ra tốt đẹp! Tôi cảm thấy tự tin hơn về nơi đang diễn ra và những gì tôi đang làm. Tôi đã ưu tiên (trong các bình luận ở đầu tập lệnh) những thứ sẽ được thực hiện trước khi phát hành này và những thứ có thể để lại sau này. Và tôi đang viết ra tính năng mà tôi hiện đang làm việc để đảm bảo rằng tôi vẫn tập trung vào một nhiệm vụ tại một thời điểm. Cảm ơn!
sợ hãi vào

3. I allocate work time to myself. The release date is the end of that time.@Pierre 303, Khi bạn nói timebạn có nghĩa là hàng giờ tức là các bản dựng hàng đêm? hoặc thời gian như một cuộc chạy nước rút đầy đủ?
Kenan D

@LordCover: Ví dụ tôi chỉ định cho tôi 3 tuần (5 ngày một tuần 8h một ngày) để làm việc trên sản phẩm. Tôi giao hàng vào cuối 3 tuần.

3

Tạo một SRS sau đó mã theo các yêu cầu. Khi bạn đã đạt được tất cả các mục tiêu được đề cập trong SRS, đã đến lúc dừng lại và kiểm tra sản phẩm của bạn.


Hừm điểm tốt. Tôi không có gì viết về mục đích của nó tại thời điểm này.
sợ hãi vào

SRS là tốt nhưng đối với một nhóm người đàn ông duy nhất trong một dự án cá nhân hơi quá mức cần thiết. Tài liệu là tốt nhưng đối với loại dự án này tôi không nghĩ rằng tất cả SRS là cần thiết.
Chris

@Chris - Một SRS luôn là một điều tốt. Một dự án cá nhân là gì và được phát hành miễn phí ngày hôm nay, vẫn là một phần mềm miễn phí và được viết bởi hàng chục người. Một ví dụ tuyệt vời về lý do tại sao tài liệu là quan trọng của Facebook, thật dễ dàng hơn để viết tài liệu trong giai đoạn đầu và cập nhật tài liệu đó sau đó sẽ viết nó ngay hôm nay. Nếu bạn không thể viết ra thiết kế của mình, giải thích thiết kế, tài liệu về cách tính năng hoạt động thì làm thế nào bạn có thể mã hóa nó?
Ramhound

2

Trong ngắn hạn, khi bạn có một cái gì đó hoạt động đáng tin cậy và không bị hỏng. Ngay cả khi nó không làm mọi thứcó thể làm nếu bạn làm việc đó vô thời hạn. Vận chuyển như đã nói là một tính năng . Độ tin cậy và bộ tính năng bị hạn chế cung cấp cho bạn cơ hội để chức năng cốt lõi được kiểm tra bởi những người thực trong thế giới thực, những người sẽ tìm thấy những thứ mà bạn không bao giờ nghĩ rằng sẽ phá vỡ mã của bạn theo những cách không bao giờ vượt qua tâm trí bạn. Tại thời điểm này, bạn càng có ít tính năng, bạn càng dễ dàng khắc phục những sự cố ban đầu đó. Vì chức năng cốt lõi hoạt động đáng tin cậy hơn, bạn có thể bắt đầu triển khai các công cụ "tốt đẹp khác" với kiến ​​thức rằng mã trung tâm và quan trọng nhất của bạn vẫn hoạt động tốt.

Về lâu dài: Khi bạn đã hoàn thành và ghi lại hệ thống trình cắm sẽ cho phép người dùng của bạn (và tất nhiên là bạn) triển khai các tính năng mới một cách nhanh chóng và dễ dàng nếu bạn cần chúng. Đó phải là tính năng cuối cùng bạn cần thêm - sau đó là tất cả các plugin.


1

Khi bạn chắc chắn về tính ổn định của phần mềm, hãy phát hành mặc dù có thể có các tính năng đang chờ xử lý. Sự ổn định quan trọng hơn các tính năng. Nhận phản hồi, kết hợp với các tính năng hiện có và quyết định những gì sẽ được cung cấp tiếp theo và khi nào!


1

Bạn luôn có thể chăm sóc một dự án mãi mãi.

Một quy tắc rất tốt là bạn không bao giờ nên thêm những thứ không có trong trường hợp sử dụng được phê duyệt. Điều này đảm bảo rằng bạn sẽ không có nhiều thứ tốt đẹp để có, nhưng không ai sử dụng. Phê duyệt đảm bảo rằng những người khác hơn bạn đồng ý rằng điều này là cần thiết trong dự án của bạn.


1

Nó phụ thuộc vào lý do tại sao bạn thêm các tính năng. Là chủ dự án yêu cầu nó? người dùng? QA? Lập trình viên?

  • Thêm các tính năng bạn có.
  • Chọn lọc thông qua các tính năng quan trọng.
  • Bỏ qua các tính năng là tốt đẹp để có.

Tập trung vào mục đích của chương trình và làm cho mục đích của nó tập trung. Các yêu cầu tính năng mở rộng mục đích của nó nên được đặt câu hỏi kỹ lưỡng trước khi nó trở thành một con dao quân đội Thụy Sĩ.


Tôi thích ý tưởng giữ một sản phẩm tập trung. Tôi đang cố gắng để làm điều đó, và vẫn tìm cách chiếm lĩnh chính mình!
sợ hãi vào

2
@fearoffours, Bạn luôn có thể tìm cách để làm cho công việc của riêng bạn tốt hơn. Vấn đề là tìm ra từ người dùng làm thế nào để nó hoạt động tốt hơn cho họ. Giải quyết những trở ngại thực sự . Mịn thực đốm thô.
Huperniketes

lời khuyên tốt đẹp trong bình luận đó, (+1) cảm ơn!
sợ hãi vào

0

Tôi không ngừng thêm các tính năng nữa. Tôi chỉ cố gắng đưa ứng dụng ra khỏi đó càng sớm càng tốt và viết các tệp txt nếu tôi cần. Sau đó tôi có thể quyết định khi nào nên dừng lại và khi nào nên làm việc gì đó khác đi

Nó cũng giúp tôi thích làm việc tối thiểu có thể để hoàn thành công việc (mà không cần dùng đến hack).


0

Tôi muốn đề nghị bạn timebox nó. Cho mình một tuần nói. Tạo một danh sách công việc cần hoàn thành trong tuần đó và đảm bảo nếu bạn có một tính năng bạn không thể hoàn thành, bạn có thể sao lưu nó.

Vào cuối tuần phát hành nó. Phát hành sớm, thường xuyên phát hành.


Nhưng phải làm gì khi một số tính năng có sự phụ thuộc lẫn nhau?
Kenan D

0

Khi bạn đã có một cái gì đó đáng tin cậy và hữu ích, phát hành. Bạn không cần phải ngừng thêm tính năng, nhưng nếu có ai sử dụng những gì bạn đã nhận được ở đó, bạn sẽ hiểu rõ hơn về những tính năng nào muốn có. Hiện tại, bạn đang đoán.

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.