<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Stephan Schwab - outsourcing tag</title>
  <link>http://www.stephan-schwab.com/tags/outsourcing/</link>
  <description>Software Technology Consultant</description>
  <language>en</language>
  <copyright>Stephan Schwab</copyright>
  <lastBuildDate>Sat, 24 May 2008 11:24:54 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>Outsourcing for start-ups?</title>
    <link>http://www.stephan-schwab.com/2008/03/04/1204684005473.html</link>
    
      
        <description>
          &lt;p&gt;This is a re-post of something I wrote earlier on the old blog of my company. I just read a discussion about the topic &lt;a href=&#034;http://www.linkedin.com/answers/startups-small-businesses/starting-up/STR_STP/168156-2371260?searchIdx=4&amp;amp;sik=1204670846333&amp;amp;goback=%2Easr_1_1204670846333&#034;&gt;Outsourcing for start-ups&lt;/a&gt; on LinkedIn and although the text is written to attract and convince prospective clients, I think it may spark some interesting comments.&lt;/p&gt;

&lt;p&gt;What seems to be the prevailing point of view seen in the LinkedIn discussion is that, if the start-up is a technology - read software - company, you should not outsource your R&amp;D. That&#039;s kind of obvious. ;-)&lt;/p&gt;

&lt;p&gt;On the other hand some seem to think about outsource in terms of offshore to some cheap labor country and fear the loss of IP rights. Isn&#039;t there a difference between offshore and outsource? You can outsource to a team located just down the street and that may make a lot of sense.&lt;/p&gt;

&lt;p&gt;I really like the comment Peter Nguyen gives:&lt;/p&gt;

&lt;blockquote&gt;I teach strategic business design to entrepreneurs, and one thing I stress is to be clear on what your business model is. Unless your startup does software development, it&#039;s a good idea to outsource. However, keep in mind that IT is such a central part of any business organization that, as I mentioned before, it&#039;s important to outsource to the best IT companies, regardless of where on the planet they come from. &lt;/blockquote&gt;

&lt;p&gt;Here is the re-post about &lt;em&gt;New Product Development&lt;/em&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Traditional Software Development does not work&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Software Development is not an easy task. In over 20 years many projects have failed and a lot of money and opportunities have been lost due to wrong expectations and bad project management. Unlike common belief development of a software system is not an exact science. Although the term &amp;ldquo;software engineering&amp;rdquo; is commonly used, it&amp;rsquo;s more a union between art and engineering. Good software engineers have developed a feeling for good systems design due to their long-term experience. What we do is more comparable to the art of playing a violin than the work of an engineer who can leverage norms, standards and mathematical models. Such clear rules do not exist in software development to the same extend. Further teams frequently struggle to deal with a great number of unknown factors, such as unclear specifications, changing requirements, and simply unforeseeable requirements, while being expected to deliver functionality on time, on budget, and with high quality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agile Development is a dialog with the client&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In recent years a new idea is getting more and more adapted by forward thinking software developers and companies. Instead of following the failed &amp;ldquo;Waterfall&amp;rdquo; development model, which made us belief that we can design a huge system upfront and then have programmers write the code according to the specification, &amp;ldquo;Agile&amp;rdquo; teaches that it&amp;rsquo;s better to develop in short iterations and embrace change with each iteration completed. Instead of big upfront design, we design enough to produce working code for a limited set of functionality and have the user see and try it to give us more guidance. Instead of working out of sight, we enter into a process of continuous conversation with our users and learn more and more about their business while we build software for them.

