In today’s world, many companies are upgrading their internal software or have the intention to build some type of software application. Many executives ask the question: should we hire someone internally or hire a professional company to create us our solution? At first, hiring someone internally might seem to cost less than the project price quoted by a software development company. However, in the long run, the responsibilities, risks and time involved in hiring that employee can end up costing as much as three to four times what it would to have hired a software development company in the first place.
Let’s start by discussing the responsibilities involved in hiring a software developer. First, you have to consider the wage you want to pay the developer. Software developers on average range in salary from $40,000.00 to $140,000.00 a year depending on the market you are in and the experience the developer has. While in some industries hiring the less expensive choice makes sense, this route should be avoided here due to the fact that this individual will be solely responsible for the development within the company. Based on experience, a good developer with the skill set necessary in this scenario will cost no less than $80,000.00 a year, or $40.00 per hour. If you are hiring the developer for a three month contract, at $40.00 per hour, your total cost will be somewhere around $20,000.00. Most developers are looking for a six month contract minimally, so realistically you would have to commit $40,000.00 to the position. If you are hiring the developer as a full time employee, then you have to consider benefits such as insurance and retirement, which could increase this amount significantly.
Salary aside, the hiring process itself provides its own challenges. First, the manager has to have the experience to judge whether the developer is qualified for the job and worth the money they are asking for. This means the manager has to take the time to test potential candidates successfully and thoroughly in all aspects of architecture and programming, since the candidate will be solely responsible for the development project at hand. In this industry, personality is a small part of the process as many developers cannot be judged on their personality; oftentimes, developers are introverted and this makes it hard for them to express their capabilities verbally. Instead, you want to focus on their skill set – but if the manager or company interviewing said developer does not have the IT experience to do so, the likelihood that the hire will fail to meet the company’s expectations is great. Once the hiring process is complete, the company will have to setup a management process for the developer.
My experience has taught me that all developers require structure, discipline and more importantly a manager who has the knowledge and experience to guide the project the developer is working on. With that in mind, a manager has to take the time to create a life cycle for the project which should include a detailed functional specification of the project and a general knowledge of the programming environment being used to create the software. The consequences of not taking the time of creating a functional specification and having the knowledge to lead the developer through the development life cycle will most likely be that the software is not created to the requirements and specifications of the company, nor being completed on schedule. I can’t express enough the importance of a manager having the functional and technical knowledge to manage the developer. This doesn’t mean the manager has to be a programmer; in fact, the manager doesn’t need to know programming at all. They do, however, need an understanding of the software development life cycle, requirement documentation and timelines with regards to the programming environment and the software application itself. With that knowledge, the manager should be able to supervise all aspects of the project including testing. The amount of time a company has to commit to hiring a developer can be enormous and the risks of not devoting the right resources and management to a project and the hired developer are great.
The risks regarding management, or lack of, is one thing, but there are risks in hiring a developer outside of management. The most obvious risk is the chance that employee or contractor will quit or leave the company for whatever reason. Imagine you have a 3 month project that needs to be completed in 3 months with no leeway in scheduling and the developer responsible for the project quits or gets sick after only 1 month of development. At that point, the company has to go through the process of hiring a new developer again, and re-invest the time to review the infrastructure of the application and environment of the software with the new hire. It’s been my experience that a new developer can’t just pick up where an old developer left off. Why? It’s not just the developer’s skills that become an asset to a company, but his or her knowledge of the application; when the developer leaves, their replacement must first learn the application and get acclimated to the previous developer’s code before having the ability to actually work with it, which could take weeks depending on the complexity of the application, the quality of the code and the associated documentation. Another risk of hiring a developer comes with the company’s expectation of his or her performance. No matter how thorough your hiring process is, oftentimes you won’t know if a developer is good until he or she gets a job or task done. If a hiring mistake is discovered after the developer has completed a project for you, this could result in not only having to redevelop the software but revisit the hiring process, both of which have the potential to cost a company greatly in more than just dollars.
A good software development company will be able to assume the aforementioned responsibilities and risks associated with software development on behalf of the company. A software development company has already absorbed the risks of hiring and will have a management team in place that has the knowledge and experience to oversee the developers and creation of the software application. A software development company will also be able to distribute the knowledge of not only the project at hand but the business process itself to a team of developers and managers instead of a single person; because of this, the consequences of losing a hire are removed from the process.
Software development companies can be an excellent choice for creating a company’s technology solution provided they have a solid understanding of the company’s needs. Without a solid understanding and knowledge of the company’s core business processes and practices, it is very likely the completed application will not represent the best interests of the company. Many times, the greatest time commitment the client must assume is passing the knowledge of their business practices and needs to the software development company. Yes, hiring an internal employee can greatly reduce the amount of time needed for knowledge transfer as the employee will gain an understanding of the company by interacting with them in person on a daily basis. However, the right software development company for the job will already have experience working in the company’s industry, thus having much of the required knowledge already. This will not only decrease the time involved with acclimating the development company to the business, but will also allow the software company to be an active participant in developing the software and make recommendations based on their previous experience within the industry.
Overall, hiring an employee may seem an attractive option at first, yet the risks and time involved in hiring and managing that employee may outweigh the benefits if your company is not prepared to do so. Employing a knowledgeable, experienced software development company that has experience in the company’s industry may cost more than hiring a developer initially; however, over time, companies invested in IT as a long-term solution will find that choosing a relationship with a software development company rather than hiring an employee will be the more beneficial route to take.