Làm cách nào để chuyển khách hàng từ mockup UI sang tập hợp các yêu cầu thực tế?


17

Giả sử bạn được cung cấp một bản mô phỏng 25 màn hình trạng thái trực quan của ứng dụng của bạn. Kỳ vọng là điều này đủ để chúng tôi tự tin rằng chúng tôi có thể phát triển và trao nó cho các bên liên quan hoặc khách hàng ban đầu như một ứng dụng đã hoàn thành, và họ sẽ hài lòng. Đương nhiên, cuối cùng bạn sẽ hỏi các bên liên quan nhiều câu hỏi được sử dụng để đưa ra UI, điều này thật lãng phí.

Tuy nhiên, tôi đã nhiều lần thấy rằng điều này là không đủ, trong quá trình phát triển ứng dụng, các yêu cầu trở nên mờ nhạt bởi thực tế là chúng tôi đang sao chép một giao diện và cuối cùng khách hàng không hài lòng như lúc đầu khi chúng tôi yêu cầu họ cho tất cả các thông tin để tạo UI.

Tôi chỉ không chắc chắn những gì khác để yêu cầu, tôi đã cố gắng cụ thể và yêu cầu các yêu cầu và sự hiểu biết về mục tiêu tổng thể, nhưng tôi không biết những gì tôi nên yêu cầu. Nếu tôi chỉ bắt đầu bây giờ, sẽ có rất nhiều thời gian bị lãng phí khi băm lại tất cả các thông tin dẫn đến UI và trong giai đoạn này, nhiều lý do quan trọng mà khách hàng ban đầu sẽ bị mất.

Làm cách nào tôi có thể khiến mọi người hiểu rằng chúng tôi không thể khóa các yêu cầu dựa trên mô hình giao diện người dùng bằng cách yêu cầu một cái gì đó có thể hành động mà họ có thể tạo cho tôi?

Bạn sẽ bắt đầu lý tưởng với điều gì để thực hiện đúng nhiệm vụ phát triển ứng dụng cho người dùng cuối?


Làm thế nào bạn yêu cầu yêu cầu? Bạn chỉ đơn giản là đi đến khách hàng / người dùng và nói "tôi có thể có yêu cầu không?" hoặc bạn đang sử dụng bất kỳ kỹ thuật nào khác nhau để khơi gợi, nắm bắt và xác minh và xác thực các yêu cầu?
Thomas Owens

2
Không dễ để đối phó với những người không phát triển cho việc này. Màn hình chỉ đơn giản là không mô tả một ứng dụng. Chủ nhân hiện tại của tôi không hiểu điều này. Những nỗ lực của tôi có xu hướng hướng đến từng màn hình và đặt ra nhiều câu hỏi về hành vi của từng mặt hàng và "what ifs". Bằng cách đó, bạn có hy vọng cô lập các tính năng và có thể thiết kế những gì diễn ra dưới bóng.
Giàn khoan

2
Tôi đoán nó tốt hơn so với thông số tệp 25 tab-excel-file quá phổ biến.
Morgan Herlocker

1
Không rõ ràng từ câu hỏi của bạn nếu đây chỉ đơn giản là những gì khách hàng của bạn đã cung cấp cho bạn HOẶC nếu đây là những gì người khác trong nhóm của bạn đã tạo ra do nỗ lực của họ trong việc nắm bắt yêu cầu. Nếu đó là vấn đề sau thì bạn có một vấn đề trong tổ chức của bạn có thể khá sâu sắc. Nếu nó là trước đây, thì bạn sẽ cần phải thực hành một số kỹ thuật thu thập yêu cầu như những người khác đang khuyến nghị.
Angelo

1
@Ryan, trong trường hợp đó thì tôi hy vọng anh chàng yêu cầu có thể trả lời tất cả các câu hỏi bạn sẽ có cho anh ấy! Có lẽ anh ta chỉ mong rằng bạn sẽ băm chính thức các yêu cầu đầy đủ với anh ta một cách tương tác? Đó là kịch bản lạc quan.
Angelo

Câu trả lời:


19

