One of the good things about consulting is end to end programming. Typically you're involved in the entire life cycle of the project.
From scoping a project out, to creating a Statement of Work, to designing the data model, the ETL, the OLAP cube, the reports, the Dashboard, perhaps integration with SharePoint, Active Directory, Security Groups, documentation and moving to production.
I prefer playing the role of Utility Player. I like to jump from task to task, wherever needed on any particular day.
A few weeks ago, I was working on a project, much of the ETL was already done, dozens of reports were in the process of passing Quality Assurance. I mentioned to the client that I could speed up the Crystal Reports. They asked how.
So they gave me a sample report, which was running slow, over 8 minutes. I did a few tweaks, all withing the Crystal Reports developer - no changes to the SQL pointing to the Business Object Universe, the report ran in 4 minutes. Shaved off 1/2 the time. Then I did a few more tweaks, and it ran in under 2 minutes. Shaved another 50% off.
The goal was to run under a minute, but the Production server should have more processors and memory, so I'm guessing it will meet the 1 minute requirement.
Now all the reports will get the same tweaks, and the run times should be much faster.
And then on to the next task.