&lt;p&gt;&lt;strong&gt;Calculating development costs&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Clients want to know/need to know when the new software will be ready and how much it is going to cost. Agile Development allows us to answer both questions more honestly. We can only estimate something we know and understand. So instead of promising all and everything to our client, we calculate the price for the product iterations. Neither the client nor we can possibly know how many iterations will be needed to development the new product the client is looking for. Instead of exposing the client to a huge risk or accepting the full risk ourselves, we lower the total risk and allow for corrective measures from the beginning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scrum Sprints&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Caimito uses the Scrum methodology for all projects. Development in Scrum is done in sprints of a fixed length. The duration of a sprint can be one week or up to four weeks. Each sprint will deliver a new product increment, which is running code that could be used. Before a sprint starts the development team plans the work it wants to do and commits to the goal it defines for the sprint. After the sprint the team conducts a meeting with the client to demo the new product increment and gathers feedback.&lt;/p&gt;
&lt;p&gt;Before a sprint starts team and client know exactly what the product increment will be. There will be no surprises in terms of unexpected results, lack of features or raising costs.&lt;/p&gt;
&lt;p&gt;Depending on the size of the team and the complexity of the project we suggest short sprints and small team sizes to further lower the risk. Misconceptions can easily be handled when detected after one week, while the same problem will get costly after four weeks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Client Representative&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We understand that our clients are busy with their own business and frequently can&amp;rsquo;t afford to dedicate too many resources to the much-needed dialog with the development team. Usually agile practices ask for a client on-site who works with the team each day. Unfortunately that doesn&amp;rsquo;t work for all clients and we&amp;rsquo;ve come up with an alternative.&lt;/p&gt;
&lt;p&gt;In our adaptation of Scrum there is the client, a client representative and the team. Facing the team the client representative acts as Scrum Product Owner and is responsible to administer the product backlog, which is the list of requirements for the product in the form of user stories, change requests and bug reports. Facing the client the same person represents the team and communicates to the client the achievements of a sprint and gathers new requirements.&lt;/p&gt;
&lt;p&gt;The skill set of this person includes that of a business analyst with experience in the client&amp;rsquo;s industry or at least the ability to learn quickly, but as well languages, as clients not necessarily speak the same language as the development team.&lt;/p&gt;
&lt;p&gt;Currently Caimito supports clients in English, German and Spanish.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Domain Driven Design and Unit Tests&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Software developers are experts in software engineering, but can&amp;rsquo;t be experts in the client&amp;rsquo;s domain. The challenge we face is to create a working solution that optimizes processes in the client&amp;rsquo;s business without fully understanding a business foreign to us. Domain Driven Design (DDD) is a relatively new technique, which allows us to model the important parts of a client&amp;rsquo;s business with objects in code and shape the solution by adding functionality incrementally. Backed by automated tests we can assure that things that have worked before keep working while we add or modify code to build or extend the system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Continuous Integration, Integration Tests and test coverage&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Some programmers crank out code at high speed and leave testing to a QA (quality assurance) department. We don&amp;rsquo;t believe in this approach. Instead we perform continuous integration using an automated build and test environment where all tests that were ever written for the project are executed with each hourly build of the entire code base of the solution. That way we will know immediately, if new code breaks something and can fix it, before more valuable time has been wasted following the wrong track.&lt;/p&gt;
&lt;p&gt;Our Integration Tests are end-to-end tests that span from the presentation layer down to the infrastructure layer and further down to a real SQL database, if such a data storage technology is part of the solution. Tests on the presentation layer are performed with automated testing tools that simulate users working with the user interface of the application and are part of the automated tests run with each build hourly.&lt;/p&gt;
&lt;p&gt;Tests do not serve any purpose, if they don&amp;rsquo;t cover enough scenarios. As part of the automated build we run a tool that reports on test coverage per package, per class and per method. We make sure that we have a coverage of more than 90% on a per method level.&lt;/p&gt;
&lt;p&gt;A code base with very good test coverage, an easy to run automated build process and good integration tests is easy to maintain and extend in the future. Even a new development team can work successfully with little ramp-up time. The investment in extra time to improve test coverage or maintain it high pays off fast in the form of reduced costs and greater stability of the overall solution.&lt;/p&gt;&lt;/blockquote&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf=&#034;http://www.w3.org/1999/02/22-rdf-syntax-ns#&#034;
         xmlns:dc=&#034;http://purl.org/dc/elements/1.1/&#034;
         xmlns:trackback=&#034;http://madskills.com/public/xml/rss/module/trackback/&#034;&gt;
&lt;rdf:Description
    rdf:about=&#034;http://www.stephan-schwab.com/2008/03/04/1204684005473.html&#034;
    dc:identifier=&#034;http://www.stephan-schwab.com/2008/03/04/1204684005473.html&#034;
    dc:title=&#034;Outsourcing for start-ups?&#034;
    trackback:ping=&#034;http://www.stephan-schwab.com/addTrackBack.action?entry=1204684005473&amp;token=3056244473673764590&#034; /&gt;