Một số thứ khác bạn có thể cần là:

  • Mô tả Usecase hoặc Workflow: Chỉ vì bạn biết màn hình trông như thế nào, bạn có biết cách xử lý dữ liệu xấu không? Bạn có biết làm thế nào để chuyển đổi giữa các màn hình trong TẤT CẢ các trường hợp? Bạn có thể bao gồm xử lý lỗi ở đây là tốt.

  • Cao cấp mô tả hệ thống: Một cái gì đó các giải thích những gì toàn bộ hệ thống mà những 25 màn hình được cho, và những gì họ làm.

  • Mô hình dữ liệu: Có thể suy ra một mô hình dữ liệu từ các màn hình này không? Có một mô hình dữ liệu phải được sử dụng hoặc bạn có thể tự do thiết kế để hoàn thành công việc không?

  • Yêu cầu kỹ thuật: Là các công nghệ cụ thể phải được sử dụng vì cấp phép hoặc vì lý do tích hợp?

  • Yêu cầu về hiệu suất: Nếu có màn hình tìm kiếm, có kỳ vọng về những gì có thể được tìm kiếm và tốc độ phản hồi sẽ như thế nào? Điều gì về phản ứng cho các loại hành động khác? Có thể hoặc một số trong số chúng không đồng bộ (người dùng gửi công việc và quay lại sau)?

  • Yêu cầu bảo mật: Ứng dụng có lưu trữ dữ liệu cá nhân / nhạy cảm tiềm năng không và nếu có, loại dữ liệu nào và phải làm gì để giữ an toàn? Bạn có cần phải đáp ứng một số mức độ tuân thủ (như tuân thủ PCI để thực hiện thanh toán bằng thẻ tín dụng) không?

Ngoài ra, có kiến ​​thức về lĩnh vực kinh doanh đặc biệt nào mà bạn có thể cần chúng để hỗ trợ bạn không? Một số ngành như bảo hiểm, ngân hàng, hồ sơ sức khỏe y tế, v.v ... có tất cả các loại logic kinh doanh phức tạp. Những dự án như vậy không nên được thử nếu không có sự giúp đỡ của một nhà phân tích kinh doanh, người biết tên miền đó. Nhưng nếu đó chỉ là một trang web mua sắm / thông tin cho các vật dụng chung, thì bạn có thể không cần một thành viên trong nhóm như vậy.


1
Tôi không biết nếu bạn cố tình làm điều đó nhưng danh sách này thậm chí còn theo thứ tự quan trọng, với các trường hợp sử dụng và mô tả hệ thống cấp cao (ít nhất họ có dán nhãn màn hình mockup không?) Là những điều quan trọng nhất. Tôi không biết nếu yêu cầu bảo mật có ý nghĩa để yêu cầu thpugh. Đối với tôi, có vẻ như bạn là một nhà phát triển nên hiểu rõ hơn về những gì cần bảo mật để hỗ trợ các trường hợp sử dụng của họ, vì vậy bạn nên quyết định các yêu cầu bảo mật từ các trường hợp sử dụng và sau đó thông báo cho khách hàng.
jhocking

10

Làm cách nào để mọi người hiểu rằng UI giả lập không đủ để tạo một chương trình hoạt động:

Tôi sẽ xử lý điều này với một tương tự. Vì tôi là một chút của một chiếc xe hơi, tôi đang đi theo con đường đó.

"Giả vờ tôi không biết gì về xe hơi. Bạn đưa cho tôi một vài bức ảnh về một chiếc Ferrari. Một cặp đôi từ bên ngoài và một chiếc từ bên trong xe (chụp từ ghế lái để tôi có thể thấy các điều khiển cho xe). Bây giờ bạn hãy hỏi tôi để tạo cho bạn một chiếc Ferrari. Tôi trở lại với một thứ trông giống như những bức tranh và có tất cả các điều khiển. Thật không may, những điều khiển đó không được nối với bất cứ điều gì bởi vì (vì tôi không biết gì về xe hơi) Tôi không biết những gì về chúng Kiểm soát nên làm. Tôi thậm chí không thể đoán được vì tôi thậm chí không biết những chiếc xe nào phải làm. Vì vậy, sau đó chúng tôi có một cuộc trò chuyện như thế này:

