I've been a software developer consultant, as an employee for Analysts International Corporation. I was not an independent consultant.
I had five gigs placed at various companies while I was there. Each one was to work on a specific project.
The reason for each of those companies to get a consultant rather than have or hire an employee work on the project was (in my assessment) due to not having an available employee, or not wanting to add staff.
Effectively, I was used as project spackle for a relatively temporary position (under a year). And, in my opinion, that's an appropriate use of a consultant.
I enjoyed working on a variety of technologies: PickBASIC on PickOS for accounting and inventory software, C on DOS for a train & track control system, C++ for ISDN on OS/2, built a server application using a C API to run an automated telephony routing system, and form creation software in C++ w/MFC on Windows.
The train & track system was stressful, because a bug in the software could have dire ramifications. The lead developer / architect had designed a beautiful system: the C code was well structured, well documented, well thought out, and well refactored. That was the only application I worked on that I was on a team, and had 3 testers to every developer.
The form creation software gig was the most aggravating, because I was working on printouts without a computer to compile, run, test the software for four months. When the computer they ordered me finally arrived, another employee co-opted it and I got his old machine. That was okay by me, his old machine was completely adequate for what I was working on -- but a month later he was laid off (I was not privvy to the details). And that did not sit well with me, since my values is a company gets rid of consultants when it tightens its belt, and keeps employees. Not vice versa.
I left consulting mostly because (to use an analogy) I did not enjoy always feeling like a guest in someone's house. My preference is to be part of the family.
The thing I miss most about being a consultant is that you could focus on the project, and did not have other company demands on your time. As an employee, I find that I have team meetings, planning meetings, review meetings, department meetings, division meetings, company meetings, offsite meeting, training, HR required this-and-that, all of which cuts into project productivity time.
We’re a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.