1 điểm bởi GN⁺ 2024-11-30 | 1 bình luận | Chia sẻ qua WhatsApp

Tránh mắc sai lầm khi xây dựng hệ thống kế toán trong startup

  • Với một công ty fintech, việc không bỏ sót dòng tiền là điều cơ bản. Tuy nhiên, ở một số startup, đã xảy ra tình trạng thất thoát vài cent trong mỗi giao dịch.
  • Các startup thường theo triết lý "làm cho nó chạy được, làm cho nó đúng, rồi làm cho nó nhanh" và không xây dựng hệ thống ghi sổ kép.
  • Những sai lầm này dẫn đến sự bất mãn của người dùng và cản trở sự tăng trưởng của công ty.
  • Đội ngũ hỗ trợ khách hàng đã cố giải quyết vấn đề bằng cách bồi hoàn thủ công cho các giao dịch bị sai.

Tầm quan trọng của hệ thống kế toán

  • Tiền được tạo ra khi nó di chuyển, và việc theo dõi điều đó rất phức tạp.
  • Hệ thống ghi sổ đơn có thể cho thấy dòng tiền, nhưng không thể giải thích lý do.
  • Hệ thống ghi sổ kép có thể giải quyết vấn đề bằng cách theo dõi cả nguồn gốc lẫn đích đến của tiền.

Mô hình dữ liệu của hệ thống ghi sổ kép

  • Hệ thống ghi sổ kép gồm ba thực thể: tài khoản, bút toán và giao dịch.
  • Tài khoản biểu thị sự thay đổi về giá trị, còn bút toán biểu thị dòng tiền giữa các tài khoản.
  • Giao dịch đảm bảo các bút toán luôn được ghép cặp đúng cách.

Hai hệ thống kế toán

  • Hệ thống kế toán là giao diện của sổ cái nhìn từ bên ngoài, còn hệ thống kỹ thuật là phần triển khai của sổ cái.
  • Hệ thống kế toán đòi hỏi tính sẵn sàng cao và độ trễ thấp, trong khi hệ thống kỹ thuật đòi hỏi tính nhất quán mạnh và độ chính xác dữ liệu.

Cách bút toán hoạt động

  • Bút toán có thể ở một trong ba trạng thái: chờ xử lý, hủy bỏ hoặc ghi nhận.
  • Bút toán luôn được tạo ở trạng thái chờ xử lý, và bút toán bị hủy có thể được thay thế bằng bút toán đã ghi nhận.

Cách giao dịch hoạt động

  • Giao dịch chỉ được ghi nhận khi các bút toán được ghi nhận hoặc bị hủy.
  • Nếu giao dịch bị lỗi một phần, có thể hủy nó về mặt ngữ nghĩa bằng một bút toán bù trừ.

Cách tài khoản hoạt động

  • Tài khoản được liên kết với nhiều bút toán, và tổng số dư phải khớp với tổng các số dư riêng lẻ của tất cả bút toán.
  • Cách tính tổng số dư khác nhau tùy theo số dư thông thường của tài khoản.

Kết luận

  • Sổ cái là một ví dụ rõ ràng về một bài toán khoa học máy tính khó, được ngụy trang dưới một lĩnh vực tưởng như phi kỹ thuật.
  • Xây dựng hệ thống ghi sổ kép là việc khó nếu thiếu ngữ cảnh phù hợp, nhưng nó giúp đưa ra các quyết định tốt hơn.

1 bình luận

 
GN⁺ 2024-11-30
Ý kiến trên Hacker News
  • Với khách hàng của Synapse, rất nhiều tiền đã biến mất. Ngân hàng phải quản lý chặt chẽ dòng tiền, nhưng các công ty fintech lại gom toàn bộ tiền vào tài khoản FBO rồi xây dựng một sổ cái để theo dõi. Trong trường hợp của Synapse, số dư khách hàng được ghi trong sổ cái lớn hơn số tiền thực tế có trong tài khoản FBO. Nhiều khả năng đây là do sổ cái lỗi hơn là gian lận. Khuyến nghị không gửi tiền vào tài khoản tiền gửi của fintech mà nên dùng ngân hàng thực sự. Fintech thường tuyên bố tiền gửi được bảo hiểm FDIC, nhưng điều này chỉ bảo vệ khi ngân hàng nền tảng bị phá sản.

  • Khi làm việc ở Google, người ta học được việc đánh đổi độ tin cậy hoặc độ chính xác để lấy khả năng mở rộng. Khi xử lý hàng triệu truy vấn, một số có thể thất bại, và điều đó cho thấy sự khác biệt về tư duy kỹ thuật. Khi mở Gmail, lỗi xảy ra khá thường xuyên nhưng người dùng chỉ cần làm mới để xử lý. Nếu độ bền của hệ thống lưu trữ là 99.99999%, thì trong 2 tỷ khách hàng vẫn có thể có 200 người gặp bất tiện.

  • Nhấn mạnh tầm quan trọng của kiến thức miền trong vai trò lãnh đạo kỹ thuật. Nếu làm ở công ty tài chính thì cần hiểu về tài chính; điều này cũng đúng với báo chí hay thương mại. Các tổ chức thành công đưa cả những câu hỏi phi kỹ thuật liên quan đến lĩnh vực vào vòng phỏng vấn đội ngũ kỹ thuật.

  • Việc tuyển đúng người là rất quan trọng. Thay vì tuyển người chỉ giỏi cấu trúc dữ liệu và thuật toán, nên tuyển người có thể thực sự xây dựng thứ mình cần. Việc kỹ sư được đào tạo ở các lĩnh vực khác cũng có thể hữu ích. Giải quyết vấn đề và làm kỹ thuật đến từ sự hiểu biết sâu về ngành và sự hợp tác với các chuyên gia.

  • Chia sẻ kinh nghiệm xây dựng hệ thống tính cước tại một startup internet/viễn thông. Logic tính cước được xây ở hai nơi nên rất khó giữ đồng bộ. Họ phải rà soát hóa đơn thủ công để tránh lỗi, và dùng logic kép để ngăn sai sót. Trải nghiệm này giúp họ hiểu tầm quan trọng của kế toán kép.

  • Có nhiều ý kiến ủng hộ hệ thống kế toán ghi đơn. Kế toán ghi đơn có thể dễ hơn, nhưng tốt hơn là nên dùng kế toán kép. Đang tìm tài liệu kế toán dành cho lập trình viên.

  • Có sự hiểu sai về nguyên tắc "make it work, make it right, make it fast". "make it right" là bước thứ hai, và công việc sẽ dừng lại cho đến khi hệ thống hoạt động đúng. Việc tối ưu hóa chỉ bắt đầu sau khi mọi vấn đề đã được giải quyết.

  • Nếu không có kiểm thử, có thể phát sinh vấn đề làm mất tiền trong giao dịch. Khi xây dựng hệ thống tài chính, việc coi những vấn đề như vậy là bình thường là sai lầm.

  • Nếu định tái tạo một phần của ngân hàng, tốt hơn nên tham khảo các hệ thống đã được kiểm chứng. Ví dụ, có thể tham khảo schema giao dịch tiền gửi của hệ thống core banking đang được dùng tại các tổ chức tài chính vừa và nhỏ ở Mỹ.

  • Phần mềm xử lý tiền phải được tiếp cận hết sức cẩn trọng, và cần nhận thức các sai lầm trong quá khứ. Vụ bê bối của Bưu điện Anh cho thấy hậu quả thực tế của những vấn đề này.