Over the many years that I have been a consultant, I (like many in my shoes) have found a variety of things that add up to "my job" as well as keep me from getting bored. I know many many developers who have gone out on their own in the past few years and many others who are contemplating it. In fact, when I lead a Birds of a Feather session called "Going Solo" at PDC in the fall, the room was overflowing with those who were "indy-curious" and those who were already solo and wanted to share their advice & experience. You can follow up on that on the ASPAdvice Birds of a Feather forums that were set up after the fact (here is a link to the Going Solo forum.)
I do know consultants who are very good at focusing and work on one and only one thing at a time. If you know me, then you would understand that the concept of focus is laughable. I sometimes wonder if ADD had been as popular in my youth as it is now if I would have been diagnosed with it.
One thing that has helped me enormously over the years is client retention. I have a number of clients that I have been working for consistently (or on and off) for many years. In fact, my very first-ever programming client is STILL a client of mine - and that began nearly 20 years ago! I have a client that I have been working with for 14 years and another that I have been writing custom apps for on an ongoing basis for 10 years.
This is possible because I have developed very good personal and working relationships with my clients. I understand their businesses inside and out and they trust me implicitly to help them with many technical decisions that affect their business. In some cases, the relationship has evolved in such a way that my opinion is solicited on things that are not even related to technology.
This relationship does not happen overnight and you can't walk into a client expecting this, but you can most certainly use your judgement to gauge whether you should just keep your mouth shut and write the code or if your insights beyond the code are welcome. I walk into clients as a consultant first, not as a coder. So whether I am advising them about the future of a model where they are creating thousands of individual excel files annually (yikes! get that man a database!!) or helping them find the most palatable way of designing apps that will have buy-in with their field technicians, I can do this because I understand their business.
This has helped me evolve a new arrow in my quiver of all that adds up to my job. That is the dream job of mentoring other companies who are writing software. I love learning about how businesses work and I love solving problems and I have so much information in my head that I don't necessarily get to use in my own work. So this is enormous fun for me. Yet, it's still a very small portion of my business, and therefore, just another piece of the puzzle.
Not all of my work is specifically about building applications. Many years ago, I wrote an application for a client to generate monthly reports. How long ago? Well, the actual print module is in FoxPro 2.5 for DOS (which still works on Windows XP - thank you Raymond Chen!) - that's how old it is! Not long after I wrote the app, I was asked to provide the service of production of those monthly reports including the very critical quality control on the data. Yes folks, this means data entry. And I do it happily. My husband helps me with the Q.A. Every year, the corporate muckity mucks kick and scream about outsourcing this work, but after taking it in-house for two years and losing business because of lots of reporting errors, the project came back to me. A lot of developers may turn their nose up at the thought of data entry, but the client just renewed that contract for another two years as well as added another similar project.
Over the last few years, I have added writing and conference presenting to my business model. This was never planned and I was doing it for fun, then it started adding up enough to count a little.
Additionally, I have some old projects that I help out with once in a while. One of these is a FoxPro 2.6 application that still works amazingly (thank you again, Mr. Chen) and we still can't justify a total rewrite. I also dabble in a few old Access programs (which we have at least updated to Access 2003). Generally, I keep that stuff under wraps because I'm a little embarrassed that I am still playing with FoxPro 2.6, while at the same time, I am working with a number of bleeding edge technologies. But heck, I'm willing to expose myself for the sake of others who are trying to figure out how a consultant makes ends meet.
There is another piece of the puzzle of course, which is the countless hours I spend researching, teaching myself and exploring new technologies. Oddly, in my mind, this is my real job. But it doesn't pay much of a salary! So all of those other things - the coding (where I do often get to leverage this research), the report services, the FoxPro and Access maintenance, are just my side jobs that let me afford to do what I love the most.
I know that if I was just coding full time, I could be making a lot more money, but I have made an explicit choice to allow myself more time to do what I love (hopefully I'll get skiing and paddling and cycling back into this mix in the near future.)
So being an independent consultant is not always 80 hours a week of writing software. I have been fortunate enough to evolve my skills (and my ego so that I can still work on the less exciting projects) over these (oh so many) years so that I have a day that to many might be dizzying, but to me is a lot of crazy fun.