Technical Spike là gì? Cách thực hiện hiệu quả 

technical spike

Cập nhật lần cuối vào 19/08/2024 bởi Phạm Mạnh Cường

Với sự phát triển mạnh mẽ của công nghệ phần mềm, chúng ta thường xuyên đối mặt với những vấn đề kỹ thuật phức tạp và những yêu cầu không rõ ràng. Làm sao để giảm thiểu rủi ro và sự không chắc chắn này? Làm sao để nhóm phát triển có thể tiến hành một cách tự tin và hiệu quả? Đây là lúc Technical Spikes phát huy tác dụng.

Trong bài viết này, chúng ta sẽ khám phá sâu hơn về Technical Spikes – từ định nghĩa, lý do sử dụng, đến cách thực hiện và những lưu ý quan trọng. Qua đó, bạn sẽ thấy rõ hơn cách mà Technical Spikes có thể trở thành một phần không thể thiếu trong hành trình phát triển phần mềm của nhóm bạn, giúp bạn và đội ngũ của mình vượt qua các thử thách một cách hiệu quả và đạt được thành công.

Technical Spike là gì?

Technical Spike là một hoạt động để khám phá vấn đề và các giải pháp khả thi trong quá trình phát triển sản phẩm hoặc nền tảng, nhằm tăng cường sự tự tin trong việc có thể triển khai thành công các tính năng hoặc chức năng cần thiết theo đúng tiến độ, ngân sách và yêu cầu kỹ thuật.

Khái niệm này bắt nguồn từ Extreme Programming (XP) và là một cách tuyệt vời để nhóm:

  • Giảm thiểu rủi ro của một vấn đề kỹ thuật.
  • Tăng độ tin cậy của ước lượng user story.
  • Cho phép kiến trúc hệ thống phát triển tự nhiên thay vì thiết kế chi tiết ban đầu (BDUF – Big Design Up Front).

Sự khác biệt giữa Technical Spikes và các loại Spikes khác (ví dụ: Functional Spikes)

  • Technical Spikes: Tập trung vào việc điều tra các vấn đề kỹ thuật và tìm ra các giải pháp khả thi. Đây thường là các hoạt động như viết mã thử nghiệm, thử nghiệm công nghệ mới, hoặc kiểm tra tính khả thi của một giải pháp kỹ thuật cụ thể.
  • Functional Spikes: Tập trung vào việc điều tra và hiểu rõ các yêu cầu chức năng của hệ thống. Các hoạt động này thường bao gồm việc phân tích yêu cầu người dùng, thử nghiệm các luồng công việc, hoặc tạo các nguyên mẫu chức năng để hiểu rõ hơn về các yêu cầu của người dùng và cách chúng sẽ được triển khai.

Tại sao cần thực hiện Technical Spike?

Giải quyết sự không chắc chắn và rủi ro

Technical Spikes là cách tuyệt vời để loại bỏ sự không chắc chắn và rủi ro trong quá trình phát triển phần mềm. Hãy tưởng tượng bạn đang bước vào một khu rừng chưa từng khám phá, Technical Spikes giống như việc gửi một đội nhỏ đi trinh sát trước, giúp bạn nhận diện các nguy cơ tiềm ẩn và xác định con đường an toàn nhất trước khi cả đội tiến vào. Điều này giúp ngăn chặn những vấn đề lớn và tốn kém mà bạn có thể gặp phải sau này.

Thu thập kiến thức và thông tin kỹ thuật

Khi bắt đầu với công nghệ mới hoặc công cụ chưa quen thuộc, Technical Spikes là cách để nhóm của bạn trở thành những chuyên gia nhanh chóng. Nó giống như việc bạn có một chiếc bản đồ chi tiết và một cuốn sách hướng dẫn trước khi bắt tay vào cuộc hành trình. Bạn sẽ nắm rõ hơn về các công nghệ, hiểu cách chúng hoạt động và làm thế nào để tận dụng chúng một cách hiệu quả nhất.

Đánh giá các giải pháp hoặc phương pháp tiềm năng

Technical Spikes cho phép bạn thử nghiệm nhiều giải pháp khác nhau trước khi quyết định phương án tốt nhất. Hãy nghĩ về việc này như việc thử nhiều công thức nấu ăn trước khi chọn món ngon nhất cho bữa tiệc của bạn. Bằng cách thử nghiệm và so sánh các phương pháp khác nhau, bạn có thể chắc chắn rằng mình đã chọn được giải pháp hiệu quả và phù hợp nhất, giúp quá trình phát triển trở nên mượt mà và thành công hơn.

Giảm bớt sự mơ hồ trước khi cam kết triển khai hoàn chỉnh