"Vậy một chiếc Ferrari làm gì?" "Nó cho phép tôi di chuyển bản thân từ điểm này sang điểm khác một cách nhanh chóng." "OK. Vậy cái vòng tròn này làm gì?" "Ồ, đó là tay lái. Bằng cách xoay nó, bạn có thể thay đổi cách các bánh xe ở bên ngoài điểm xe. Điều này sẽ thay đổi cách xe di chuyển." "OK, còn cái bàn đạp này thì sao?" "Đó là bàn đạp ga. Nó làm cho động cơ đi nhanh hơn khiến xe đi nhanh hơn." ... vài phút sau ... "Ok, vậy nó cần loại động cơ nào? Tôi đã thực hiện một số nghiên cứu và tôi đã tìm thấy động cơ cho xe golf và một số cho xe thể thao. Tôi nên sử dụng loại nào?" ... Vân vân. ..."

Sau đó, bạn có thể giải thích sự tương tự. Việc bàn giao cho các nhà phát triển các màn hình chỉ cho họ biết nó trông như thế nào chứ không phải những gì nó làm. Các nhà phát triển cần biết chương trình giải quyết vấn đề gì hoặc sẽ sử dụng nó như thế nào (như biết một chiếc xe hơi làm gì để thiết kế chiếc xe dễ dàng hơn và đưa ra những phỏng đoán có giáo dục về những điều nên làm). Họ cần biết những loại mà họ dự kiến ​​sẽ sử dụng (ví dụ: động cơ xe golf so với động cơ xe thể thao) và những yêu cầu không phải UI khác (xe nên đi nhanh).

Những điều tôi sẽ yêu cầu:

Mô tả vấn đề chung / cấp cao

Ca sử dụng / câu chuyện người dùng

Các yêu cầu thực hiện

Các công nghệ / nền tảng cần thiết (Windows, Linux, Web)

Mọi thứ thất vọngWithForms có trong câu trả lời của anh ấy


1
+1 cho sự tương tự tuyệt vời, mặc dù tôi không chắc đó thực sự là cách tốt nhất để giao tiếp với khách hàng. Tôi sẽ nói với những người bạn không chuyên về kỹ thuật của mình để giúp giải thích những gì tôi làm, nhưng đối với một khách hàng có thể là một chút bảo trợ.
jhocking

@jhocking Tôi hoàn toàn đồng ý rằng sử dụng sự tương tự đó không phải là cách để giao tiếp với khách hàng. Tôi đã đưa ra giả định rằng các giả được đến từ một người khác trong công ty bạn đã nói chuyện với khách hàng. Nếu bạn phải truyền đạt điều này cho khách hàng, chỉ cần giải thích rằng các giả lập cho bạn thấy nó trông như thế nào nhưng cho bạn biết rất ít về những gì nó làm (bất kỳ thông tin nào bạn nhận được từ giả là tốt nhất). Họ cần cho bạn biết thêm về những gì bạn đang làm. Bạn chỉ cần tìm một cách tốt để hỏi và truyền đạt điều đó.
Becuzz

5

Một cái gì đó ảnh hưởng đến 80% nỗ lực phát triển hướng tới 20% các trường hợp sử dụng rìa. Ảnh chụp màn hình sẽ không cho bạn biết về các trường hợp sử dụng, do đó bạn sẽ chìm trong bóng tối vì 80% sự phát triển tích cực của bạn.

Thật tốt khi bạn đang cố gắng tìm hiểu thêm và cố gắng truyền đạt tầm quan trọng của việc khách hàng tham gia nhiều hơn vào các yêu cầu của dự án, tuy nhiên nếu họ không làm điều này thì họ đang thiết lập dự án cho thất bại, và đó không phải là lỗi của bạn

Phần lớn các dự án phần mềm thất bại vì khách hàng không tham gia đủ vào quá trình phát triển phần mềm. Đây không phải là một vấn đề mới và chắc chắn nó không phải là một bí ẩn tại sao các dự án phần mềm thất bại nhưng nó liên tục xảy ra lặp đi lặp lại trong ngành vì những tình huống như thế này.

Bạn không thể ném một loạt thông tin lên tường và mong muốn lấy lại tất cả những hy vọng và ước mơ của bạn dưới dạng một gói phần mềm. Phát triển phần mềm không hoạt động theo cách này. Cho dù bạn là một cửa hàng Agile hay Waterfall, hướng khách hàng vững chắc là cần thiết cho sự thành công hay thất bại của một dự án.


