Somehow everyone think that new product executives should live and work in Silicon Valley. That every successful startup had onsite team behind it from the early days. That outsourcing or offshoring is evil and that you’ll never get a great product in the long run. Startups are too innovative. Blah-blah-blah…
For a long time I’ve been intending to express my own thoughts in this regards because honestly I’m grieved to hear the same unreasonable things and to lump everyone together.
It is not my goal to convince everyone but rather inspire and advice on how better proceed with the selection. Someone mistakenly draw conclusions by the seat of his pants, others heard something from friends or surfing the web and finally some had bad experience in the past.
Every vendor has unhappy customers. Make sure to find if they are unreasonable as well! In addition a single case not yet a practice. And often those who are satisfied much less likely to spread than their antipodes.
You think it’s quick and easy to assemble an effective and cohesive team? While the right partner already has it. There is already a well-established principles and approaches in their work. People speak the same language and are willing to help each other. Besides, everyone knows the ability of his colleague and his strengths.
Moreover some tech start-ups, even when they are called as such, don’t have the technical capability to deliver their vision and that’s where technology partners can help them out.
Let me summarize couple assumptions beforehand so that you better understand the train of my thought. ‘Cause there are exceptions to every rule.
I absolutely do not claim that the majority of vendors are professionals, rather the opposite. Yes, company need to take pains to find the right outsourcing partner. Do research, not just search!
By default I assume company, agency, studio, firm – generally all variations of the same. In a less degree individual freelancers. Why? A bit more here
I also assume people who are interested in business development, in their portfolio, their brand awareness and not a side job. I can not imagine a company that is interested in growing on such a competitive market and would not care about reviews and references. From our side we’d better give up the project, if we are not confident in our ability and time frame, rather than sell-short the client and as the result court troubles and cast a slur. We’re always trying to understand the adequacy of the client just as he do. Yes, clients are also different.
I also do not count sub-contracting schemes. I only consider companies that do all the work themselves. The exception could probably be a design. Not all agencies have a designer in-house (except for design studios). But all development is a must! Sub- contracting creates an additional chain of intermediaries which increases the risk of failure. By the way there are lots of “one-man” agencies in US. So the fact that a person is physically in US does not mean that the whole team here as well.
Also I do not consider medium-sized companies between 50 and 100+ people. Not to say the giants 500+ or 1k+. They have their own kitchen, bureaucracy and attitude. And of course the level of their staff is very different. Only large can afford to recruit junior’s and grow them.
I also can not say anything about the outsourcing of such activities as marketing, sales, SEO, SEM etc. Remember, getting the product out is just the first piece of the puzzle. Most startups fail in marketing. I’m only talking about web development and I do not believe in all in one shops.
Myth :1 – Miscommunication
Something like “Developing a product requires a deep understanding of customer needs and extensive user interaction.”
I completely agree that building great products calls for a deep understanding of customer needs and great communication. Our team can not work on a project/product, if we don’t understand the idea and feel it. Each project/product we work on, we end up adding a lot of value by offering various new features, tweaking features that would be relevant to the customers and so on. But please stop complaining if you have hired junior, graduate or (sorry) some asian guy for $2/hr and then surprised why he is not interested in innovation your project.
Often the problem is in expectations. If you start with unrealistic expectations you often ends up in disappointment. So I would recommend to discuss project plan in details early and discuss current progress and problems on a regular basis.
Nothing is obvious. Telepathy does not work. Be explicit!
We believe in creating small agile teams where the product owner is an integral member. Members of a software-development team need to work closely together. Product owner usually overlap with the engineering team for several hours every day to review deliverables and provide constant feedback. Modern communication and development platforms have made collaborating across distance easier.
BTW, good english of sales people doesn’t guarantee great results. At some point it also applies to developers.
Myth :2 – No Creativity
In addition to above written.
I believe startups should look for smaller techie companies to outsource to, which are agile, responsive, willing to learn and establish a long term relationship. The level and experience of each individual member of that team is much higher and more diverse. Working with big-wigs is unlikely to be very effective for startups.
Some other things that adversely affect creativity:
Micromanagement; Read micromanagement and its drawbacks
Fixed price; I hardly believe that anyone will be looking to improve the project, if the customer always insists on a budget and do not want to pay more. Of course this does not mean the absence of estimates at all
“Last minute” deadlines. If the project is focused on hard deadlines, it’s all the team think about.
Our team has another problem. Abundance of creativity and ideas :)
Myth :3 – Pricey
If your goal is faster product development + quality, then try not to squeeze the pennies, but focus on getting the best engineering talent to work on your product development.
You should not outsource the product development to only cut the cost. It’s important to find a team that not only builds the product but most importantly feels why and what of product. They are more pricey!
Many outsourcing companies will offer you their best-in-class talent provided you agree on milestone based payment, that is not just equal to # of engineers x standard average charge out rate per engineer.
Please do not forget that you should not offer remote developers same benefits as local employees. They do not have the same protections found in employment contracts, they do not have health care benefits, they must also have their own hardware and office equipment and other requirements. Not to mention rent, team buildings, lunches, creative office stuff etc. Wasting time for interviews and doing it right? Don’t to mention about concurrency in Silicon Valley.
Do you really think 30-50$/hr is too expensive for a terrific person even if he is remote? While it is possible to find local talent, the pool of good developers is limited, while the demand is really high.
Maybe it is better to work with a remote developer that can get problems solved, than with a hypothetical good local developer that you don’t have, or with a local developer that creates more problems than it solves.
Once again. Do not buy the cheapest. When we evaluate our next project we are trying to prepare a very detailed work breakdown, which indicates the number of hours for each of known activities. Of course, this estimate may not be 100% accurate, but more we know about the project, more accurate it will be. We also often add a buffer on top of our assessment to cover various risks. This does not necessarily mean that the price will be just that. Invoices are issued by fact and always supported by detailed reports. In the optimistic scenario the price will be lower but not higher in opposite. Many “dirty players” use this and underestimate the project or exclude some items (as if they were not discussed) relying on the fact that after a certain period of time the client will not be able to change vendor and they will earn their money.
Myth :4 – Extra Management
Some people would simply state that it is a lot more challenging to manage diverse teams at multiple locations and in different time zones than to manage them together. Additional layers of management are often required.
I’ve already mentioned that I consider only robust teams (all in one place) and the client in another timezone. In such a case it is always very easy to achieve 3-4 hours overlap. To me it even makes you more organized.
Do you have a clear vision of your venture? Do you have an overview document and mockups? And for the record, management of these resources is a non-issue. Managing developers is as simple as writing good requirements and working to a time line. If you suck at both of those things, you are going to struggle any way you slice it.
Some other good side effects of it:
- management is forced to cut the crap and make specifications as clear as possible
- it means that you have a lot of time in which you can concentrate on solving the hard problems, instead of lamenting about the color of a link or have meetings about the next meetings you’ll have
According to 37Signals meetings are toxic.
Even when working with local developers, it’s always a good idea to not interrupt the workflow of developers, unless it is an emergency. If you have to fix the specs, or set out new directions, and you need to do that often, that means you suck at being a manager. That’s why Scrum sprints take 1 or 2 weeks during which the developers manage their own schedule, and if something happens that changes the priorities / specs, then the sprint must be restarted (throwing away unfinished stuff, starting from scratch later) … that’s a little extreme from my point of view, but there are good reasons for why some people prefer this.
Really big open-source projects, such as Linux, scaled like crazy with contributors from all over the world. So I really can’t see the point here.
Myth :5 – Intellectual Property
I believe that there is a risk for doing anything anywhere. The risk of IP theft is never 0% even if it is in the US. But many firms have concluded that the only true defense for their IP is moving faster than the competition, and we can certainly help them do that :)
There is simply too much at stake for any respectful firm for this to be a meaningful risk.
Moreover startup needs to think globally (i.e., become a micro-multinational) and seize the opportunity to create products that can be used around the world. Therefore, it’s not enough to focus only on what US consumers want. Having a global team is a great way to ensure that you’re creating a product that can address global needs.
In addition nowadays many outsourcing providers have their offices in US. If you really think it matters.
What you need anyway
I believe that at some point you will need the in-house team. But finding a team is not easy. Instead, you can do it gradually in parallel with ongoing development. I think any adequate company understands that and will help with knowledge transfer. Personally, we are always open to help the onsite team to jump in. We did it couple times already.
But from the very beginning you can concentrate on business, networking, seeking investors, events etc. and not engage in micromanagement your own staff.
I recommend to start with someone in-house (CTO or team lead) to properly manage the development process (your way) and step in when things were not implemented to standards.
Try to gather maximum information about your future vendor. If there a Linkedin profile? Are there any recommendations? Look for activity on their blog, check out Github profile. Do they have a Twitter account? Check activity there. If they were involved in open source projects? Do they contribute something? This tells much!
Stay away from ‘Yes men’. The ability to say ‘No’ is a sign of maturity. You need to look for a partner that can be honest with you from the get go, even if it means that they lose your business. Setting up realistic expectations is critical to building a long and fruitful vendor-client relationship. Moreover, software development is a vast field and no single company can be an expert at everything. It is always better to look for companies that are focused on doing a few things and doing them well.
Thats it. Good luck in your search and endeavors. Any questions – do not hesitate to ask us.