LabVIEWexpert.com - LabVIEW


Low Risk Software Solutions
for High Stakes Automation

 

 


 
Should You Outsource Your LabVIEW Project?

Tom Peters, an influential business consultant, and author of In Search of Excellence and Thriving on Chaos made the following bold statement:

"Do you look outside first, rather than inside, when thinking about the resources (people) you need to launch or execute a project? If not, why not? (Are you so arrogant as to imagine that the best and brightest at everything are already working in your building?)"

In his books, he cited numerous examples of outsourcing success. I will highlight just two for the purposes of this article:

IBM:
In a three year period of the early 1990's, IBM's Austin, Texas, personal computer operation, considered a thoroughly modern operation by The Economist, did the following:

  • Cut average manufacturing cycle time from 7.5 to 1.5 days

  • Cut new product development time from 24 to 8 months

  • Increased its product portfolio from 19 to 85

  • Reduced payroll from 1,100 to 423 people

Nintendo:
In 1992, Nintendo achieved an amazing outsourcing success

  • With only 892 employees

  • $5.5 billion in sales

  •  
    • An average of $6 million in sales per employee

  • 3rd in profits of all Japanese companies

Those two examples are from IBM and Nintendo, and there are many, many more out there. But every company has different needs. While Nintendo outsourced a tremendous amount of tasks, they still retained 892 employees, working on core competencies.

So, the recurring question you need to ask yourself is whether LabVIEW expertise needs to be a core competency of your company. As you think about that question, let us consider the various alternatives you have when implementing a project for Automated Test Equipment software or laboratory automation.

The following six ideas come from our experience working with and consulting for hundreds of companies. Some of these are great ideas, some not so great. But all six are options for you.

  1. Hire a full-time test software engineer

  2. Borrow an engineer from another department

  3. Use a technician to manually test

  4. Train a technician to write software

  5. Hire an intern to write software

  6. Outsource your test software requirements

Now, let's explore the pros and cons of each of our six alternatives.

Option 1: Hire a full-time test engineer

If you have a lot of testing to do, and you think the time to design and develop the software is going to take over two man years or more, then hiring someone full-time is a good alternative to consider.

Cost: The typical cost for a senior-level test engineer will be between $80-$120K
per year in salary (depending on experience level). Benefits and overhead costs
(including 401K, medical, payroll taxes, vacation and sick time, etc.) are typically about 50% of the salary. You should also include the associated company costs of hiring the individual. (These costs include such things as recruiting, interviewing, training, office equipment and software, etc.) As a general rule of thumb, many companies use a figure between $200,000 and $250,000 when estimating the total costs of a single software engineer. Although this figure sounds high to many, it is used by most Fortune 500 companies as a realistic estimate

Pros: If you can find the right person and there are a several man-years of tasks to automate, this route can be very cost-effective. The engineer is available to assist at all times.

Cons: Test engineering is usually not the kind of activity that gets an engineer excited. Because of this, many engineers want to move out of the test department as soon as they can. Every company has a core competency, and most engineers want to be involved in the design of the products related to the core competency. For this reason, it is often hard to keep the best engineers in the test department. It is very common for an engineer to be promoted out of the test department at the point when their training is just starting to pay off. This means that many test departments are filled with a hodge-podge of partially written software modules, in which some pieces of code are well-written but many parts are spaghetti code.

NOTE: Another key issue is the recruiting process. Be sure that the person doing the interviewing knows enough about LabVIEW development to adequately interview the candidate. We get resumes from people all the time who have taken a few classes and claim to be experts, and then we discover in the interview that they don't know much more than the basics.

Option 2: Borrow an engineer from another department

Often, there is an engineer inside your company who could be a tremendous help on your project. If you have a small project that only needs a few hours of work per week (or maybe just a couple days of total development), then this option may be right for you.

Cost: In this case, you are working with another department and a current employee, so the cost is probably not something that you'll think about. However, if you want to benchmark the cost, you should use the same calculation in the above scenario of a full- time employee, and then pro-rate based on the length of the project.

Pros: If your project is not big, and you can find the right person inside the company, then this is an excellent option.

Cons: Often it is difficult to get the borrowed engineer's full focus on your project, and there may be political issues involved in getting the engineer. Also, if the project is expected to take more than a couple of days, or if it involves technology that the borrowed engineer is not an expert with, then this is not a good option. Finally, keep in mind the maintenance needs. Will the borrowed engineer be available to assist you in debugging the software or upgrading it when additional features are needed?

Option 3: Use a technician to manually test

Sometimes your tests just are not that complicated, and/or you don't need to test very often. Perhaps you already have a well-trained technician who could do the testing for you. If this describes your situation, then using a technician to manually test might be your best alternative.

Cost: In this case, as before with a borrowed employee, you are working with someone already in-house, so the cost may not be something that you will think about. However, if you want to benchmark the cost, you should use the same calculation from Alternative #1 of a full-time employee, and then pro-rate based on the length of the project. Include the cost of your time to train the technician and consider the contingency plan for when the technician is out sick or on vacation.

Pros: If the test doesn't take a long time to run manually, and you don't have to do it often, then this is an excellent option.

Cons: If the test is really this easy, then it is probably very easy to automate. Typically this scenario is the type that LabVIEWexpert.com could automate for less than $5,000. If the costs associated with the technician are higher than this, then outsourcing may be an even better alternative than using the technician.

Option 4: Train a technician to write software

This alternative is probably the worst idea of the six, but it is mentioned because many companies try it. In all of the companies where we have worked, this solution has never given the results that management had hoped. There are several simple reasons why.