Technical Spikes giúp nhóm của bạn có cái nhìn rõ ràng và chi tiết trước khi cam kết triển khai dự án. Giống như việc kiểm tra kỹ lưỡng mọi thứ trước khi khởi hành chuyến đi lớn, bạn sẽ biết chắc chắn rằng mình đã chuẩn bị đầy đủ và sẵn sàng đối mặt với mọi thử thách. Điều này không chỉ tăng cường sự tự tin mà còn đảm bảo rằng quá trình phát triển sẽ diễn ra suôn sẻ và đạt được kết quả mong muốn.

Khi nào nên sử dụng Technical Spike?

Bạn nên sử dụng Technical Spike khi nhận ra rằng một nhiệm vụ hoặc tính năng có sự không chắc chắn và bạn chưa rõ cách hoàn thành nó, khi nào hoàn thành, hoặc nếu hoàn thành thì liệu nó có đáp ứng yêu cầu kỹ thuật của các bên liên quan hay không.

Technical Spike được áp dụng khi cách duy nhất hoặc tốt nhất để tiến triển trong việc giải quyết một vấn đề là thử nghiệm với các giải pháp.

Dưới đây là một số tình huống phổ biến hàng ngày kích hoạt việc sử dụng Technical Spike:

  • Không thể ước lượng thời gian hoàn thành: Khi nhóm kỹ thuật không thể ước tính thời gian cần thiết để triển khai một nhiệm vụ, tính năng hoặc chức năng mà không hiểu rõ hơn về cách giải quyết nó.
  • Không thể phân chia nhiệm vụ: Khi nhóm kỹ thuật không thể phân chia nhiệm vụ thành các phần nhỏ hơn. Đôi khi, việc cố gắng giải quyết một phần của nhiệm vụ kỹ thuật phức tạp sẽ giúp phân chia nó thành các nhiệm vụ nhỏ hơn, dễ quản lý hơn, có thể ước tính hoặc phân phối cho các thành viên trong nhóm.
  • Nhiều giải pháp tiềm năng: Khi có nhiều giải pháp khả thi cho một vấn đề kỹ thuật và không rõ giải pháp nào là phù hợp nhất.
  • Thiếu hiểu biết về công nghệ mới: Khi nhóm chưa quen thuộc với công nghệ mà có vẻ là cách tốt nhất để giải quyết vấn đề.
  • Thiếu niềm tin của các bên liên quan: Khi các bên liên quan không tin tưởng vào giải pháp đề xuất của bạn.
  • Không đồng thuận trong nhóm: Khi nhóm không thể thống nhất về giải pháp tốt nhất.

Technical Spike giúp nhóm kỹ thuật xác định và giải quyết các yếu tố không chắc chắn, thử nghiệm các giải pháp khác nhau và đạt được sự hiểu biết cần thiết để tiến hành các bước tiếp theo một cách tự tin và hiệu quả.

Cách thực hiện Technical Spike như thế nào?

Thực hiện một Technical Spike giống như thực hiện bất kỳ nhiệm vụ nào khác mà nhóm của bạn cần làm. Các bước cụ thể như sau:

Nhận ra rằng bạn cần một Technical Spike

Trước hết, bạn cần nhận ra rằng mình cần một Technical Spike. Điều quan trọng là phải xác định nguyên nhân kích hoạt nhu cầu này, vì điều này sẽ ảnh hưởng đến cách bạn thực hiện các bước tiếp theo của Technical Spike.

Xác định tiêu chí chấp nhận

Tiếp theo, bạn cần xác định tiêu chí chấp nhận. Bạn cần kết quả gì? Bạn muốn đạt được loại hiểu biết nào? Tiêu chí này sẽ giúp bạn biết khi nào Technical Spike đã hoàn thành và có thể tiếp tục với các bước tiếp theo trong quá trình phát triển.

Đặt giới hạn thời gian

Thiết lập một khung thời gian hợp lý để đạt được đủ hiểu biết để quay lại với kế hoạch và ước lượng bình thường. Việc giới hạn thời gian giúp tập trung và tránh lãng phí thời gian vào các hoạt động không cần thiết.

Phân công thành viên nhóm

Quyết định ai sẽ thực hiện Technical Spike. Sẽ là toàn bộ nhóm hay chỉ một người? Điều này phụ thuộc vào tính chất và phạm vi của nhiệm vụ cần thực hiện.

Thực hiện

Bắt đầu thử nghiệm với các giải pháp. Cố gắng dành ít thời gian cho việc nghiên cứu và thảo luận bàn giấy, thay vào đó tập trung vào việc triển khai và thử nghiệm các giải pháp thực tế. Điều này giúp bạn có được những thông tin và kinh nghiệm thực tế quan trọng.

Ghi lại kết quả

