University of Southern California Center for Systems and Software Engineering Offshore, Outsource, and Distributed Team CS 577b Software Engineering II Supannika Koolmanojwong University of Southern California Center for Systems and Software Engineering Outline • • • • Distributed Teams / virtual teams IT Offshoring Twenty practices for offshore sourcing Offshore agile development 2 University of Southern California Center for Systems and Software Engineering Distributed Team 3 University of Southern California Center for Systems and Software Engineering Why distributed team? • Your employees will love it – flexible hours, no commute, a personal work environment, friends & family – especially “commute & cubicle” job • Hire great people wherever you find them • Use better communication tools – A chat conversation can be archived, searchable, and visible to the entire team – online collaboration tools, IRC, P2, yammer • Still be social – Meetup every 6 months (hack week), hiking + 10 minute lightning talks • Your offices will be more fun 4 http://toni.org/2010/03/08/5-reasons-why-your-company-should-be-distributed/ University of Southern California Center for Systems and Software Engineering Challenges in distributed teams • Failure to communicate and retain contextual information • Unevenly distributed information • Difficulty communicating and understanding the salience of information • Differences in speed of access to information • Difficulty interpreting the meaning of silence 5 Anil Hashia , John Whelan , Ruchi Shewaramani An Innovative Approach to Managing Distributed Teams University of Southern California Center for Systems and Software Engineering Cross Cultural Communication metrics High IDV means that everybody has the right of his own opinion Small PDI means that subordinates participate more in decision-making activities High UAI means that everything needs to be carefully planned 6 Anil Hashia , John Whelan , Ruchi Shewaramani An Innovative Approach to Managing Distributed Teams University of Southern California Center for Systems and Software Engineering Best Practices in Distributed Teams: Communication 1. Communication should be in written form Written communication helps avoid accent/language issues and can be archived for tracking purposes. Using tools 2. Create public forum for discussion Brings diverse ideas and viewpoints to the project. Can be archived as a shared depository of project wisdom. 3. Avoid private discussions Private discussions obstruct team consensus and hinders development by creating gaps in communication. 4. Take advantage of the latest technology available Collaboration tools are constantly improving and evolving. Encourage use of portals, wikis and blogs. 7 Anil Hashia , John Whelan , Ruchi Shewaramani An Innovative Approach to Managing Distributed Teams University of Southern California Center for Systems and Software Engineering Best Practices in Distributed Teams: Management 1. Practice people exchange Send team members onsite for 4-6 weeks. For larger co-located teams, this is a great way for building team morale and bridging cultural gaps. 2. Consensus based conflict resolution This works better than having an expert make the final decision, unless it is necessary. 3. Promote a sense of equality All team members should feel their input is important and equal to everyone else’s. Treat all members alike, irrespective of their location. Discourage favoritism. 4. Appreciate and reward good work Participation and involvement should determine status. Active participation is a better way to measure someone’s abilities. 5. Participate in cross-culture training programs understand and respect different cultures. 6. Encourage people skills Working and reasoning on a personal level allows people to interact more naturally. 8 Anil Hashia , John Whelan , Ruchi Shewaramani An Innovative Approach to Managing Distributed Teams University of Southern California Center for Systems and Software Engineering Best Practices in Distributed Teams: Schedule 1. Regularly spaced deliverables This helps determine if a team is on track on a regular basis. 2. Release early, release often Releasing early exposes bugs sooner and releasing often allows you to fix them quickly. Working software is a good measure of success. 3. Schedule all code reviews to be open Code reviews should be open to everyone in the company. 9 Anil Hashia , John Whelan , Ruchi Shewaramani An Innovative Approach to Managing Distributed Teams University of Southern California Center for Systems and Software Engineering Outline • • • • Distributed Teams / virtual teams IT Offshoring Twenty practices for offshore sourcing Offshore agile development 10 University of Southern California Center for Systems and Software Engineering 11 University of Southern California Center for Systems and Software Engineering Outsourcing Trend in 2012 1. Sourcing Near Home – Rural areas – Native government incentives – Domestic Sourcing 2. BRIC Surge • Brazil • Worldcup 2014 • Olympics 2016 • Russia • India • China • • • • • Malaysia Mexico South Africa Romania Bulgaria http://www.outsourceoffshore.info/index.php/2011/12/outsourcing-trends-to-watch-for-in-2012/ 12 University of Southern California Center for Systems and Software Engineering Outsourcing Trend in 2012 3. Collaborative and Strategic – shift outsourcing from the back-office and into additional customer-facing techniques 4. Technology Convergence – social networking, mobile platform 5. Cloud Concerns – cyber-security and risks of eco-terrorrism 13 University of Southern California Center for Systems and Software Engineering The Most Expected IT Outsourcing Trends in 2013 • Social Media Keeps Expanding Rapidly – connect customers through Facebook, LinkedIn, Google+ • Nearshore Becomes Closer – reduce costs, cultural similarity. • Business Moves to Sky – Google Drive, Drop Box, ServiceNow, SkyDrive • Enhanced Data Security – reliable firewall will become issue number one in outsourcing • India and China Become Less Attractive for Outsourcing (Salary) – 10.7% for India and 8.8% for China 14 http://www.qarea.com/articles/most-expected-it-outsourcing-trends-in-2013 University of Southern California Center for Systems and Software Engineering IT Offshoring Davis, Gordon; Ein-Dor, Phillip; R. King, William; and Torkzadeh, Reza (2006) Journal of the Association for Information Systems: Vol. 7: Iss. 1, Article 32. 2 types of offshoring • Outsource some of its activities to service providers in other countries. – In this case, the service provider hires, trains, supervises, and manages its personnel. – a contract specifies the services to be provided, as well as time and quality measures • Set up service operations in the other countries – managed as a remote service site. – Workers are hired, trained, supervised, and managed by the organization rather than by an outside contractor 15 University of Southern California Center for Systems and Software Engineering 6 popular offshore tasks 1. Programming, software testing, and software maintenance; 2. IT research and development; 3. High-end jobs such as software architecture, product design, project management, IT consulting, and business strategy; 4. Physical product manufacturing – semiconductors, computer components, computers; 5. Business process outsourcing/IT Enabled Services – insurance claim processing, medical billing, accounting, bookkeeping, medical transcription, digitization of engineering drawings, desktop publishing, and high-end IT enabled services such as financial analysis and reading of Xrays; and 6. Call centers and telemarketing. 16 University of Southern California Center for Systems and Software Engineering 17 University of Southern California Center for Systems and Software Engineering 18 University of Southern California Center for Systems and Software Engineering Nearshore • Same continent offshoring • Becoming a more common trend, instead of offshoring • US to Mexico and Canada • Eastern Europe to Western Europe 19 University of Southern California Center for Systems and Software Engineering Issues from Offshoring • 380,000 IT professionals are employed offshore and will be more • 3.3 million service jobs could be lost to offshoring in the next 15 years • by 2010, 102,000 IT and software jobs will have been offshored from the UK =12% of today’s IT workforce • 40% of Western Europe’s 500 largest firms have begun moving service operations offshore 20 University of Southern California Center for Systems and Software Engineering Benefits from offshoring • Cost savings • Job upgrading for countries sending work abroad, • Employment and income for the countries performing the work 21 University of Southern California Center for Systems and Software Engineering Future of Outsourcing • International economics – offshoring benefits everyone in the long run – Entire global system is better off when goods and services are produced the most efficiently – Even countries that lose jobs can benefit if they innovate • IT offshoring will still expand • Various HR activities will be outsourced • For US – programming and systems development jobs in the US are being lost. – new jobs focus on the management of vendor relationships and the customizing of externally-developed software. 22 University of Southern California Center for Systems and Software Engineering The Risks In Offshoring Information Technology Activities • Compare to manufacturing jobs, IT activities may be less well understood and/or poorly documented by the client firm • Hidden structural, cultural, legal, and financial risks and costs are often overlooked • Deskilling the organization (will be able to maintain over time) • Disruptions arising from political upheaval or war in an offshore host country • Political stability risks of the offshores • Disaster recovery in the developing countries 23 University of Southern California Center for Systems and Software Engineering New tasks of the CIO • Monitoring an outsourcing contract -legal requirements • Managing accuracy and completion risks associated with offshoring • Managing the database and application software risks – configuration management • Managing knowledge required for systems – documentation, back ups, training • Considering a distributed computing solution 24 University of Southern California Center for Systems and Software Engineering Skills needed to manage offshoring • Relationship and contract management – client-vendor relationship; selecting a vendor, outsourcing contract, monitoring of progress, control exerted over the vendor, level of trust • Risk assessment and management – from political risk, to risks of natural disasters; infrastructure, transportation, back up sites. • Technology assessment and monitoring – Maturity of the technology, standards • Systems implementation and integration – learn the skills that are necessary to perform these tasks with lesser levels of outside help 25 University of Southern California Center for Systems and Software Engineering Skills needed to manage offshoring • Business Process Redesign – analysis and modeling skills must reside in internal function ? • Integrated business and IS planning – Strategic IS planning should never be outsourced • Mission-critical systems development and testing – Retain in-house; clients often wish to perform their own post-delivery testing • Security 26 University of Southern California Center for Systems and Software Engineering 27 University of Southern California Center for Systems and Software Engineering Twenty practices for offshore sourcing Rottman, J., and Lacity, M. "Twenty Practices for Offshore Sourcing," MIS Quarterly Executive (3:3), 2004, pp.117-130. • Offshore market size : $10- to $30-billion by 2005 • Controversy – Stealing domestic jobs / Cut down bonus – Improving US economy • 2003 – $36,000 service job went abroad = 0.25% of US IT jobs (worth $130,000 in US) • Cost saving 10-50% from offshoring, 68% -quality improvement 28 University of Southern California Center for Systems and Software Engineering Risks of offshore projects 29 University of Southern California Center for Systems and Software Engineering Risks of offshore projects 30 University of Southern California Center for Systems and Software Engineering Outline • • • • Distributed Teams / virtual teams IT Offshoring Twenty practices for offshore sourcing Offshore agile development 31 University of Southern California Center for Systems and Software Engineering Offshore agile development Be Prepared Daily scrums via Skype, standards and infrastructure Start Small Small team, small chunk, small timebox Consider a Hybrid Model Manage Actively Not totally hands-off, intervene when necessary Invest in Onsite Training Bring people over, learn the process Pick the Right Partner Account for Time Zones 32 7 tips to offshore agile development : Computer News Middle East, ISSN 1564-0078, 10/2012