Cost: In this case, you are working with a current employee. The cost may not be evident, nor something that you will think about. However, if you want to benchmark the cost, the same calculation from Option #1 of a full-time employee still applies. Include in the cost the time to train the technician and the time that the technician spends writing code. (Realistically, you should also expect that 95% of all code written will not be reusable. You should consider the cost of having to rewrite code.)

Pros: This seems like a cheap solution. Unfortunately, this is a perfect example of "you get what you pay for".

Cons: It is difficult to create well-written software. That is why professional software engineers commonly spend four years or more in college and several more years working on real projects before their code is well-written. After you spend the money to train the technician, and once he or she writes the software, the result will often be spaghetti code which is not scalable. It is almost guaranteed that you will spend more time and money on this solution than you would if you had outsourced; particularly to the right contractors with the right people.

Option 5: Hire an intern to write software

This alternative, at best, is only slightly better than having a technician write software. Once again we mention it here because we have seen companies try it, and observed the disappointment that they frequently encounter.
Unfortunately for those companies, this option has a double-whammy. It rarely results in quality software that is usable in the long term, AND most interns don't return to the company after the internship, leaving a maintenance headache. Murphy's Law holds true in that the moment you need to enhance the code for new features, the intern has just left the company.

Cost: You are hiring a college student, so the costs seem to be a bargain. You may be paying anywhere between $12 and $25 per hour. The hidden costs are in the supervisory time and the high probability that this student may not work for your company after the internship. When you include in the cost the time to train the intern and all of the time spent by other employees supervising or mentoring someone whom you may never see again, the cost is not the hourly wage at all. (Realistically, you should also expect that 70+% of all code written will NOT be reusable. You should include the cost of having to rewrite code.)

Pros: If you can find the right person, this solution could work.

Cons: Most often, the software written will be badly structured code, which is not scalable. If the intern doesn't come back to work for your company, someone else will have to maintain the code. If the intern does come back, he or she will often work in a different department, meaning that any future improvements to the test software will be made by someone else. In either case, the most likely scenario is that the code will not be reusable and scalable, and you'll spend even more money rewriting the software.

Option 6: Outsource your test software developments

The final alternative is to bring in an expert from the outside. You get to benefit from the experience of the consultant, without paying the costs to have him/her on staff full-time and without having to spend valuable time on training and supervision. When the project is done, you no longer have to pay the consultant; however, you have the benefit of being able to use him/her for maintenance or upgrades in the future.

Cost: If you are hiring an expert, expect to pay between $75 and $200 per hour. Depending on the contract, you will either pay a fixed price for the whole project or pay hourly. The consultant should give you a detailed proposal with approximate costs. (NOTE: The price per hour does not always indicate the quality of the consultant, but it can be a good indicator. This is especially true when it is evident that the apparently more expensive consultant is clearly in demand from others.)

Pros: If you can find the right company to use for outsourcing, this solution is very often the best solution. You only pay for the project expense, and don't have the liabilities of a full-time person. You get maintenance, proper documentation, and expert advice.

Cons: The hardest part of outsourcing is choosing the right company. Many outsourced projects don't work out (the result of either picking the wrong outsourcing partner or not managing the outsourcing partner well). Please read our website section "How it Began" for a further discussion of the pros and cons of different outsourcing options.

A Note on Creative Work

Study after study has shown that the best software engineers perform 10 times more efficiently than average software engineers. This is due to the fact that software engineering is both a rigorous discipline requiring many years of training, and it is a creative endeavor, requiring imagination and abstract thinking. If you believe the studies, and the idea of "10 times more efficient", then let us explore the implications.
Imagine that you have an assembly line, and you have ten workers on the line. Your best worker may be 25% more efficient than your worst. Perhaps he or she is as high as 50% more efficient; rarely will there be a higher difference than this.

Now imagine that you have two software engineers. One is excellent and is ten times (1000%) more efficient than the other engineer. When you consider their salaries, the difference may be 25% or even as high as 50%. Never will the excellent engineer make 1000% more than the average engineer.

Keeping this in mind, the biggest benefit of outsourcing is that when you find the right company, you will be working with engineers that are 1000% more efficient than your other alternatives. The good news is that you won't pay 1000% more. You might even pay less.

A Final Word on Outsourcing LabVIEW projects

At LabVIEWexpert.com, we have worked with over 200 companies in San Diego County. We have seen outsourcing work wonders, and we have heard customer stories of outsourcing failures. When all is said and done, the reasons for outsourcing success are the same as those for employee success: great people who are professionals committed to their work. We at LabVIEWexpert.com are proud to say that we have never had a customer who was not satisfied at the end of a project. We pride ourselves on our list of references, and that we can refer a prospective customer to 100% of our previous customers.

The mission of LabVIEWexpert.com is to create low-risk solutions for your software development needs. We will not have the cheapest rate per hour; however, the total cost of using us will often be less than all other alternatives.


 
Email: Patrick@LabVIEWexpert.com

Copyright 2007 LabVIEWexpert.com. All rights reserved.
Product and company names listed are trademarks or trade names of their respective companies.

 
-- Should You Outsource?
-- Choosing An Outsourcing Vendor
-- Managing a LabVIEW Project
-- Automating LCD Inspection
-- Best-of-class Drivers to Your Equipment
-- Join our FREE eZine
-- Press Releases
  
Partner Resources
-- LabVIEW Jobs
-- LabVIEW Based Solutions
-- LabVIEW Toolkits
-- Partners
 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 
       

©2008 LabVIEWexpert.com which is the domain name for Cal-Bay Systems, Inc.
All Rights Reserved.  LabVIEW and TestStand are registered trademarks
of National Instruments.  
Terms of Use  |  Privacy Statement

 


 

  Home
Resources