Do you look at reports more than code?

It was my first job fresh out of university. I was excited and ready to rock and roll. They gave my a bunch of specification documents to read and a bunch of monthly reports. My primary task then was to make sure the monthly reports come out “normal”.

The definition of “normal” was to make sure the numbers in those reports don’t vary too much from last month’s reports. We’re talking 5 to 7 digits of debt value here.

As I continued working in the corporate environment, I found the production of reports to be extremely important. Inputs go in at one end, such as telephone call lengths, number of text messages, ringtones bought, Internet connection length via satellite, number of emails sent. In the middle, we process them according the price plans the company had set. At the end, we calculate how much we need to bill the customers, or how much profit we share with partners, or how much the customers of our customers had used.

The end users don’t want SQL statements. They want a report, usually a PDF or Excel spreadsheet.

At the start of my corporate programming career, I was proficient in generating PDF reports using Crystal Reports. That’s just a weird turn of events. My team manager had enough front-end programmers for web development work. He also had enough back-end programmers for the number crunching price/settlement plan calculations. But he needed someone who can turn the results of those calculations into beautiful reports. That’s where I come in.

Then I left the company for a startup. It was something to do with searching patent information. No reports there, but we still needed to present the results to the customer.

Then I left the startup (cough) for a small development firm. I was assigned to a team doing enterprise software for a company. I had to go through a fingerprint scanner every time I needed to go to the loo (I’m not kidding). Lots of reports too (no, not about toilet visiting frequencies).

Then I went back to the first company I worked for. I went to another team. This time, the users of that team wanted their reports in Excel spreadsheets instead of PDFs. Why? Because they can work with the numbers inside.

They can work with the numbers to generate their own charts if they want to. They can sort if they want to (you can’t sort data in PDFs). They can swap columns if they want to. They can highlight values if they want to.

And then I understood something. Data trapped in a database is useless, unless it can be meaningfully presented to someone who cares about it.

Does your brand new startup website/service/product allow your customers to get their information easily (and in a meaningful manner)?

A Twitter feed in RSS/XML format is not useful if your customers don’t know how (or want) to format it into something readable. A straightforward database dump might not be useful if there are multiple relationships between tables. Those high score values won’t be meaningful if they were hidden among heaps of columns of irrelevant data to your gamer customers.

Also, it’s currently tax season and the start of the financial year for some companies. Lots of reports needed. I’m currently running a promotion for a software library (that I wrote) that generates Excel reports. Check it out here if you want. Until 16 April only.

In the age of the Internet, information is aplenty. Making all that information meaningful is harder. Writing code to present data is just as important as writing code to receive and crunch and manipulate data.

Financial reports must be untouched by human hands

People handling billing or financial data are usually very uptight. Especially when it comes to numbers. If you thought mathematicians, statisticians or economists were protective of their numerical figures, go talk to someone who works in the financial department.

PI is an elegant number. It goes to about 3.14159265, and describes the ratio of the circumference of a circle to its diameter. It doesn’t mean much to a finance person though.

But the bits have mercy if their report shows that there’s a $3.14 missing.

Sometimes, in the course of my work, I get requests to dump data from the database. Well, more like generating ad-hoc reports based on whatever was needed. Excel seems to be the preferred output format, since it displays all the data in nice little columns and rows. And let’s face it, the user is probably more skilled in Excel macros and functions than you and I are. Let them do their little calculations and predictions and pie charts, I say.

But noooo… Finance people will have none of that.

“I cannot manipulate data.” was the usual answer.

Wait, when I churned out those data, wasn’t I manipulating data, of sorts? I was doing SUMs, GROUP BYs and ORDER BYs with the database queries. If the user wanted a sum over that particular column, and I didn’t provide it, just use the inbuilt Excel sum function.

“Oh no, I cannot manipulate data.”

Apparently, whatever financial reports must be completely generated by the computer. All financial reports must be untouched by human hands. Let’s hope you got that algorithm right. Wait, aren’t you human? Would that mean the reports went through human hands?

Comparisons using the eyeball check

Back when I first started working, one of my duties every month was to check reports. Yes, I know it says “Systems Analyst” on my job title then. Thank you for pointing that out. Don’t new staff often take on all sorts of miscellaneous duties like that?

As I was saying, I was to check reports (some financial data was involved). The users would check them of course. We’re just checking them (the report generator program was written by us) before handing the reports to them. Basically, it’s to make sure the numbers tally for the sections that they’re meant to be the same.

Now the reports were PDFs. In order to save paper (and more importantly, not keep so much paper physically), I check them on the computer screen. My colleague taught me a simple trick. Use Alt-Tab.

Open the first report and maximise it on the screen. Open the second report and maximise it on the screen too. Then I Alt-Tab between the 2 reports, flipping rapidly to make sure the numbers were identical, then paging to the next on both report, and so on and so forth.

I’m not understanding the content of the page, I’m using visual recognition. As in that’s not really a zero that’s registering in my brain. More like a slightly vertically elongated circle. I’m not comparing words and numbers. I’m comparing pixels.

PDFs aren’t diff-able (at least not that I know of). And it turns out that comparing PDFs using the eyeball check is exceedingly simple (albeit manual and tedious) with the Alt-Tab trick. It’s like facial recognition. Humans are good at recognising faces. We haven’t gotten computers to do on par though…

P.S. In case you don’t know about Alt-Tab, on Windows (hi Mac user!), when you hold the Alt button and tap the Tab button, the window just before your current window pops up. So I open the first report, then open the second report. The first report is on the window just before the second report’s window. Alt-Tab once to bring the first report into focus, pushing the second report back. Repeated Alt-Tabbing simply cycles between the 2 most “current” of the windows, in our case, the 2 reports.