The term "Enterprise" is used frequently in professional software development conversations. Many companies use "Enterprise" to describe products. For example, Microsoft products using the term "Enterprise," include Windows 2003 Enterprise, SQL Server 2005 Enterprise, or ISA Enterprise. But what does "Enterprise" really mean in the context of software development projects?
Dictionary.com defines Enterprise as "a project undertaken or to be undertaken, esp. one that is important or difficult or that requires boldness or energy."
"Enterprise" Software Development Projects and "Enterprise" Software Suites aim to solve especially difficult or complex problems of great importance. Since these are especially difficult problems, solving them will likely aggressively consume resources such as time, money, specialized skills, etc.
- 1 Physical Checking w/ several system accounts like payroll, office expenses, etc.
- Credit Card
- Customer Accounts
- Corporate Accounts for Project Funding
- Pension/Retirement Accounts
- Mortgages / Loans
- Investment Accounts
- Payroll (1000's of employees)
- Credit Cards
- Financial Planning (Billing)
- Broker (Billing)
Meeting the accounting needs of a small business such a family owed restaurant could easily be done with off-the-shelf accounting software such as Quickbooks or Microsoft Money. These products could manage a handful of physical bank accounts, inventory and invoicing. I've also known several small businesses to just use an Excel spreadsheet to mimic a check book register and call it good.
However, meeting the accounting needs of a large business such as a national bank is a large complex problem. Banks issues one or more accounts to their customers which must be tracked. Banks make money by loaning money to customers and charging interest. So these interest payments are deposited into an account belonging to the bank. Next, a large National Bank is likely to have thousands of employees which suggest separate accounts for payroll, retirement, etc. It is likely that a National Bank would offer services beyond savings and loan. For example, a National Bank may offer brokerage services and credit cards. These services are carefully tracked and reported on the bank's financial statements such as income statement and balance sheet.
It is clear that a National Bank has much information to keep track of from many sources. Put another way "Enterprise" Systems tend to manage much information/data from many sources.
In the case of our small business accounting system one Wintel PC could likely store many years worth of accounting information for that business. However, one Wintel PC would clearly not do the job for our National Bank. The National Bank has so much information to store which cannot be lost for legal reasons that we need to use redundant backed-up servers. Furthermore, it is probably safe to assume that a single employee in the accounting department of our National Bank cannot handle the entire accounting workload alone. As a result the likely infrastructure is an accounting team working together using accounting software installed on servers in a data center. These services are equipped to handle the volume of transactions and load of many users using the accounting system, all day and everyday as opposed to a small business with one user updating the system when he/she gets time.
A family run restaurant likely has one person managing the accounting records and security isn't likely to be a high concern. However, the National Bank has a legal responsibility to the bank's stakeholders to maintain the tightest security possible. Account balances and personal information associated with loans, checking accounts, etc. are confidential and illegal access to this information will sabotage the trust relationship between the bank and stake holders.
Finally, an accounting system is most likely not mission-critical to a family run business. The accounting system can most likely be a few days behind as long as the owners/manager knows how much money is in the account to keep suppliers and employees paid. However, if the accounting system crashes at the National Bank it can cost the bank millions of dollars. For example, invoices/bills may be late for mailing. Data could become old and corrupt causing a maintenance nightmare.
The term "Enterprise" in the context of software development means:
- Complex Problems
- Large amounts of data
- Mission Critical
- Strong Security
- Well Performing