Upload
cheyenne-kimble
View
221
Download
1
Tags:
Embed Size (px)
Citation preview
September 2, 2010
Your GlobalApplication DevelopmentPartner
Content
•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
Offshore Software Development
Corporate Facts
Financially Rock-solid $7 M in Revenues in 2008 Strong focus on fundamentals
Financially Rock-solid $7 M in Revenues in 2008 Strong focus on fundamentals
Offerings Top-notch services Flexible Engagement
Model
Offerings Top-notch services Flexible Engagement
Model
People Over 200 employees Strong Leadership
People Over 200 employees Strong Leadership
Infrastructure State-of-the-art
& fail safe Disaster recovery
& Business continuity
Infrastructure State-of-the-art
& fail safe Disaster recovery
& Business continuity
Delivery Capability Onsite-offshore model High level of technical skills & Domain competency
Delivery Capability Onsite-offshore model High level of technical skills & Domain competency
Quality ISO 9001:2001
Quality ISO 9001:2001
Founded in 2001 in San Francisco, USA 2 continents, 2 offices, 2 offshore centers
Founded in 2001 in San Francisco, USA 2 continents, 2 offices, 2 offshore centers
Clients Global Leaders: France Telecom, Quest Software,
InterContinental Hotel Group, Protective Life Insurance
Startups and mid-size product companies
Clients Global Leaders: France Telecom, Quest Software,
InterContinental Hotel Group, Protective Life Insurance
Startups and mid-size product companies
Offshore Software Development
Engagement Model
Phase 4Phase 4
Phase 1Phase 1
Phase 3Phase 3
Phase 2Phase 2
CLIENTENGAGEMENT
TEAM
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
Offshore Software Development
Project Intranet
• 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)
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 Software Development
Several factors strengthen the business case for outsourcing services in Russia...
Offshore Delivery Model
Users, Customers
Front OfficeCustomer facing
Back OfficeRussia
1s
t lev
el S
up
po
rt
2nd and 3rd Level Support
Front Office
Functional
Responsibilities
Back Office
Functional
Responsibilities
Common tools and Processes
Knowledge Base
Service Management
Quality Management
Technical Infrastructure
Development Center
Of course, the split of work between front and back
offices may change!
Offshore Software Development
US/Offshore Work-Split
1
Client’s Business Users*
Client’s Helpdesk Front OfficeSupport Team
Client’s Systems
US Offshore
2 3
4
Client SolveITLabs US Office
SolveITLabs Development
Center
Log ticket
Ticket assignedTicket assigned
to Support Team
Access Client’s Applications for
Problem Resolution
Periodic face to face meetings Service Delivery Manager monitoring operations
Establish 2-way communication with user and work
collaboratively till the ticket is closed
Manage Contingencies
3
Manage Contingencies
Offshore Software Development
Types of offshore projects
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)
Offshore Software Development
Role of Onsite Coordinator
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 directionsVisa 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 Software Development
Offshore Outsourcing - No Micromanagement
LocalProject Lead
DeveloperProjectLead
Developer
Developer
onsite offshore
ProjectManager
Developer
Developer
Developer
onsite offshore
Offshore Software Development
Infrastructure
VPN over
internet
Offshore
firewallfirewall
Onsite
Source
Repository
Continuous
releases
Intranet (Build
results, Issue
tracker)
DMZ reachable from offshore
firewall
Offshore Software Development
Communication Tools
• 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• Through builds: every day, 2 times a week• Chat: continuously
Val
ue in
team
kno
wle
dge
shar
ing
Usage frequency
TravelsWord
documentIntranet
Phone
C
Video Conference
Chat
Forum
Offshore Software Development
How to share knowledge ?
Travels in both directionsEspecially before new subjectsFunctional training for Project Leads
Have Project Leads do the business conceptionAs much as possible
Have Project Leads do the detailed design
Open chat channels with functional personsShould 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 casesHave separate team writing scripts and running them
Offshore Software Development
Project Development Approach
P1: Business Proposal
P2: RequirementClarification
P3: Project Planning &
Prioritization
P4: Design and
Prototype
P5: Documentation
P6: Development
P7:Testing &
Quality Assurance
P8: Deploy
Owner: Sponsor
ApprovalProcess
Owner: Product Manager
RequirementApproval
Owner: Project Manager Owner: Project Team
Project Review
Design Review
Code Review
AcceptanceReview
Owner: Project Team
Owner: Project TeamOwner: OperationsOwner: Operations
Offshore Software Development
Offshore Software Development
P7Release Mgmt & QA
Regression Tests
PerformanceTests
P8Operations
P6 - Back-end Development
Integration Testing
• HTML coding• Page Tagging
• Page Validation Test• Compatibility Test
• Implement Biz Logic• Implement Database
• Implement Interfaces• Unit Testing
• Functional Testing
Security Audit
Usability Tests
Portal Validation
Rollout Programs
P9ProjectDebrief
P1Business Proposal
P2RequirementsClarification
P3Planning
P4Design/Prototype
• Conduct TechnicalAssessment
• Review:– Content Quality
– Usability Quality– Operational SLA
• Update P1 through P4 documents
• Refine Project Plan– Time lines– Resources
P5Finalize Product Spec
Remedial Plan
Lessons Learned
OperationProcedures
SLA
PrototypeMockups
Wireframes
BusinessFlowchart
InfrastructureDesign Doc.
FunctionalSpecification
Draft SLA
Document
P6 - Front-end Development
•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
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
Project Iterations
• 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 Software Development
Offshore/Onsite Testing
Developerworkstations
Dev ServerQA/Staging
ServerProduction
Environment
Development platform
Set up from offshore
- Unit tests (mocks)
- Some integration
tests
- Integration testing
(manual)
- Functional tests by
developers (manual)
- Technical / Functional
tests (manual)
- Performance testing
(manual)
- Functional tests by
end users (manual)
- Client customers
UATEnvironment
Offshore Software Development
Suggestions
Requires good onsite coordinatorsTo solve communication issues due to language and cultural differencesTo act as “harmonizers”, improve communicationTo shield teams from the wearing effect of working from a distance
Requires a lot of travel, communicationHard to work with someone you didn’t see - leads to misunderstandingAt all levels – Project Managers, Team Leads, Architects
Share activities between onsite/offshoreNot just development, but also
− Business Requirements, Architecture Design, System Testing, etcAllow offshore people to participate actively in the development processShare the project knowledge among all project team members
Write functional test cases before development startsHelps transfer business knowledgeHelps to catch misunderstanding earlyCan be automated by QA Developers
Offshore Software Development
Waterfall Development Model
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.
Offshore Software Development