Làm thế nào thường là tốc độ phần mềm rõ ràng trong mắt khách hàng?


10

Về lý thuyết, khách hàng sẽ có thể cảm nhận được sự cải thiện hiệu suất phần mềm từ trải nghiệm đầu tay.

Trong thực tế, đôi khi các cải tiến không đủ đáng chú ý, để có thể kiếm tiền từ các cải tiến, cần sử dụng các số liệu hiệu suất có thể trích dẫn trong tiếp thị để thu hút khách hàng.

Chúng tôi đã biết sự khác biệt giữa hiệu suất nhận thức (độ trễ GUI, v.v.) và hiệu suất phía máy chủ (máy, mạng, cơ sở hạ tầng, v.v.).

Bao lâu thì các lập trình viên cần phải đi thêm thời gian để "viết lên" các phân tích hiệu suất mà khán giả không phải là lập trình viên đồng nghiệp, mà là các nhà quản lý và khách hàng?

Câu trả lời:


20

Mặc dù @jwenting đưa ra một số điểm tốt, tôi phải không đồng ý với đánh giá chung.

Một người dùng thường không nhận thấy những cải tiến hiệu suất nhỏ.

Với điều đó, tôi có thể đồng ý.

Nơi tôi không đồng ý xoay quanh tuyên bố này:

hầu hết các ứng dụng phải đối mặt với người dùng cuối dành phần lớn thời gian của họ để chờ đầu vào của người dùng.

Bây giờ, trước khi bạn nhảy lên nhảy xuống, tôi cũng đồng ý với tuyên bố đó! Tuy nhiên, tuyên bố này nhấn mạnh một thực tế thường bị bỏ qua bởi những người không hiểu đầy đủ về cách người dùng thực sự cảm nhận một hệ thống.

Một người dùng sẽ nhận thấy rằng một ứng dụng chậm khi họ phải đợi nó tải. Một người dùng sẽ nhận thấy điều đó khi họ phải tạm dừng chương trình ở giữa việc nhập dữ liệu của họ.

Hiệu suất phần mềm là hiển nhiên đối với người dùng khi nó phá vỡ sự tương tác tự nhiên và trôi chảy với hệ thống.

Một người dùng sẽ chỉ không nhận thấy hiệu năng hệ thống khi nó hoạt động hoàn hảo và không giữ người dùng.


5
Thật không may, một số lập trình viên cảm thấy cần phải chơi theo mong đợi của người dùng. Tôi đã thấy điều này trong mã sản xuất vào một ngày khác:Thread.Sleep(1000); //pretend this does more than change a 0 to a 1 in the database.
Ben L

Đó là đánh giá mã bởi các nhà phát triển hợp lý nên tham gia. Điều đó, hoặc những người tiếp tục thay đổi thực phẩm nên bị thu hồi giấy phép đưa ra quyết định.
Dan McGrath

2
Mặt khác, @BenL tôi đã trải nghiệm điều ngược lại, một số thao tác chậm trước khi chúng tôi thực hiện nhanh, nhanh đến mức người dùng nghĩ rằng hành động đó đã không được thực hiện hoặc thất bại.
Pieter B

2
@BenL: Rất may, UX hiện đại khuyên bạn nên sử dụng hình ảnh động thay vì chèn độ trễ tùy ý.
rwong

5

Một số cải tiến hiệu suất không được chú ý là hiệu suất. Khách hàng sẽ nhận thấy rằng hệ thống "cảm thấy" đẹp hơn.

Các tiềm thức hoạt động ở tốc độ nhanh hơn so với ý thức. Bộ não của chúng ta được lập trình cho phản hồi tức thì và khi phải đối mặt với một chuỗi các nhiệm vụ, chúng ta cần phải lần lượt thực hiện chúng. Một chút tạm dừng trong phản hồi làm cho quá trình này trở nên rời rạc, làm tăng mức độ căng thẳng. Mọi người sẽ tự động nhấp đúp vào một nút mà không nghĩ về nó nếu có một khoảng dừng trong phản hồi.