&lt;/rdf:RDF&gt;
--&gt;
        </description>
      
      
    
    
    
    <category>Outsourcing</category>
    
    <comments>http://www.stephan-schwab.com/2008/03/04/1204684005473.html#comments</comments>
    <guid isPermaLink="true">http://www.stephan-schwab.com/2008/03/04/1204684005473.html</guid>
    <pubDate>Wed, 05 Mar 2008 02:26:45 GMT</pubDate>
  </item>
  
  <item>
    <title>Re: Silicon Valley is looking to do business in Latin America</title>
    <link>http://www.stephan-schwab.com/2007/08/14/1187122928983.html</link>
    
      
        <description>
          &lt;p&gt;This post is in response to a blog comment I received.&lt;/p&gt;

&lt;blockquote&gt;Henry Johns in his comment to &lt;a href=&#034;/2007/07/24/1185327676144.html&#034;&gt;Silicon Valley is looking to do business in Latin America&lt;/a&gt;:&lt;br&gt;
The challenge of getting South and Central America competitive in offshore outsourcing is two fold.  Available talent pool, and available talent pool with English language proficiency. It is easy to staff a project team of 50 developers in India. Try doing that in Panama or even Brazil without leveraging English speaking project managers or team leaders with Portuguese speaking developers. Sounds like a plan except many of the developers will not be able to read the project support documents.
&lt;/blockquote&gt;

&lt;p&gt;The language barrier certainly exists in all places and India has been lucky to have adopted English as an intermediary language even amongst their own citizens. Being fluent in English is definetely their primary competetive advantage. Still I believe it all depends on the type of work to be done and who the clients are.&lt;/p&gt;

&lt;p&gt;If the goal is to extend a company&#039;s workforce, then the offshore workers need to speak the same language as their onshore colleagues. English helps Indians with the American market. But their advantage diminishes in Europe, as not all and every European speaks English well enough or feels comfortable &lt;em&gt;working in English&lt;/em&gt; for that to work out.&lt;/p&gt;

&lt;p&gt;I cannot speak for businesses like call centers, help desks, systems support, etc. My topic is software development. Based on experiences with my clients my opinion is teams that were assembled ad-doc by recruiters or other staffing organizations usually don&#039;t work well. As in sports a good team needs some time to train together and learn how everybody &lt;em&gt;ticks&lt;/em&gt;. Nobody in their right mind would hire a group of guys who have never played together and expect them to win the World Cup. It doesn&#039;t matter whether all players are superstars within their respective home teams. Still in software development exactly that is done and then people wonder why it doesn&#039;t work and projects fail.&lt;/p&gt;

&lt;p&gt;Not everybody on a development team needs to be able to discuss details directly with the customer. But everybody should be listening to what the customer has to say. Not necessarily has this to happen in a classic meeting or conference call in real-time. In my opinion customer feedback is best processed after it has been written down and be read several times regardless whether it&#039;s been written in one&#039;s mother tongue or a foreign language. And not only is it easier for humans to truly understand the meaning of written text, it can also be machine translated. It&#039;s amazing how good Google&#039;s English/Spanish machine translation is. I expect it to work even better with more formal content than newspaper articles or blog posts. What is usually missing is a tool that helps the English speaking stakeholders and the Spanish speaking developers to communicate effectively.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#034;http://www.caimito.net&#034;&gt;My company&lt;/a&gt; is working on an agile project management tool called Savila. We are currently investigating how to integrate machine translation for user stories.&lt;/p&gt;

&lt;p&gt;Henry Johns adds in his blog comment:&lt;/p&gt;

&lt;blockquote&gt;
Many countries in Latin America could do the same thing as Microsoft is doing in Canada.  Bring in foreign high tech workers to jump start small offshore outsourcing businesses. I get resumes from professionals in India often who want me to sponsor them with an H1b work visa in the U.S. Why not bring them to some place like Panama?
&lt;/blockquote&gt;