2
"Bạn không thể ném một thông tin nhỏ vào tường và mong muốn lấy lại tất cả những hy vọng và ước mơ của bạn dưới dạng một gói phần mềm" Tôi thích câu này và tôi rất ăn cắp nó.
HLGEM

@HLGEM, lấy nó, là của bạn!
maple_shaft

4

Một điều mà mọi người dường như quên hỏi, đó là dữ liệu sẽ được sử dụng để làm gì sau khi được nhập? Bạn có cần báo cáo? Bạn có cần tạo phiếu đóng gói và gửi đến kho để vận chuyển, vv Nếu dữ liệu được sử dụng để đưa ra quyết định quản lý và báo cáo là cần thiết, thì điều đó có thể thay đổi thiết kế cơ sở dữ liệu. Nó cũng có thể thêm một lượng thời gian nghiêm trọng để phát triển tùy thuộc vào mức độ phức tạp của các báo cáo.

Bạn cũng cần đảm bảo có một đường dẫn cho mỗi quyết định có thể. Vì vậy, nếu một cái gì đó yêu cầu phê duyệt quản lý - thì bạn sẽ làm gì nếu bị từ chối cũng như bạn sẽ làm gì nếu nó được chấp thuận. Nếu nó không được phê duyệt hoặc không được chấp thuận trong X lượng thời gian, thì điều gì xảy ra với nó? Nếu họ chọn một sản phẩm và nó đã hết hàng, điều gì xảy ra với đơn đặt hàng? Những loại câu hỏi.

Bạn cũng cần biết nếu có giới hạn cụ thể về dữ liệu nào sẽ được đưa vào từng trường. Có giá trị cần thiết. Bạn đang đi đâu để lấy chúng từ đâu? Chúng sẽ được cập nhật như thế nào? Bạn cần biết cách xử lý lỗi. Bạn cần biết liệu cơ sở dữ liệu cần phải kiểm toán hay nếu bạn cần có khả năng tạo lại dữ liệu từ quan điểm lịch sử (quay lại các báo cáo phiền phức đó).

Một điều nữa tôi thấy đang xảy ra là các ứng dụng có thể được thiết kế chỉ để phát hành mà không cần xem xét cách thức dữ liệu sẽ được duy trì sau đó. Bạn có cần một trang quản trị để đảm bảo rằng họ có thể cập nhật danh sách các giá trị bắt buộc không? Bạn có cần gửi dữ liệu qua lại cho các hệ thống khác. Làm thế nào bạn sẽ có được dữ liệu ban đầu vào cơ sở dữ liệu?


3

Cá nhân, tôi sẽ yêu cầu một cuộc họp kéo dài nửa ngày đến ngày với khách hàng để xem qua thiết kế UI và mục tiêu của họ và đảm bảo mọi thứ đều phù hợp.


2

Bắt đầu đơn giản. Làm cho họ hiểu rằng với thông tin bạn đã được cung cấp, không ai trong số những màn hình đó sẽ làm gì cả . Không có chi tiết về các trường hợp sử dụng, hành vi đầu vào xấu và như vậy. Nó sẽ không hoạt động. Giải thích khái quát hóa cùn dễ hơn giải thích chi tiết, vì điểm không thể bị mất. Cố gắng cung cấp cho họ một lời biện minh phức tạp hơn về lý do tại sao các mockup màn hình không đủ cho họ cơ hội để phân minh các định nghĩa của bạn thay vì thừa nhận vấn đề. Yêu cầu họ tưởng tượng rằng nhà phát triển back-end không nói tiếng Anh (hoặc bất kỳ ngôn ngữ nào mà màn hình được trình bày). Sau đó hỏi tình huống này khác nhau như thế nào với một nhà phát triển không có kiến ​​thức gì cảquy trình kinh doanh của họ. Sau đó, xây dựng ví dụ thực tế hơn về bản thân bạn, những người có một số kiến ​​thức, nhưng có lý khi tin rằng việc quyết định logic kinh doanh của họ đối với họ là không phù hợp .


2