Có, nhưng có giới hạn. Con người sẽ không nhận thấy mọi thứ nhanh hơn một phần mười giây, vì vậy bất kỳ phản hồi nào từ 100ms trở xuống đều là vàng. Nhận được phản hồi từ, giả sử, 250ms đến 100ms sẽ giúp mọi thứ cảm thấy mượt mà hơn rất nhiều. Đi từ 100ms đến 40ms sẽ không có hiệu quả gần như tương tự.
David Thornley

3

Khá thường xuyên cải tiến hiệu suất là rất nhỏ, khách hàng không bao giờ thông báo trực tiếp. Tốt nhất, họ có thể có một luồng ứng dụng trôi chảy hơn một chút so với việc sử dụng nó, nhưng không đủ để được chú ý một cách có ý thức.

Hãy nhớ rằng hầu hết các ứng dụng phải đối mặt với enduser dành phần lớn thời gian của họ để chờ đầu vào của người dùng, không xử lý đầu vào đó. Vì vậy, ngay cả khi bạn giảm 10% trong 100ms cần thiết để xử lý nhấp vào nút đó và cập nhật màn hình, người dùng sẽ hầu như không nhận thấy vì cô ấy sẽ không làm gì với màn hình được cập nhật đó trong 10000ms sau đó.

Ai sẽ chú ý là sysadmin, người đã thấy một công việc hàng loạt trước đây chỉ mất 2 giờ để hoàn thành trong 90 phút, nhưng anh ta sẽ chỉ nhận ra rằng nếu anh ta phải chờ kết quả và m giận dữ thì sự trở lại nhanh hơn làm gián đoạn anh ta giữa chừng thông qua bộ phim của anh ấy :)


Từ quan điểm của sysadmin, điều đó cũng có nghĩa là phải có ba máy chủ thay vì bốn máy chủ để xử lý tải và điều đó rất quan trọng. Cũng có nơi tôi làm việc tại nơi chạy hàng ngày mất 18-20 giờ, cho rằng không có gì sai. Người quản lý rất thích cắt giảm điều đó.
David Thornley

vâng, đó là những trường hợp cực đoan. Làm việc trên một nơi mà một công việc cần phải chạy một lần một ngày cần 36 giờ để hoàn thành. Đã có thể cấu trúc lại nó chỉ cần "chỉ" 20 giờ. Khách hàng rất vui :)
jwenting

2

Như những gì người khác nói ngày nay, đó là về hiệu suất và "chất lỏng" nhận thức hơn là tốc độ thô thực tế.

Điều đó có nghĩa là bạn có thể thoát khỏi việc có một hệ thống (er) chậm chỉ bằng cách có cảm giác và nhịp điệu tự nhiên trong giao diện người dùng phần mềm của bạn, thay vì có một số thứ quá nhanh và những thứ khác rất chậm. (Là con người, chúng tôi nhận thấy sự bất thường rất tốt, vì đó có thể là một con hổ lẻn lên trên chúng tôi ...)

Điều này rất cần thiết trong việc che giấu độ trễ mà bạn không thể làm gì, vì vậy đây là một kỹ năng tốt để thực hành.


2

Tôi chỉ muốn nhảy vào đây và đưa ra một trường hợp bất thường trong đó ....

* KHÁCH HÀNG TỰ DO CHĂM SÓC VỀ HIỆU SUẤT VÀ THÔNG BÁO MỌI THỨ THAY ĐỔI! .

Đó là trong lĩnh vực của tôi, nơi chúng tôi bao gồm kết xuất sản xuất có xu hướng được phân tích đến chết về mặt hiệu suất của chính khách hàng. Hiệu suất chậm 2% so với phiên bản nhỏ có thể tương đương với sự chậm lại được báo cáo dưới dạng "báo cáo lỗi" en masse.

Chủ đề diễn đàn thường được bắt đầu với việc khách hàng chấm điểm cảnh của họ so với các phiên bản phần mềm khác nhau, trong đó khách hàng thực sự đang đo điểm chuẩn hơn chính các nhà phát triển. "Cảnh này mất 1 giờ 40 phút để hiển thị trong phiên bản X. Bây giờ mất 32 phút trong phiên bản Y."

