1 पॉइंट द्वारा GN⁺ 2024-11-30 | 1 टिप्पणियां | WhatsApp पर शेयर करें

startup में अकाउंटिंग सिस्टम बनाते समय गलतियाँ न करें

  • fintech कंपनी में पैसे के प्रवाह को ट्रैक करना बुनियादी बात है। लेकिन कुछ startups में हर transaction पर कुछ cents छूट जाते हैं।
  • startups अक्सर "पहले इसे काम करने लायक बनाओ, फिर सही बनाओ, फिर तेज़ बनाओ" वाली सोच अपनाते हैं और double-entry bookkeeping system नहीं बनाते।
  • ऐसी गलतियाँ users की शिकायतों का कारण बनती हैं और कंपनी की growth में बाधा डालती हैं।
  • customer support team ने गलत transactions की भरपाई हाथ से करके समस्या सुलझाने की कोशिश की।

अकाउंटिंग सिस्टम का महत्व

  • पैसा चलते समय बनता है, और उसे ट्रैक करना जटिल होता है।
  • single-entry system फंड flow दिखाता है, लेकिन यह नहीं बताता कि ऐसा क्यों हुआ।
  • double-entry bookkeeping system पैसे के source और destination दोनों को ट्रैक करके इस समस्या को हल कर सकता है।

double-entry system का data model

  • double-entry system तीन entities से बना होता है: account, entry, और transaction।
  • account value में बदलाव को दर्शाता है, और entry accounts के बीच फंड flow को दिखाती है।
  • transaction यह सुनिश्चित करता है कि entries सही जोड़े में हों।

दो अकाउंटिंग सिस्टम

  • अकाउंटिंग सिस्टम बाहर से दिखने वाला ledger interface है, जबकि engineering system ledger का implementation है।
  • अकाउंटिंग सिस्टम को high availability और low latency चाहिए, जबकि engineering system को strong consistency और data accuracy चाहिए।

entry कैसे काम करती है

  • entry तीन में से किसी एक state में हो सकती है: pending, discarded, या posted।
  • entry हमेशा pending state में बनाई जाती है, और discarded entry को posted entry से बदला जा सकता है।

transaction कैसे काम करता है

  • transaction तभी post होता है जब entries post या discard की जाती हैं।
  • अगर transaction आंशिक रूप से fail हो जाए, तो उसे compensating entries के ज़रिए अर्थपूर्ण ढंग से रद्द किया जा सकता है।

account कैसे काम करता है

  • account कई entries से जुड़ा होता है, और total balance सभी entries के individual balances के योग के बराबर होना चाहिए।
  • account के normal balance के अनुसार total balance निकालने का तरीका बदलता है।

निष्कर्ष

  • ledger एक कठिन computer science समस्या का स्पष्ट उदाहरण है, जो खुद को non-technical क्षेत्र के रूप में छिपाए रखती है।
  • double-entry system बनाना सही context के बिना कठिन है, लेकिन इसके ज़रिए बेहतर निर्णय लिए जा सकते हैं।

1 टिप्पणियां

 
GN⁺ 2024-11-30
Hacker News राय
  • Synapse के ग्राहकों के मामले में बहुत सारा पैसा गायब हो गया। बैंकों को धन के प्रवाह को सख्ती से मैनेज करना चाहिए, लेकिन fintech कंपनियां सभी फंड्स को FBO accounts में इकट्ठा करके उन्हें ट्रैक करने के लिए एक ledger बनाती हैं। Synapse के मामले में ledger में दर्ज ग्राहक बैलेंस, वास्तविक FBO accounts में मौजूद धन से अधिक था। यह धोखाधड़ी से ज़्यादा एक दोषपूर्ण ledger की वजह से हुआ लगता है। fintech deposit accounts में पैसा न रखें और वास्तविक बैंक का उपयोग करें। fintech अक्सर दावा करते हैं कि deposits पर FDIC insurance है, लेकिन यह सुरक्षा केवल तब लागू होती है जब आधारभूत बैंक दिवालिया हो जाए।

  • Google में काम करते हुए यह सीखा कि reliability या accuracy की कीमत पर scalability हासिल की जाती है। जब आप लाखों queries संभालते हैं, तो कुछ fail हो सकती हैं, और यह engineering mindset के अंतर को दिखाता है। Gmail खोलते समय अक्सर error आ जाता है, लेकिन user refresh करके समस्या हल कर लेते हैं। अगर storage durability 99.99999% है, तो 2 अरब ग्राहकों में से 200 लोगों को असुविधा हो सकती है।

  • engineering leadership में domain knowledge के महत्व पर ज़ोर दिया गया। अगर आप किसी financial company में काम करते हैं, तो finance की समझ ज़रूरी है; यही बात journalism या commerce पर भी लागू होती है। सफल organizations tech team interviews में domain से जुड़े non-technical सवाल भी शामिल करते हैं।

  • सही लोगों को hire करना महत्वपूर्ण है। data structures और algorithms अच्छे से जानने वाले लोगों को hire करने से ज़्यादा ज़रूरी है ऐसे लोगों को hire करना जो वास्तव में ज़रूरी चीज़ें बना सकें। engineers के लिए दूसरे क्षेत्रों की शिक्षा लेना मददगार हो सकता है। problem solving और engineering, industry की गहरी समझ और experts के साथ collaboration से आगे बढ़ती है।

  • इंटरनेट/telecom startup में billing system बनाने का अनुभव साझा किया गया। billing logic को दो जगह बनाया गया था, इसलिए उन्हें sync में रखना मुश्किल था। errors रोकने के लिए invoices को manually review किया जाता था, और double logic के ज़रिए भी गलतियां रोकी जाती थीं। इस अनुभव से double-entry bookkeeping के महत्व को समझने में मदद मिली।

  • single-entry accounting systems के समर्थन में कई राय हैं। single-entry accounting आसान हो सकती है, लेकिन double-entry bookkeeping का उपयोग करना बेहतर है। programmers के लिए accounting से जुड़े resources खोजे जा रहे हैं।

  • "make it work, make it right, make it fast" सिद्धांत को लेकर गलतफहमी है। "make it right" दूसरा चरण है, और जब तक system सही तरह काम न करे, तब तक काम रुक जाता है। optimization सभी समस्याएं हल होने के बाद ही शुरू होती है।

  • अगर testing नहीं है, तो transactions में पैसा खोने जैसी समस्या हो सकती है। financial systems बनाते समय ऐसी समस्याओं को सामान्य मानना गलत है।

  • अगर आप बैंक के किसी हिस्से को फिर से बनाना चाहते हैं, तो पहले से verified systems को देखना बेहतर है। उदाहरण के लिए, अमेरिका की small और mid-sized financial institutions में इस्तेमाल होने वाले core banking deposit transaction schema को देखा जा सकता है।

  • पैसे को संभालने वाला software बहुत सावधानी से संभालना चाहिए, और अतीत की गलतियों को पहचानना ज़रूरी है। UK Post Office scandal इन समस्याओं के वास्तविक नतीजों को दिखाता है।