Những người chưa phát triển phần mềm không biết những gì các nhà phát triển phần mềm cần biết. Họ không thể tự mình sản xuất các yêu cầu kỹ thuật và trường hợp sử dụng. Bạn cần áp dụng các kỹ thuật khơi gợi yêu cầu để có được thông tin mà bạn cần biết. Làm việc với khách hàng (và hy vọng một mẫu người dùng từ các vai trò khác nhau) để xác định những gì họ cần hoặc muốn. Các kỹ thuật phổ biến cho việc này là phỏng vấn và / hoặc quan sát người dùng, xác định các trường hợp sử dụng và câu chuyện của người dùng và tạo mẫu.

Tôi rất khuyên bạn nên áp dụng các kỹ thuật phát triển lặp và tăng dần trong trường hợp này, vì bạn có các yêu cầu mơ hồ, không đầy đủ hoặc hiểu kém. Nhìn vào các phương pháp nhanh nhẹn khác nhau cùng với Mô hình xoắn ốc để giải quyết lập kế hoạch vòng đời.

Bắt đầu bằng cách đạt được mục tiêu kinh doanh thúc đẩy sự phát triển của phần mềm này. Phỏng vấn khách hàng và người dùng, và nếu bạn có thể, hãy xem họ tại nơi làm việc. Cố gắng xác định vấn đề họ đang cố gắng giải quyết. Xem những công cụ nào họ hiện đang sử dụng và cách họ sử dụng chúng để bạn có thể cải thiện cách làm việc hiện tại của họ. Sử dụng cơ hội này để tìm hiểu tên miền và ngôn ngữ của nó - việc giao tiếp sẽ trở nên dễ dàng hơn vô cùng nếu các nhà phát triển phần mềm và khách hàng / người dùng đều nói cùng một ngôn ngữ (và không mong muốn khách hàng / người dùng nói theo thuật ngữ phần mềm).

Khi bạn hiểu mục tiêu là gì, bạn có thể bắt đầu làm việc với các mô hình thiết kế UI mà bạn có và "kỹ sư đảo ngược" sử dụng các trường hợp và câu chuyện người dùng từ chúng dựa trên cách các màn hình khác nhau khớp với nhau. Định dạng câu chuyện của người dùng có thể sẽ hoạt động tốt để đối phó với khán giả phi kỹ thuật. Các định dạng của As a <user type>, I want to <action> so that <reason>công việc ra về việc khiến các nhà phát triển và khách hàng / người dùng nói cùng một ngôn ngữ. Khi bạn có thể bắt đầu câu chuyện của người dùng, tôi sẽ áp dụng cách tiếp cận tạo mẫu để phát triển.

Tôi nghĩ rằng tôi sẽ tiếp cận điều này với việc sử dụng nguyên mẫu. Bạn có thể tiếp cận điều này từ quan điểm tạo mẫu tiến hóa hoặc phối cảnh tạo mẫu , nhưng tôi sẽ xem xét phương pháp tạo mẫu tiến hóa trước. Bắt đầu với những câu chuyện người dùng mà bạn cảm thấy thoải mái nhất và đã xác thực, và bắt đầu thực hiện chúng. Khi bạn thực hiện chúng, nhận phản hồi từ khách hàng và phát triển câu chuyện người dùng mới, trường hợp sử dụng và giải quyết những hiểu lầm.

Ngoài ra, đừng nghĩ về điều này như "thực hiện giao diện người dùng với các tính năng trong đó". Thay vào đó, hãy nghĩ về nó như những lát mỏng dọc. Đừng triển khai tất cả giao diện người dùng cùng một lúc và sau đó lo lắng về các tính năng. Thay vào đó, hãy sử dụng các mô hình giao diện người dùng để xác định các tính năng và các yêu cầu khác, sau đó triển khai một lát cắt dọc từ giao diện người dùng xuống logic lưu trữ dữ liệu và logic nghiệp vụ. Lặp lại điều này cho mỗi lát dọc. Bạn cũng nên thoải mái đưa ra các đề xuất để cải thiện giao diện người dùng dựa trên các yêu cầu và nguyên tắc sử dụng.

Tôi khuyên bạn nên đọc hai cuốn sách của Karl Wiegers - Yêu cầu phần mềmthêm về yêu cầu phần mềm . Tôi nghĩ rằng những điều này sẽ giúp bạn với các yêu cầu kỹ thuật và thực hành tốt nhất trong lĩnh vực này.


