Over the course of my career I have always been a fan of hiring R&D staff. Many people feel that the true value of a Tech company is it’s people. There is allot of truth to that statement, but it does mean that companies have to be careful to staff up when they have sales to support the growth. This means that some projects have to be passed up in order to focus the limited resources your core development.
My own experience with contract resources has been one where the people I hired were not as good as the people I already had on staff. It seemed to me that the only people who contracted were the ones who could not find full time employment. Now that I am a contractor, I have discovered that there are organizations that build teams of people that are used to working together. These people are constantly shifting from project to project and have a better understanding of design tools that companies use then the employees that work there.
So what if you are a company that wants to address an opportunity but you can’t justify staffing up to do it. Well the responsible thing to do would be to sign up a temporary team. Everyone wins with this approach because the people involved don’t expect a long term commitment and have a support team working for them lining up their next opportunity.
Some of the people who work at contract companies work there because of the challenge. I can say from first hand experience that the pace of development is as fast, if not faster, than any development team I have worked on. The knowledge of the team is deep and their ability to work with customers is exceptionally good. I have no doubt that the team will finish the development on time if not before.
This experience has made me wonder what would happen if engineering resources banded together to form professional associations. If Engineers were like doctors and worked for themselves, they would sign up companies like patients until they had all they could handle. Customers would be free to change engineers and engineers would be free take on new customers when they needed them.
OK so that probably won’t happen any time soon, but I do recommend that every software designer and engineer spend some time as a contractor. It’s like spending some time as a short order cook before becoming a chef at a five star restaurant. Until you have spent some time exercising the full breadth of your skills, surrounding with people who do it every day, you are missing out.
yes, it is a nice thought. But, you have to keep in mind that Doctors always book your next appointment. Also, people visit doctors because the visits are free. i wonder how much a physician will make if people would have to pay for their visits. Lots of gerenal information are available on internet too. on top of that, medicine is a very controlled profession!!
I once thought of contracting as a second-class occupation. Then I spent a couple of years doing it for a living. It was a good time to be a contractor and we thrived. I learned that the kind of work was identical – same challenge and perhaps more variety. But what was surprising was that we got to do the same things over (for other people – we retained the IP) and we got better and better at it.
This was a revelation – we could be paid to be the best! Working for a company you’re often ready to improve the last thing you did before the company wants you to do it – so it’s harder to learn quickly. Working as a mercenary you can build your expertise as soon as you can sell the next contract (if you’re in a hot market or technology [Android]). You’ll be a Ninja before you know it!