When a project has been established, a development company must consider two key questions. Do they have enough staff on hand to bring the project from start to completion while staying within the boundaries of time and budget? Furthermore, do they have the right staff to develop the software and manage the project? It's not uncommon for a company to struggle to meet such expectations. Likewise, staffing can be a major issue as there are usually more projects than there are "quality" developers. That being said, if the answer to either question is no, then it's time to look for help.
Software help comes in a few different manifestations. There's in-house help, temporary/contract staff or outside help to consider. Like so many other things, each method of help has its own intricacies and can get tricky even if one is careful. One must take into account the aforementioned issues of time and budget and how it relates to both the project on hand as well as what kind of service/work you will get.
Hiring local talent is certainly cost effective, but there's the issue of finding said talent. It can be incredibly difficult to sift through all kinds of developers, looking for a quality one. If you do find that talent, and you bring them in-house, you have a better control factor. You can manage the work of the developer a more effectively, and you can ensure their commitment to the project. However, you should also be aware of the costs associated with bringing developers in-house. Such expenses include salary, benefits, training, equipment and so forth. Luckily, such factors can be controlled internally.
On the other hand, if you bring in a temporary/contract developer, you can control costs, but you may have to manage commitment issues. Then there's the factor of motivation. If the contract is coming to an end and there's another project looming, you may not get the quality you are looking for. The contractor may even jump ship to move on to another position. This can prove disastrous, especially when you are nearing a deadline.
Then there's your third option; that of hiring out. Using this method means that you are hiring a company that has already been through the hiring process and brought in developers, QA and system administration staff. However, just as the other forms of software help can be complex and varied, so too can hiring out. For one, there's hiring out locally. Such a process is what we at Parthenon Software can offer you. If you need a quick fix and want to bring on a couple developers to help you complete a project, we offer staff augmentation. On the other hand, if you want to hand off a project and get it completed we can also assist you with that as well.
Another form of hiring out, is outsourcing overseas. Often times, this can be a double-edged sword. While you are going to pay well below the industry standards of local talent, you may also get what you pay for. Parthenon Software is often hired and consulted to fix overseas projects that have either gone well over delivery dates, or the company has abandoned the project at a critical point. In such cases the hiring company spends twice as much as they would have wanted to. At the same time, you may deal with difficulties such as time zone differences and possible language barriers. This is not saying that there aren't quality developers overseas or that successful stories of project delivery are a myth. If you can find a quality dev shop, and work through the language barriers and time differences you can save money, but those can be huge ifs.
There are many factors to leading a development team these days. With the many complications that can arise, it can be easy to be overwhelmed by such situations. This goes to prove that CTOs are definitely earning their paychecks. The way they handle and prioritize the many aspects of a project will add to and determine success or failure. The same goes for how they go about obtaining software help. The right choice will obviously make a significant difference.