&lt;p&gt;This refers to &lt;a href=&#034;http://www.internetnews.com/bus-news/article.php/3687531&#034;&gt;Microsoft&#039;s move to open a development center&lt;/a&gt; in the greater Vancouver, Canada, area - just on the other side of the US/Canadian border across from Seattle where Microsoft&#039;s headquarters are.&lt;/p&gt;

&lt;p&gt;That&#039;s certainly an interesting idea. But the language barrier still exists and it is probably even higher. Actually there is a group of Indians teaching computer topics here in Panama. They are employees of the Indian outsourcing and consulting company Tata and their presence is kind of a gift from the Indian government to the government of Panama. All classes are given in English and I have some doubts whether that&#039;s entirely useful. For someone without years of speaking a foreign language it&#039;s certainly easier to receive the initial training in the language they&#039;ve grown up with. It&#039;s hard to learn two things at the same time and even harder, if thing A is the condition for mastering thing B.&lt;/p&gt;

&lt;p&gt;What indeed might make sense is to offer the English speaking Indians a place where it&#039;s easier to immigrate to than the US and still be closer to the US than India. Certainly a better idea than to &lt;a href=&#034;/2006/07/06/1152205200000.html&#034;&gt;anchor a ship off the coast of California&lt;/a&gt;.&lt;/p&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf=&#034;http://www.w3.org/1999/02/22-rdf-syntax-ns#&#034;
         xmlns:dc=&#034;http://purl.org/dc/elements/1.1/&#034;
         xmlns:trackback=&#034;http://madskills.com/public/xml/rss/module/trackback/&#034;&gt;
&lt;rdf:Description
    rdf:about=&#034;http://www.stephan-schwab.com/2007/08/14/1187122928983.html&#034;
    dc:identifier=&#034;http://www.stephan-schwab.com/2007/08/14/1187122928983.html&#034;
    dc:title=&#034;Re: Silicon Valley is looking to do business in Latin America&#034;
    trackback:ping=&#034;http://www.stephan-schwab.com/addTrackBack.action?entry=1187122928983&amp;token=-8632839313796321457&#034; /&gt;
&lt;/rdf:RDF&gt;
--&gt;
        </description>
      
      
    
    
    
    <category>Outsourcing</category>
    
    <comments>http://www.stephan-schwab.com/2007/08/14/1187122928983.html#comments</comments>
    <guid isPermaLink="true">http://www.stephan-schwab.com/2007/08/14/1187122928983.html</guid>
    <pubDate>Tue, 14 Aug 2007 20:22:08 GMT</pubDate>
  </item>
  
  <item>
    <title>Research study tells who really makes the iPod</title>
    <link>http://www.stephan-schwab.com/2007/06/29/1183144055130.html</link>
    
      
        <description>
          &lt;p&gt;Just found this pointer to a research study, which explains who really is making the iPod. That means the manufacturing. The idea and design is Apple&#039;s.&lt;/p&gt;

&lt;blockquote&gt;&lt;a href=&#034;http://www.iht.com&#034;&gt;International Herald Tribune&lt;/a&gt; in &lt;a href=&#034;http://www.iht.com/articles/2007/06/28/business/ipod.php?page=2&#034;&gt;Who really makes the iPod?&lt;/a&gt;:&lt;br&gt;
Their study, sponsored by the Sloan Foundation, offers a fascinating illustration of the complexity of the global economy, and how difficult it is to understand that complexity by using only conventional trade statistics.
&lt;/blockquote&gt;

&lt;!--
&lt;rdf:RDF xmlns:rdf=&#034;http://www.w3.org/1999/02/22-rdf-syntax-ns#&#034;
         xmlns:dc=&#034;http://purl.org/dc/elements/1.1/&#034;
         xmlns:trackback=&#034;http://madskills.com/public/xml/rss/module/trackback/&#034;&gt;
&lt;rdf:Description
    rdf:about=&#034;http://www.stephan-schwab.com/2007/06/29/1183144055130.html&#034;
    dc:identifier=&#034;http://www.stephan-schwab.com/2007/06/29/1183144055130.html&#034;
    dc:title=&#034;Research study tells who really makes the iPod&#034;
    trackback:ping=&#034;http://www.stephan-schwab.com/addTrackBack.action?entry=1183144055130&amp;token=7875012150699123372&#034; /&gt;