4
Chỉ cần nhớ nếu bạn là nguyên mẫu, không bao giờ làm cho giao diện người dùng trông bóng bẩy và hoàn thiện, họ sẽ nghĩ bạn đã hoàn thành việc mã hóa nếu màn hình trông có vẻ bị lỗi.
HLGEM

@HLGEM Rất đúng, rất đúng. Trên thực tế, tôi khá chắc chắn rằng tôi đã đưa ra lời khuyên đó trên trang web này trước đây.
Thomas Owens

1

Chà, đây là một tài liệu tham khảo bắt đầu rõ ràng đáng xấu hổ, nhưng Wikipedia có thể là nơi để bạn và người dùng bắt đầu. Thực tế là có một mục về công cụ này có thể giúp thuyết phục họ rằng đây là một vấn đề thực sự, không phải bạn là một nỗi đau.

Cụ thể hơn, bạn chỉ gặp khó khăn về những gì ứng dụng làm, ngay cả sau khi đi qua các mock-up? Nếu vậy, hãy thừa nhận nó và cố gắng giải thích rằng bạn không biết mỗi biểu mẫu sẽ hiển thị dữ liệu nào, hoặc nó đến từ đâu, đó là từ các màn hình khác hoặc dữ liệu ngoài?

Nếu bạn có một số ý tưởng, cố gắng đưa ra ví dụ về những điều mà bạn không biết làm thế nào để làm ( "sẽ danh sách các mẫu để chọn được một danh sách toàn cầu hay là ai trong số họ bởi người, hay cái gì khác? Nếu đó là Không phải bởi người dùng Tôi có nên cho hai người chỉnh sửa cùng một lúc không? Giao diện người dùng sẽ hiển thị gì nếu người khác đang chỉnh sửa? Có màn hình nào không? Một khi ai đó đã sử dụng một mẫu cho bất kỳ mẫu nào được sử dụng và sau đó mẫu được chỉnh sửa sự thay đổi đó có nên được truyền bá đến điều họ đã thực hiện với mẫu không? ").

Hãy nói rõ rằng với trình độ kiến ​​thức hiện tại của bạn, bạn sẽ cần phải có câu hỏi được trả lời khoảng 90 giây trong phần còn lại của chu kỳ phát triển và phần lớn thời gian bạn sẽ không thể tiếp tục làm việc cho đến khi bạn nhận được câu trả lời. Mục tiêu nên là làm cho nó rõ ràng tại sao có một số loại quy trình sẽ làm cho tất cả dễ dàng hơn. Cũng đề cập rằng QA sẽ cần cùng thông tin bạn làm, vì vậy việc viết ra tất cả sẽ dễ dàng hơn vì vậy nó có sẵn cho mọi người và không ai quên bất cứ điều gì.

Có thể giúp đề cập đến việc một số mã bạn viết ảnh hưởng đến nhiều màn hình cùng một lúc, vì vậy nếu bạn có càng nhiều câu trả lời càng tốt thì có thể giúp viết mã đó một cách phù hợp và không phải thay đổi mã sau này.

Nếu bạn vẫn không thể nhận được yêu cầu và bạn thực sự không biết cách tiến hành, hãy gửi email mỗi khi bạn cần thêm thông tin (nghĩa là yêu cầu) và nếu bạn không thể tiếp tục làm việc mà không có thông tin đó, hãy nói rõ rằng bạn Thật không may, không thể tiếp tục làm việc, bởi vì mã bạn cần viết sẽ rất khác nhau tùy thuộc vào (các) câu trả lời cho (các) câu hỏi của bạn. Đừng phàn nàn, chỉ cần rất chuyên nghiệp cho họ biết rằng bạn không thể viết chương trình cho đến khi bạn biết những gì nó nên làm.


0

Bạn cần biết giới hạn và phạm vi cho từng lĩnh vực trong ứng dụng. Ví dụ: nếu trường là số điện thoại, họ có mong bạn xử lý +1 không? Những lĩnh vực được yêu cầu? Họ muốn ứng dụng làm gì nếu người dùng gõ "abc" trong trường số điện thoại? Có phải tất cả 25 màn hình theo thứ tự mà tất cả người dùng phải tiến hành?

Nếu không, chỉ cần tạo mọi thứ như các trường văn bản và bạn đã hoàn tất! Bạn muốn đặt cược rằng sẽ đi qua như một quả bóng chì?

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.