Agility in IT outsourcing Second Company IT business solutions
Even voorstellen Hans Dekkers 1970, Amsterdam Drs Informatica / Software Engineering CV VU / UvA Software Engineer since 1994 Technical project lead since 1997 Interim manager, project manager since 1999 UvA since 2004 Director at Second Company since 2008 Expertise: software process en organisation; change management; requirements engineering; software quality KPN, UPC, Telfort, ING, Postbank, ABN, Robeco, Extra-Clearing, SNT, Politie Amsterdam-Amstelland, KIT, Unipress 2
Software Engineering at the UvA One year program compares with program of Carnegie-Mellon Problem oriented education 7 courses: Requirements, Architecture, Design, Construction, Testing Evolution Process Paper sessions building research competences throughout the programme Literature study + master project After: practice or PhD 3
Overcoming communication problems in off shore outsourcing Sebastiaan Herman 1977, Haarlem Drs. Software Engineering CV UvA Software engineer since 1995 Software architect since 2007 Director at Second Company since 2008 Expertise: Business IT Alignment, Web development, Coaching offshore development teams, SOA, Business Process Engineering ebay, Getronics, Paydutch, Timegrip, Extrea Webservices, IT Intelligence, Mindbus 4
5
Why does it go wrong Some of the reasons: Communication and cultural problems Volatile and vague requirements Lack of quality Poor planning Lack of domain knowlegde. Remarkable Failing to achieve financial benefits: overhead in communication, control and coordination costs Waterfall method Heavily specified 6
Clear and detailed specifications Part of the solution or part of the problem?
8
Inherently ambiguous 9
Problems in requirements Volatility Incomplete, faulty, ambiguous Hard to assess quality Overwhelming Feasibility Expensive 10
Vision
Fully use intellectual capacity developers We can t do without Find problems in specifications Detailed design Coming up with alternatives Filling in the blanks They need to be empowered Domain knowledge Overview Interaction moments Appropriate tasks Freedom to make mistakes Stimulated to contribute 13
Rados: roles Developer: Masters the technical domain Thinks about functionality Understand the need for a solution Customer: Problem owner Set of requirements Stakeholders Possible: legacy, API, architecture, design Architect: Aligns business and IT Solution concept and framework Coach 14
RADOS Rapid Application Development Off Shore Project startup: constraints the project and sets conditions Set up collaboration platform Problem to solve, pricing, milestones Customer involvement Plan: defines solution with development team Starting point: Vision document including goal and domain description Deliverable: prototype of the system to build Deliverable: architecture of the system to build Collaborate: develop the software Best practices: test infrastructure; iterative and incremental development; continuous build; product demos; measurement and reports Accept Acceptance by customer Deployment Service 15
Thinking inside the box Lead by questions Constrain the creative space Set goals Timeline Deliverables Scope Accommodate for clear decision criteria Trust and space 16
Diagnose Every interaction builds insight Don t talk, but listen Ask questions Analyze: Why is the solution not adequate? Not able to judge quality of solution? Work ethic? Competence? Task too complex? Motivation? Lack of trust, lack of confidence? 17
C est le ton qui fait la musique but no music without a soul Architect Determines constraints and sets clear rules Task division Coach Leads with questions Motivates, clarifies Rewards, pays attention, stimulates Diagnoses Father Situation specific Boss Hire, fire 18
And? Does it work?
Case Payment Provider Start: Failed first project Poor code quality Context: 5 developers 8 months 80+ use cases 700 kloc Results Successful application Easily extendible and deployable framework Empowered staff 20
Graduation project Empirical results 21
Dialogue examples Anecdote 1 Ask questions instead of giving answers Offshore: Should the system charge a fee when a transaction expires and we return the money? Onsite: Since we reduced the risk for the customer that all his money is gone this would be reasonable. But on the other side, a customer is more likely to use our system when he gets all his money back when something went wrong. Anecdote 2 - Offshore team helps solve functional issues Onsite: Can we implement generic openid. For example: 1. Enter a URL 2. Go to the openid provider 3. Login using the openid provider. Offshore: It is possible, but some openid service providers have different formats of request and response. So we will only support OpenID 2.0. Besides, I don't think the user will understand how to input the correct provider's URL as it requires a fair amount of technical understanding. Anecdote 3 - Offshore comes with ideas Offshore: I think the HelpDesk should have an unlock function, which can change the transaction status from Lock to Inspect or Retrieve or Compensate. Onsite: Unlock! Like a button somewhere that allows the helpdesk to provide this task when the users are not capable of doing this. Offshore: Yes, you get it! 22
Call management system Start: Detailed specification on pseudo code level. Micro management. Unsatisfied with quality of off shore team Primary application knowledge and decisions in Nl Context: 5 architects in Nl; 20 Developers in India CMMi level 5 certified Indian development organization 8 months 10 year old system, big and complex 400+ tables / 1 MLOC Results pilot project Downsize start documentation from 100 to 10 pages Specifications developed in India Outsourcing project management and testing Empowered staff coming up with speedy and quality solution 23
Case internet advertisement Start: Many complex problems Unclear cause of problems Unsatisfied with quality of supplier Dependant on supplier Context: Complex IT architecture. Hard to reproduce and analyze problems. Externally developed component collaborates through API External software developers in Nl. 6 months 3 year old system, 50 tables / 300 KLOC Results 6 months Significant reduction of development time and effort Problems have been resolved Trust between off site developers restored 24
Summary Use capabilities of your off shore team to the fullest extent. We can t do without. Empower your team Constrain the creative space Get to the heart of things Intervene and redirect 25