How do we achieve our design principles? Let's start by looking at the two building blocks used in software (this parallels life):
• Masters: Masters are what we get when we ask
'with whom?' With whom do we do business? Our
customers and suppliers. 'With what?' - As in
what do we transact with - services & inventory.
'Using what?' – give us taxes, units of measure,
currency, batches. All these become 'masters'.
• Transactions: What do we do with masters? We
transact – sales, purchases, receipts, payments -
these
are the 'transactions' records of the
business activities we perform.
|
|
|
When transactions are recorded, they create links - as in making a payment for purchase #72. The purchase reference #72 links these two documents, so we can get to know the payment status for that document, and know for which documents we have made payment. These links are called 'link masters'.
Neither masters nor transactions are truly in the hands of the software product - in the sense that these are defined by business practices. What must be captured, what is mandatory and that business transactions need to be recorded are not subject to 'design' ('how' these are done, is another matter!) What is unique is in the way these interactions are recorded, managed and reported upon.
The 'magic' of Tally is in the Link Masters - here, data of which transaction is linked to which document is maintained. The transactions themselves do not carry this information - effectively each document is an 'island' in itself, making it easy to alter, delete or insert at will - without the need to check if other transactions it refers to, exist at any time. This design permits all the flexibility required, supports incremental implementation and permits transactions to be recorded in any order (pay for purchase #72 first, then enter purchase #72).
While generating reports and totals (any totals) the above approach requires immense computing power to 'stitch' transactions together. We have developed proprietary, extremely high performance data storage & retrieval mechanisms to deliver these at very usable speeds. This architecture also allows you to mark transactions as 'optional', perform scenarios, synchronise data with branches, potentially recover from system errors, correct any errors in any transaction - anytime, report on ‘group’ companies and so many capabilities unique to Tally.ERP 9.
|