I have worked for two consulting firms. Neither of them had any budget for work that wasn't billable directly to a client.
At the first, Medior Inc. of San Mateo (later acquired by AOL), I invented a novel, lossless bitmap compressor as a result of our running out of space for the "assets" on a multimedia CD-ROM.
However my invention was purely conceptual. I needed time to actually implement it, as well as to design the file format.
I had quite a hard time convincing the management to let me do that. Eventually they came around because they realized the expense of my time could qualify for the US IRS Research Tax Credit (not a deduction, credits are better).
However, they gave me precisely three weeks. While I did get my code to work really well, I could have gotten it to work a lot better, had I been given more than three weeks. For example I only supported 8-bit images. It would have been straightforward to handle 24-bit, but Medior didn't give me time to look into that.
I myself am a one-man consulting firm. I spend a lot of my own time on "lab" work, that's not billable to a client. I regard that as a good use of my time.
Working for a larger consulting firm has its merits, but I'm not so sure I'd ever want to work for another one, for the specific reason that my value to my employer, is regarded as whatever hours they can bill to our clients.
I can see the point of not wanting your coders to totally bail out of a customer job when your firm needs to make a milestone, or when your client needs a deliverable so _they_ can pay their bills.
There should be some way to structure and budget at least _some_ employee time that does not go directly towards client deliverables. Consider that my compressor was used in many subsequent projects for clients; we were also able to bid on jobs that would otherwise have required too many assets.
So in reality, my three weeks of work ultimately resulted in billable hours to clients, but not at the time I performed the work.
One more thing - these days it is quite rare to perform on the job training. That's a huge mistake.
At the very least, purchase a corporate technical library, like the O'Reilly and Addison-Wesley books for each of the technologies you use. Also encourage the employees to actually read them.
Consider that I once worked for a hedge fund that had at least one hundred man-years of C++ source code. However their real-time online trading system was always falling on the floor, thereby costing them tens of millions of dollars per year. When I hired on, they emphasized the importance of reliability.
But when I visited to integrate my code - I worked remotely - their head coder pointed at something in my source then asked "What's that?"
"It's a C++ initialization list."
This led to me spending a couple hours teaching the guy who ran their entire development shop, some of the very most-basic concepts in C++. For him not to know what a C++ initialization list was, was like it would be for a Perl coder not to know what a regular expression is.
Lots of coders are able to get jobs, and even produce acceptable code without knowing a whole lot about their craft. That is to be expected, I wasn't born with my degree in Physics. Encourage your people to learn. They will be happier, and your firm will prosper.
At the first, Medior Inc. of San Mateo (later acquired by AOL), I invented a novel, lossless bitmap compressor as a result of our running out of space for the "assets" on a multimedia CD-ROM.
However my invention was purely conceptual. I needed time to actually implement it, as well as to design the file format.
I had quite a hard time convincing the management to let me do that. Eventually they came around because they realized the expense of my time could qualify for the US IRS Research Tax Credit (not a deduction, credits are better).
However, they gave me precisely three weeks. While I did get my code to work really well, I could have gotten it to work a lot better, had I been given more than three weeks. For example I only supported 8-bit images. It would have been straightforward to handle 24-bit, but Medior didn't give me time to look into that.
I myself am a one-man consulting firm. I spend a lot of my own time on "lab" work, that's not billable to a client. I regard that as a good use of my time.
Working for a larger consulting firm has its merits, but I'm not so sure I'd ever want to work for another one, for the specific reason that my value to my employer, is regarded as whatever hours they can bill to our clients.