260 likes | 562 Vues
Your Global Application Development Partner. September 2, 2010. Content. Offshore Software Development. Engagement Model Project Intranet to support information flow and access Several factors strengthen the business case for outsourcing Offshore Delivery Model US/Offshore Work Split
E N D
Your Global Application Development Partner September 2, 2010
Content Offshore Software Development • Engagement Model • Project Intranet to support information flow and access • Several factors strengthen the business case for outsourcing • Offshore Delivery Model • US/Offshore Work Split • 2 Types of Offshore Projects (Fixed-price or Collaborative/Agile) • Role of Onsite Coordinator • Offshore Outsourcing - No Micromanagement • Suggestions • Communication Tools • How To Share Knowledge • Project Development Approach • Project Iterations • Offshore/Onsite Testing • Suggestions
Corporate Facts Offshore Software Development People • Over 200 employees • Strong Leadership Financially Rock-solid • $7 M in Revenues in 2008 • Strong focus on fundamentals Founded in 2001 in San Francisco, USA • 2 continents, 2 offices, 2 offshore centers Offerings • Top-notch services • Flexible Engagement Model Quality • ISO 9001:2001 • Infrastructure • State-of-the-art & fail safe • Disaster recovery & Business continuity Clients • Global Leaders: France Telecom, Quest Software, InterContinental Hotel Group, Protective Life Insurance • Startups and mid-size product companies Delivery Capability • Onsite-offshore model • High level of technical skills & Domain competency
Phase 1 Phase 2 Phase 4 Phase 3 Engagement Model Offshore Software Development • Phase 1 – Assess Client Goals • Prepare • Set a Baseline • Identify • Recommend • Phase 2 – Plan/Set Tuning Parameters • Goals • Time-frame • Milestones • Resources • Phase 3 – Launch Engagement • Execute plan • Phase 4 – Review and Correct • Pilot Project • Compare with baselines • Adjust team, approach CLIENT ENGAGEMENT TEAM
Project Intranet Offshore Software Development • Project Intranet to support information flow and access • Consolidated project status • Access to all project results, documents, interfaces • Collaborative environment for Client and Vendor • Distribution of information between project’s stakeholders (“active” information) • Centralized repository (“passive” information) • Access – in time, permanent, full volume • Security • Information (metrics, reports, documents for entire project areas)
Several factors strengthen the business case for outsourcing services in Russia... Offshore Software Development • Factor cost differential – Wage costs about 20% of US levels; real estate costs about 30% of US levels • Time zone advantage – The nearly 11-hour time zone difference between US and Russia enables ‘follow the sun’ 24x7 coverage • Robust telecom infrastructure – Russia’s telecom infrastructure today is world-class and cost-competitive, with various long-distance connectivity options, high-bandwidth local loop networks and high-speed Internet access • Government incentives – Russian government is actively promoting offshore services, by setting up technology parks and other infrastructure, speeding up investment approvals and providing attractive tax incentives
Offshore Delivery Model Offshore Software Development Of course, the split of work between front and back offices may change! Front Office Customer facing Back Office Russia Users, Customers Development Center 2nd and 3rd Level Support 1st level Support Front Office Functional Responsibilities Back Office Functional Responsibilities Common tools and Processes Knowledge Base Service Management Quality Management Technical Infrastructure
Client’s Helpdesk Front Office Support Team Client’s Systems US/Offshore Work-Split Offshore Software Development Periodic face to face meetings Service Delivery Manager monitoring operations SolveITLabs Development Center Client SolveITLabs US Office Client’s Business Users* Establish 2-way communication with user and work collaboratively till the ticket is closed 4 Manage Contingencies 1 Log ticket Ticket assigned to Support Team Ticket assigned 2 3 3 Manage Contingencies Access Client’s Applications for Problem Resolution US Offshore
Types of offshore projects Offshore Software Development There are 2 main types of offshore projects • Fixed-price projects • Black box for the customer • Well-defined specifications • Not at heart of Customer’s Information System Or highly risky if they are! • Collaborative/Agile projects • Moving specifications • IT teams on both sides • Possibly developers on both sides • Possibly Architects/QA on one side and development team on the other side • Minimal project duration required • For processes/tools/communications to set up on place • For people interactions to reach a satisfactory level • Can tackle complex projects (and with higher satisfaction levels)
Role of Onsite Coordinator Offshore Software Development • Should take neutral position as much as possible • Handles administrative tasks: • Arrival/Departure administration (secure id card, email/access account, intranet account, mailing lists, etc) • Organization of visits (identification of requirement, dates, agendas, people) in both directions • Visa handling • Infrastructure for offshore team: • Infrastructure coordination + improvements (monitor performances, tune tools) - with help from customer’s IT team • Organizational Role: • Weekly technical and management conf calls with all the teams (dev team +Customer team) + follow up from these calls • Management Status Meetings • Communication facilitating + related communication improvements • Crisis escalation investigation + handling • Accompany Onsite members during offshore visits, ensuring success of agenda/visit. • Methodology/Expertise: • Definition of Project Development Process with “offshore in mind” and continuous improvements (e.g. short iterations • introduction, detailed planning, acceptance criteria for code delivery, intranet setup, etc). • Work inside the teams to implement the collaborative development process. • Quality suggestions + improvements (testing strategy / build improvements for quality + measurements) • Continuous build + testing + collaborative development processes • Architecture + implementation of regression testing
Offshore Outsourcing - No Micromanagement Offshore Software Development Developer Developer Developer Project Lead Developer Project Manager Local Project Lead Developer Developer onsite offshore onsite offshore
Infrastructure Offshore Software Development Intranet (Build results, Issue tracker) Continuous releases Source Repository DMZ reachable from offshore VPN over internet firewall firewall firewall Onsite Offshore
Communication Tools Offshore Software Development • Travel: Every 2 months • “Word” docs: 1 every month • Phone: 3 calls per week • Intranet: 1 topic modified per day • Email: several times per day • Throughbuilds: everyday, 2 times a week • Chat: continuously
How to share knowledge ? Offshore Software Development • Travels in both directions • Especially before new subjects • Functional training for Project Leads • Have Project Leads do the business conception • As much as possible • Have Project Leads do the detailed design • Open chat channels with functional persons • Should have dedicated onsite persons. 1 per team => 1 person per 10 developers roughly. decrease over the time. • Helpful to have onsite coordinators • Send functional tests along with use cases • Have separate team writing scripts and running them
Project Development Approach Offshore Software Development Owner: Project Team Owner: Product Manager Owner: Project Manager Owner: Project Team Owner: Sponsor P5: Documentation P4: Design and Prototype P3: Project Planning & Prioritization P2: Requirement Clarification P1: Business Proposal Approval Process Project Review Requirement Approval Design Review Owner: Project Team Owner: Operations Owner: Operations P7: Testing & Quality Assurance P6: Development P8: Deploy Acceptance Review Code Review
P1Business Proposal P2Requirements Clarification P3Planning P4Design/Prototype P5Finalize Product Spec Offshore Software Development • Create Visual Design • Build: • UI Prototype • Back-end Prototype • Finalize Content • Prototype Usability testing • Design Data Schemas • Detailed Application design • Identify API’s • Detail Infrastructure design • Define Data Elements • Define Images • QA for Content&UI • Create Test Plan and Cases • Develop Usability testing Protocols • Develop Use Cases • Develop Conceptual Design • Infrastructure • User Interface • Create Project Plan • Document all assumptions • Define: • Issues • Milestones • Resources • Identify Content needs • Create marketing material • Plan Pilot, if required • Technical Assessment • Operational Assessment • Alpha • Beta • Define BusinessGoals • Determine Project Expectations • Core Competency • ROI • Time to Market • Define Critical Success factors • Review Project Key Players • Estimate costs • Project Approval • Identify all Requirements • Define Project Scope,Objectives, and Budget • Design Business Flow Process • Evaluate business benefit and Project COST • Prepare Marketing Docand Plan • Feature/Benefit • Positioning • Promotion tactics • Negotiate Contract • Define User Experience • Conduct User Focus groups • Project Approval • Conduct TechnicalAssessment • Review: • Content Quality • Usability Quality • Operational SLA • Update P1 through P4 documents • Refine Project Plan • Time lines • Resources Document Draft SLA P6 - Front-end Development Rollout Programs Security Audit Integration Testing • HTML coding • Page Tagging • Page Validation Test • Compatibility Test FunctionalSpecification Lessons Learned SLA Portal Validation PerformanceTests InfrastructureDesign Doc. Remedial Plan Operation Procedures Usability Tests Regression Tests BusinessFlowchart • Implement Biz Logic • Implement Database • Implement Interfaces • Unit Testing • Functional Testing P9ProjectDebrief P8Operations P7Release Mgmt & QA Wireframes PrototypeMockups P6 - Back-end Development
Project Iterations Offshore Software Development • Fixed iteration delivery dates (Must not be changed, content can change) • Iterations must list *all* tasks taking ½ day or more • To prevent misunderstanding • To allow easy progress follow up • To generate release notes automatically • Done using Issue Driven Development
Offshore/Onsite Testing Offshore Software Development Set up from offshore Developmentplatform UAT Environment QA/Staging Server Production Environment Developer workstations Dev Server - Integration testing (manual) - Functional tests by developers (manual) - Functional tests by end users (manual) - Unit tests (mocks) - Some integration tests - Technical / Functional tests (manual) - Performance testing (manual) - Client customers
Suggestions Offshore Software Development • Requires good onsite coordinators • To solve communication issues due to language and cultural differences • To act as “harmonizers”, improve communication • To shield teams from the wearing effect of working from a distance • Requires a lot of travel, communication • Hard to work with someone you didn’t see - leads to misunderstanding • At all levels – Project Managers, Team Leads, Architects • Share activities between onsite/offshore • Not just development, but also • Business Requirements, Architecture Design, System Testing, etc • Allow offshore people to participate actively in the development process • Share the project knowledge among all project team members • Write functional test cases before development starts • Helps transfer business knowledge • Helps to catch misunderstanding early • Can be automated by QA Developers
Waterfall Development Model Offshore Software Development A waterfall model with feedback can be very effective choice to design a system that is clearly described. In this case only a few minor changes can be made in system design or its requirements. Also Waterfall model creates completed results in each phase being done and forever.