"Cảnh này mất 18 phút để tải trong phiên bản X, bây giờ mất 4 phút để tải trong phiên bản Y."

Họ cực kỳ cảm kích khi tối ưu hóa được áp dụng, và điều đó một mình có thể đủ để đảm bảo mua một bản nâng cấp mới, rất tốn kém của phần mềm và đôi khi chỉ với những cải tiến khiêm tốn như giảm 10% thời gian.

Trong một số bối cảnh lớn hơn, nó cũng có thể tiết kiệm cho khách hàng số tiền khổng lồ khi sản phẩm được tăng tốc, vì một số studio lớn sử dụng trang trại kết xuất mà họ phải trả tiền cho hàng trăm máy móc hoạt động cả ngày và bất kỳ cải thiện nào trong thời gian ở đây đều có thể tăng tốc toàn bộ quá trình sản xuất của họ (và thậm chí có thể mang lại kết quả tốt hơn khi các nghệ sĩ tạo ra nghệ thuật sáng tạo hiệu quả hơn thay vì chờ đợi nó được kết xuất).

Vì vậy, tồn tại các trường như thế này nơi khách hàng thực sự, thực sự, thực sự chú ý - đôi khi còn hơn cả chính các nhà phát triển và điều này nằm ngoài các khái niệm tương tác UI liên quan đến độ trễ hơn là thông lượng.

Bao lâu thì các lập trình viên cần phải đi thêm thời gian để "viết lên" các phân tích hiệu suất mà khán giả không phải là lập trình viên đồng nghiệp, mà là các nhà quản lý và khách hàng?

Trong trường hợp của chúng tôi, mọi lúc, chỉ với mỗi bản phát hành nhỏ. Tốc độ là một trong những điểm bán hàng hàng đầu, và thậm chí các tiêu chuẩn kỹ thuật và phân tích hiệu suất nhất thực sự được đánh giá và hiểu bởi khách hàng và người quản lý. Nhận thức của khách hàng thường giống như những con sói điên cuồng, khao khát được tối ưu hóa hơn và cố gắng đưa ra gợi ý cho các nhà phát triển về cách làm cho mọi thứ trở nên nhanh hơn. Trong trường hợp này, thực sự cần có kỷ luật để chống lại một số sự thôi thúc của khách hàng để tối ưu hóa hơn nữa và tập trung vào các số liệu khác như khả năng duy trì và cải tiến tính năng.


1

Lần duy nhất tôi đi qua là:

  1. Phần mềm cải thiện bằng cách thực hiện nhiều công việc hơn trong cùng khung thời gian.
  2. Kết xuất hoặc xử lý ngoại tuyến nhanh hơn rõ rệt, nhưng không nhìn thấy được.
  3. Tăng tốc độ có phần danh nghĩa nhưng các cải tiến ngăn chặn tắc nghẽn trong tương lai
  4. Xử lý song song mà thực hiện cùng một công việc ở cùng một tốc độ, đối với nhiều người.
  5. Bất cứ lúc nào tốc độ không đáng chú ý tăng mạnh ảnh hưởng đến năng suất.

1

Nếu khách hàng không nhận thấy sự cải thiện tốc độ, tại sao nhà phát triển lại làm việc với họ? Có lẽ có một lý do tốt. Tại sao kiếm tiền từ công việc đó nếu nó minh bạch cho người dùng?

Một ví dụ: Apple tính phí khoảng 130 đô la cho mỗi lần nâng cấp Mac OS X. Ngoại trừ Snow Leopard được bán $ 30. Các nhà phát triển đã làm việc chăm chỉ trên phiên bản đó nhưng có rất ít cải tiến có thể nhìn thấy từ quan điểm của người dùng. Vì vậy, Apple quyết định tính phí tối thiểu.


1

Bao lâu thì các lập trình viên cần phải đi thêm thời gian để "viết lên" các phân tích hiệu suất mà khán giả không phải là lập trình viên đồng nghiệp, mà là các nhà quản lý và khách hàng?

