“The Financial System manages all of our financing contracts, comprising both assets and liabilities. It
registers operations on a daily basis, control balances and transfers, and generate the next installments
of all contracts. It is heavily based on an event-driven mechanism that implements the usual concepts such as
interests and amortization. The system is able to perform
calculations using different amortization systems, including the French System of Amortization and the
Constant Amortization System.
In addition, the system also has an automatic interface with the Accounting System, which is responsible
to do all the business bookkeeping stuff: register debits and credits, allow cash flow management,
generate financial reports and data for audit purposes.
We´re launching a new product, the Investment Protection Fund (IPF). This fund is expected to minimize credit risks,
helping eliminate the difficulty of providing collateral, which is a major obstacle that many small companies often face.
Your job is to provide the Financial and Accounting systems with all the infrastructure to fully support the
new fund. Do you think we can do it with a good Time to Market?”
You, the lead software developer in charge of the project, look at your manager (trying to disguise the
rather puzzled look on your face) and say: “Well… ” (a little pause) “…yes, we sure can.”
And then you leave your office freaking out, in a rush to buy all the books you can on accounting and financing.
Well, since you first joined the company, two years ago, you knew all along you were in a company whose core business was all about financing and accounting. But, since then, you always managed to get by knowing almost
nothing of the business domain your software was inserted. Now you have to rush to catch up with the lost time.
What´s the point of this story? Despite being overly dramatic, the story´s bottom line is: get to know your business domain! That´s one of the tips of Chad Fowler in his book (Understand Business Basics). However, let´s make it a little more challenging: get to know the nuts and bolts of your business domain. Read books on the topic, do courses, ask your clients to explain their work to you…
To be a great software developer for your company, you need to understand the business of your company. You need to speak the language of the domain in order to understand what your clients want (and many times they don´t know what they want).
I´m developing/maintaining software systems in those fields of finances/accounting used as an example at the beginning of this post. Since I entered the company, I set out to master the business domain of my applications. I still have a long way to go, but I´m feeling really excited to study those subjects and, as a consequence, work more effective, confident and efficiently.
“Do you see a man skilled in his work?
He will serve before kings;
he will not serve before obscure men.” (Proverbs 22:29)