Khi nào Cần tự động hóa và Tại sao?
Bài đăng này đã không được cập nhật trong 3 năm
Trong bất kỳ vòng đời của dự án nào, mục tiêu của chúng ta là nên tự động hóa tất cả các hoạt động được lặp lại trong suốt quá trình phát triển và bảo trì hệ thống. Việc áp dụng Ruthless automation chính là apt để tự động hóa các nhiệm vụ như vậy.
Trong một dự án, thường vì deadline chặt hoặc không để ý, chúng ta thường có xu hướng bỏ qua hoặc không xác định được các công việc được làm bằng tay được lặp đi lặp lại.
Tôi sẽ chia sẻ cho các bạn câu chuyện của tôi, tôi đã xác định và tự động hóa công việc như thế nào, để giảm thiểu các công việc làm bằng tay, hạn chế lỗi bị bỏ sót cũng như nâng cao chất lượng công việc.
Tôi làm việc cho một trang web marketing, nó đòi hỏi sự tương tác dữ liệu khá phức tạp và bạn phải luôn ở trong tình trạng luôn luôn sẵn sàng.
Dưới đây là một vài tình huống mà tôi đã gặp phải, và tôi đã cố gắng để tự động hóa chúng một cách rất là vất vả như thế nào.
Thiết lập dữ liệu kiểm thử, lặp đi lặp lại!
Khó khăn
Môi trường test rất đa dạng: SIT, Integration, UAT, etc... Với mỗi tính năng mới, chúng tôi phải thực hiện test, kiểm tra và validate việc hoạt động của chức năng mới trên toàn bộ các môi trường. Mỗi khi có một tính nănng mới được phát hành, tôi phải thiết lập dữ liệu kiểm thử trên rất nhiều môi trường khác nhau. Mặc dù tôi có thể sử dụng REST plugins có trình duyệt (như POSTMAN), nhưng rất khó để có thể theo dõi, kiểm soát được toàn bộ dữ liệu cho 1 tính năng. Ngoài ra, chúng tôi lại cung cấp trên từng môi trường để xóa dữ liệu. Với việc dọn dẹp dữ liệu như thế, tôi lại phải thiết lập dữ liệu thêm một lần nữa. Thêm vào đó, nó đã trở nên rấ khó khăn khi tải lên nhiều biến thể của cùng một dữ liệu. Đây là điều tôi không bao giờ ngờ tới.
Biện pháp khắc phục
Tôi đã viết 1 kịch bản nhỏ để giải quyết vấn đề của tôi. Với kịch bản này, tôi có thể tải lên nhiều biến thể của dữ liệu cho bất kỳ môi trường nào được hỗ trợ và cũng vì thế, tôi cũng dễ dàng theo dõi được phiên bản dữ liệu được trình bày trên môi trường.
Định dạng dữ liệu khác nhau
Là một trang web về marketing, tạo các nội dung là nhiệm vụ quan trọng hàng ngày. Xây dựng nội dung đã được đóng góp bởi những đội khác nhau. Để hỗ trợ các định dạng khác nhau, chúng tôi đã có một bộ chuyển đổi để chuyển đổi dữ liệu trung gian.
Khó khăn
Điển hình cho việc sáng tạo nội dung chính là tạo ra dữ liệu sử dụng các công cụ khác nhau và các định dạng dữ liệu khác nhau giữa những công cụ này. Họ luôn luôn ưa thích dữ liệu trong bảng tính. Lấy dữ liệu từ những định dạng khác nhau cho người sáng tạo nội dung, tự lấy dữ liệu JSON từ hệ thống và định dạng dữ liệu cho Excel là một công việc tẻ nhạt.
Biện pháp khắc phục
Một kịch bản nhỏ để chuyển đổi dữ liệu giữa các định dạng là tất cả những gì cần thiết. Với kịch bản này, tôi đã có thể chuyển đổi JSON vào CSV, một công việc mất rất nhiều thời gian nhưng tôi đã có thể phục vụ theo yêu cầu của tác giả nội dung một cách nhanh chóng.
Gỡ rối với Xem trước và ngăn xếp trực tuyến
Như đã nói ở trên, tạo nội dung là một công việc thường xuyên và các tác giả cần được xem lại trước khi chúng được đưa vào một ngăn xếp sẵn sàng. Chúng tôi đã có Xem trước và Môi trường trực tuyến. Đối với mỗi nội dung, kiểm tra tính đầy đủ sẽ quyết định xem trang sẽ được đăng tải hay là không.
Khó khăn
Xem trước và môi trường trực tuyến đóng một vai trò quan trọng trong việc tạo ra nội dung. Chỉ một số các thông số trong một đối tượng JSON khổng lồ cùng với những ngày khác nhau sẽ lái quá trình chuyển đổi từ Preview to Live. Việc tạo ra dữ liệu khổng lồ thường xảy ra, dẫn đến việc tạo nội dung sẽ phải đối mặt với nhiều vấn đề với dữ liệu được hiển thị trên môi trường Xem trước và không hiển thị trên môi trường trực tuyến.
Trong khi gỡ lỗi, để đạt được một kết luận nào đó tôi cần phải kiểm tra dữ liệu JSON. Đi qua từng tham số trong mỗi phản ứng một cách thủ công rất tốn thời gian. Tôi đã bỏ lỡ một số các tham số thúc đẩy xuất bản quan trọng. Ngoài ra, định dạng ngày tháng lại không thể đọc được.
Biện pháp khắc phục
Tôi đã làm một lưu ý cho các bước lặp đi lặp lại và viết một kịch bản cho các trường hợp giống nhau. Tham khảo ý chính cho kịch bản, trong đó đã đưa ra một tệp in json công bố các thông số điều khiển và tình trạng của chúng dưới định dạng thân thiện, dễ hiểu.
Trên đây là một số kinh nghiệm của tôi. Bạn đã get được idea chưa?
Tổng kết
Khá ít người trong chúng ta là không do dự khi thử những hình thức trên bởi vì chúng ta muốn tự mình nhanh chóng hoàn thành nhiệm vụ. Nhưng theo kinh nghiệm của tôi, thêm một chút thời gian dành cho việc tự động hóa những thứ chúng ta làm nhiều lần, có thể tiết kiệm rất nhiều thời gian và công sức trong thời gian dài.
Chắc chắn sẽ có những chi phí liên quan trong việc tạo ra và duy trì các nhiệm vụ như vậy. Nhưng tôi ủng hộ việc tự động hóa tác vụ theo lỗi của con người.
Có rất nhiều điều trong dự án mà chúng tôi cố gắng để tự động hóa. Phải mất thời gian để xây dựng và chịu nỗ lực để duy trì, nhưng tất nhiên nó mang lại lợi ích. Chi phí - phân tích giá trị gia tăng và lập bản đồ của tất cả những điều bạn muốn để tự động hóa là rất quan trọng - điều này giúp trong việc ưu tiên tất cả các công việc tự động hóa, đảm bảo các sản phẩm đều đã được kiểm tra.
Không cần phải nói gì thêm - kiểm tra các kịch bản tự động bạn viết vào kiểm soát nguồn. Chia sẻ tình yêu - đảm bảo tất cả các thành viên trong nhóm của bạn sử dụng cùng một quá trình thực hiện nhiệm vụ thường xuyên, và họ có thể đóng góp sửa chữa và cải tiến.
Nói tóm lại, đây là những takeaways:
Suy nghĩ trước khi bạn lặp lại!
Nếu bạn đang làm điều tương tự hơn và hơn nữa, hãy dừng lại và suy nghĩ “Tôi có thực sự cần phải lặp lại các bước tương tự nữa không?”. Đó có thể là một ứng cử viên tốt cho việc tự động hóa.
Đừng cố gắng để tự động hóa tất cả mọi thứ cùng một lúc!
Khi bạn đang viết một số kịch bản, thực hiện các bước nhỏ. Hãy nghĩ, “điều tối giản tôi muốn ngay lúc này là những gì!”. Phải xầy dựng từ những điều đơn giản thì mới có các sản phẩm phức tạp.
Kiên nhẫn!
Bạn sẽ phải đấu tranh để tìm thấy những gì bạn cần, hãy kiên nhẫn và tiếp tục làm việc cho đến khi bạn nhận được nó! Đừng bỏ cuộc, sẽ có ánh sáng ở cuối đường hầm dài.
Tự động hóa mọi thứ!
Vâng, đó là niềm vui! Bạn giảm thời gian cần cho các nhiệm vụ lặp đi lặp lại, tăng tốc độ mọi thứ và sẽ học hỏi được nhiều hơn!
Nguồn: https://www.thoughtworks.com/insights/blog/when-to-automate-and-why
All rights reserved