Sau khi hoàn thành, hãy tài liệu hóa những gì bạn đã học được từ Technical Spike. Ghi chép cẩn thận giúp cả nhóm có thể xem lại và sử dụng thông tin này trong tương lai, đồng thời giúp cải thiện quá trình phát triển và ra quyết định.

Điều chỉnh nếu cần thiết

Đôi khi bạn có thể cần kéo dài thời gian của Technical Spike. Khi làm vậy, hãy chắc chắn điều chỉnh lại dựa trên những gì bạn đã học được để đảm bảo rằng thời gian bổ sung được sử dụng hiệu quả.

Technical Spike là một công cụ quan trọng giúp nhóm của bạn giải quyết các vấn đề kỹ thuật phức tạp và giảm bớt sự không chắc chắn. Bằng cách thực hiện theo các bước trên, bạn có thể tận dụng tối đa hiệu quả của Technical Spike và đảm bảo rằng dự án của bạn tiến triển suôn sẻ và đạt được kết quả tốt nhất.

Những điều cần tránh sử dụng Technical Spike

Tránh giải quyết một mình

Học tập trong silo (cô lập) không phải là cách tiếp cận tốt nhất khi thực hiện Technical Spike. Thay vào đó, hãy ghép cặp với một người khác và thử nghiệm các phương pháp khác nhau để giải quyết cùng một vấn đề. Ví dụ, nếu đang so sánh NHibernate và Entity Framework cho ORM, mỗi người nên nghiên cứu và lập trình độc lập, sau đó so sánh ghi chú của họ trong buổi họp hàng ngày sau standup. Điều này giúp mở rộng góc nhìn và giảm thiểu rủi ro của việc chỉ có một quan điểm.

Tránh chỉ đề xuất một giải pháp duy nhất

Đừng chỉ đưa ra một giải pháp do sự thiên lệch xác nhận (confirmation bias). Thay vào đó, hãy khám phá ít nhất hai giải pháp và tốt nhất là ba giải pháp. Việc này giúp đảm bảo rằng bạn đã xem xét các tùy chọn khác nhau và có cái nhìn toàn diện hơn về vấn đề cần giải quyết.

Tránh chia sẻ mà không đưa ra khuyến nghị

Đừng chỉ trình bày kết quả của bạn mà không đưa ra khuyến nghị vì sợ sự quyết đoán. Thay vào đó, hãy mạnh dạn và đề xuất giải pháp tốt nhất. Hãy nhớ rằng trong môi trường thiếu thông tin, người có hiểu biết sẽ có lợi thế. Hãy tự tin và đưa ra khuyến nghị của mình.

Tránh so sánh sản phẩm mà không so sánh hệ sinh thái sản phẩm

Đừng chỉ so sánh các sản phẩm mà không xem xét hệ sinh thái xung quanh chúng. Công cụ tốt nhất cũng trở nên vô dụng nếu không có những người sử dụng đúng cách. Thay vào đó, hãy bao gồm khía cạnh nguồn nhân lực trong đánh giá của bạn. Sử dụng Google Trends, LinkedIn và Meetup để điều tra xu hướng sử dụng và kích thước của nguồn nhân lực cho mỗi sản phẩm trong khu vực của bạn.

Tránh điều tra mà không chia sẻ

Sau khi hoàn thành Technical Spike, đừng giữ lại kết quả mà không chia sẻ với nhóm, dù quyết định có sử dụng giải pháp như NHibernate hay không. Thay vào đó, hãy tận dụng Technical Spike để rèn luyện kỹ năng thuyết trình kỹ thuật của bạn. Chia sẻ những phát hiện của bạn trong buổi họp hàng ngày sau standup hoặc trình bày kết quả của bạn vào cuối sprint.

Kết luận

Trong bối cảnh ngày nay, khi công nghệ ngày càng phát triển và yêu cầu người dùng ngày càng cao, việc sử dụng Technical Spikes là một chiến lược thông minh và hiệu quả để giảm bớt sự không chắc chắn và rủi ro trong quá trình phát triển phần mềm. Thực hiện các thử nghiệm nhỏ và có kiểm soát, nhóm phát triển có thể tăng cường hiểu biết về công nghệ, đánh giá các giải pháp tiềm năng và chuẩn bị tốt hơn cho quá trình phát triển chính thức. 

PMA luôn trân trọng sự tin tưởng và ủng hộ từ cựu học viên. Chính vì vậy, chúng tôi triển khai chính sách referral hấp dẫn dành cho tất cả các khóa học tại PMA
– Tặng ngay 300k cho cựu học viên giới thiệu thành công 1 khách hàng mới.
– Giảm ngay 300k cho học viên đăng ký học mà được cựu học viên giới thiệu.
Chia sẻ cơ hội học tập tuyệt vời này với bạn bè và đồng nghiệp của bạn ngay hôm nay!