&lt;/rdf:RDF&gt;
--&gt;
        </description>
      
      
    
    
    
    <category>Outsourcing</category>
    
    <comments>http://www.stephan-schwab.com/2007/06/29/1183144055130.html#comments</comments>
    <guid isPermaLink="true">http://www.stephan-schwab.com/2007/06/29/1183144055130.html</guid>
    <pubDate>Fri, 29 Jun 2007 19:07:35 GMT</pubDate>
  </item>
  
  <item>
    <title>Indian CIOs have to offshore work</title>
    <link>http://www.stephan-schwab.com/2007/06/28/1183043628451.html</link>
    
      
        <description>
          &lt;p&gt;Now that&#039;s interesting news:&lt;/p&gt;

&lt;blockquote&gt;&lt;a href=&#034;http://www.networkworld.com&#034;&gt;Network World&lt;/a&gt; in &lt;a href=&#034;http://www.networkworld.com/news/2007/061207-indian-cios-have-to-offshore.html?fsrc=rss-outsourcing&#034;&gt;Indian CIOs have to offshore work, says Gartner - Network World&lt;/a&gt;:&lt;br&gt;
Indian CIOs will have to consider outsourcing offshore, because of the shortage of IT skills in the country, and inadequate services standards of local service providers, according to research firm Gartner Inc.
&lt;/blockquote&gt;

&lt;p&gt;People who really know what they are doing are rare to find. In the IT industry good skills are not easy to obtain. A good developer or SysAdmin needs to live the job and not just do the job, because he needs money to feed himself and his family. The ever evolving technology demands that one is passionate about the topic and willing to learn constantly. Just performing a certain set of tasks over and over again will cause falling behind and in the end become useless.&lt;/p&gt;

&lt;p&gt;Fostering good skills in its people is as well a responsibility of the company. For example in my &lt;a href=&#034;http://www.caimito.net&#034;&gt;own company&lt;/a&gt; I follow a bit the ancient pattern of apprentice, &lt;a href=&#034;http://en.wikipedia.org/wiki/Journeyman&#034;&gt;journeyman&lt;/a&gt; and master. The education kids receive in the local Universities here in Panama is not bad, but they lack guidance and practice. So I give them a chance and over the course of a few weeks I decide whether they are made of the right stuff or not. Once I found one who is, I put the new apprentice to work on real tasks that contribute to a real project and after a year he should have gained enough knowledge to solve some tasks on his own. Currently I have Fidel, who has been doing Java development since 1.5 years, and Enrique who is about to graduate from UTP. Currently Fidel, my &#034;journeyman&#034;, helps me teaching Enrique and I expect Enrique to do the same in one or two years. It takes time, but I feel it&#039;s the only way for a company to grow in a sane way and have skilled people who can actually satisfy clients. Of course sometimes one can find a guy who has learned everything on his own, but I consider counting on that or hoping for the rare find a bad idea.&lt;/p&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf=&#034;http://www.w3.org/1999/02/22-rdf-syntax-ns#&#034;
         xmlns:dc=&#034;http://purl.org/dc/elements/1.1/&#034;
         xmlns:trackback=&#034;http://madskills.com/public/xml/rss/module/trackback/&#034;&gt;
&lt;rdf:Description
    rdf:about=&#034;http://www.stephan-schwab.com/2007/06/28/1183043628451.html&#034;
    dc:identifier=&#034;http://www.stephan-schwab.com/2007/06/28/1183043628451.html&#034;
    dc:title=&#034;Indian CIOs have to offshore work&#034;
    trackback:ping=&#034;http://www.stephan-schwab.com/addTrackBack.action?entry=1183043628451&amp;token=-3584381451201915134&#034; /&gt;
&lt;/rdf:RDF&gt;
--&gt;
        </description>
      
      
    
    
    
    <category>Outsourcing</category>
    
    <comments>http://www.stephan-schwab.com/2007/06/28/1183043628451.html#comments</comments>
    <guid isPermaLink="true">http://www.stephan-schwab.com/2007/06/28/1183043628451.html</guid>
    <pubDate>Thu, 28 Jun 2007 15:13:48 GMT</pubDate>
  </item>
  
  </channel>
</rss>
