Advanced Telecommunications Research Institute International (ATR), Kansai Science City, Japan. Photo: STR/AFP/GETTY IMAGES
Robovie-II can help customers locate and carry products at a Kyoto supermarket. This fellow is eager to offer suggestions. For example, it might suggest you to buy some lettuce when you want some broccoli to make salad.

University of Tokyo’s Jouhou System Kougaku Laboratory. Photo: Erico Guizzo
This HRP-2 is learning how to wash a cup
Researchs in the lab are using a combination of human motion-capture and video game style simulation to teach the robot how to handle different dishware and uncertainties. Researchers are focusing on failure detection. For example, if you take a cup away when the robot is trying to grasp it, it will adjust its motions, instead of stay with its original calculation.

Korea Institute of Sciene and Technology (KIST), Seoul. Photo: Yuriko Nakao/Reuters
Mahru is toasting and serving a piece of bread
A human wearing a sensor suite performs tasks while a motion tracking system records the action. The recorded action will be played back by the robot. If the environment changes, the robot will adjust its action accordingly.
The above information was from Spectrum.IEEE.org
When it comes to software outsourcing, there is no one-size-fits-all model to guarantee success. Every outsourcing company is different, every project is different, and every software solution provider is different. But there are some basic practices that can help improve the outsourcing result.
Understand Yourself
Do you understand the benefits of software outsourcing and the risks of software outsourcing? Do you have a mechanism in place to avoid/address the risks? Does your management support the outsourcing? Do your internal software engineers, if any, feel threatened by the outsourcing?
If your internal staff doesn’t support your vision, you will need to communicate with your internal groups first to fully realize the potential of your outsourcing strategy.
Build an Interface Team
Software outsourcing is not just signing a contract and then sitting back and expecting the software be delivered as expected on time. You will need to frequently communicate with your vendor. It’s better to form a team to oversee the whole outsourcing process, from defining delivery standards, to requesting for proposal, to vendor selection, to contract development and negotiation, to in-process communication and acceptance testing. This interface team needs to be supportive, knowledgeable, and capable of learning quickly and good at communication and project management.
Select Your Vendor Carefully
While selecting your vendor, consider the following aspects: vendor reputation, vendor history, organization culture, technology experience, subcontractors and partners, commitment, integrity, flexibility, culture, language, time zone difference, and legal issues.
On-going Communication
While the outsourcing process is on-going, it’s important to keep the communication channel wide open. Communicate with your vendor and internal groups frequently, honestly and early whenever you have any concerns or changes. Regularly true up with your vendor to make sure they understand the requirements correctly, maintain high quality standard all the time and meet the deadlines of milestones, and quickly address any issues that surfaces.
Other factors that are important include focusing on quality and result, maintaining a good relationship with your vendor and always seeking a win-win deal with your vendor whenever possible.
Software outsourcing is not for the unprepared. Together with the benefits come risks. Understanding what the possible risks are can help you address them proactively and minimize the effects even if they do occur.
Legal systems in other countries may not offer the same protection as offered here in the U.S. Even if the protection is similar, having a lawsuit across borders is still time-consuming and costly.
Quality
No matter how brilliant your idea is, if the software developed for it is buggy, your customers will be unhappy and they will spread the words.
Even though the distribution of English as a spoken language is far more widespread than any other spoken language, including Mandarin Chinese and Hindi (mainly spoken in northern and central India), it is not a primary language in many countries. When you outsource your software project to a different country, chances are your English is different from “their English.” The result? Your communication could be ineffective and soon you would feel frustrated.
Communication-Time Zone Difference
Depending on the country and the location, the effect of time difference can range from mild to extreme. The time span between the west coast and Asia, for example, ranges from 12 to 14 hours. In a typical office situation, no synchronized communication is possible between these two locations. It’s ok if it’s only once or twice that you have to stay several hours late or come in several hours early. When this has to happen frequently then it becomes a real burden.
Other risks include status and cultural differences, legal and regulation differences and so on.
Software outsourcing has been a staple of American corporations for more than a decade. When executed well, outsourcing companies can reap great benefits from this move.
Improved Business Focus
Software outsourcing releases a non-software company from dedicating resources to areas outside of its business expertise, and allows a company to focus on its core skills and products while having the day-to-day software development and its management handled by vendors who have more expertise in these areas.
Instant Access to Expertise and Resources
By partnering with a software development firm, outsourcing companies gain instant access to the expertise and resources of the software development firm, which usually take years to develop and mature. Some of the expertise is gained by working with many clients who faced similar challenges. The economies of scale and the economies of skill offered by a software development firm give the outsourcing company a level playing field, which otherwise would have to act “small”.
Reduced or Controlled Operating Cost
Non-software companies that try to develop software themselves may actually experience elevated development and management costs. These increased costs eventually are passed onto customers, reducing your competitiveness. A software development company specializes in software project development and management, and knows how to design software faster, cheaper and better. That’s what a software firm does after all.