Tôi tin rằng nó phụ thuộc vào ngành công nghiệp. Trong thế giới lập dị của hợp đồng quốc phòng, chúng tôi làm việc này khá thường xuyên. Chúng tôi có các yêu cầu cụ thể để làm cho các sản phẩm hoạt động theo những cách nhất định - và các số liệu hiệu suất này không phải lúc nào cũng liên quan trực tiếp đến thứ mà người dùng cuối đã trải nghiệm. Và chúng tôi thường tự kiểm tra để xem sản phẩm chạm đáy ở đâu. Cả hai loại bài kiểm tra được viết trong các báo cáo với một số suy nghĩ nghiêm túc về ý nghĩa của nó.

Điều đó nói rằng, tôi không chắc nó đúng trong các tình huống mà khách hàng và cơ sở triển khai ít chuyên biệt hơn (tức là thế giới thương mại). Cho rằng chúng tôi mua COTS cần đáp ứng thông số kỹ thuật hiệu suất, tôi có thể nói rằng một số người mua yêu cầu thông số kỹ thuật như vậy, nhưng theo kinh nghiệm của tôi, các công ty COTS tôi đã không luôn có quá nhiều giấy trắng phân tích hiệu suất có sẵn. Nó dường như phụ thuộc vào ngành công nghiệp, quy mô của công ty và bản chất của cạnh tranh. À ... chủ nghĩa tư bản.


1
Đã hỗ trợ rất nhiều sản phẩm COTS, tôi có thể đảm bảo với bạn rằng hiệu suất không phải là bất cứ điều gì họ quan tâm. Người dùng quan tâm khi họ gọi điện cho khách hàng và phải mất mười phút để chuyển từ màn hình này sang màn hình tiếp theo (Trường hợp thực tế tôi xử lý một sản phẩm COTS được thiết kế kém có giá hơn 100K). Nhưng các nhà sản xuất COTS không giao dịch trực tiếp với người dùng giận dữ và do đó nó không quan trọng đối với họ.
HLGEM

0

Ý kiến ​​của tôi là nếu hiệu suất tăng không đáng chú ý, thì chúng không thể bán được. Nói cách khác, tại sao một người nào đó sẽ trả nhiều tiền hơn cho phần mềm không được cải thiện rõ rệt?

Tôi nghĩ rằng các tuyên bố tiếp thị về các cải tiến hiệu suất không đáng chú ý đã khiến người dùng nói chung giảm trọng lượng cho các tuyên bố đó. Ví dụ, khi tôi muốn bắt đầu sử dụng kiểm soát phiên bản phân tán, tôi đã bỏ qua các khiếu nại về hiệu suất git vì tôi tin rằng sự khác biệt sẽ không đáng kể. Chỉ bằng cách tự mình thử nó, tôi thấy họ đáng tin, đặc biệt là khi kết hợp với hỗ trợ inotify.

Tôi sẽ tạo một ngoại lệ cho hiệu suất tăng không liên quan trực tiếp đến trải nghiệm người dùng cuối. Ví dụ: thông lượng máy chủ sẽ quan trọng đối với những người mua và bảo trì máy chủ, ngay cả khi người dùng cuối không nhận thấy sự khác biệt. Trong trường hợp đó, một "phần trăm cải thiện so với X" đơn giản là đủ.


0

Nó phụ thuộc vào người mà bạn đang bán sản phẩm phần mềm của bạn cho.

Thường xuyên hơn không, khách hàng của bạn không phải là người dùng cuối / ngày. Vì vậy, thường thì bạn sẽ kết thúc bằng việc tạo ra các báo cáo đẹp và sáng bóng hơn thay vì khắc phục các vấn đề về hiệu suất. Bởi vì thực sự bạn đang bán cho quản lý chứ không phải người dùng cuối.

Điều đó có nghĩa là trong trường hợp đó, bạn sẽ khó có thể đánh dấu một số vấn đề về hiệu suất nhưng sẽ kiếm được đồng đô la hàng đầu trong việc tự động hóa báo cáo đó.

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.