Outsourcig ad Globalizatio i Software Developmet Jacques Crocker UW CSE Alumi 2003 jc@cs.washigto.edu Ageda Itroductio The Outsourcig Pheomeo Leadig Offshore Projects Maagig Customers Offshore Developmet Notes Q & A Slides available at http://seve.maqsoftware.com/cse403_outsourcig.ppt Itroductio Jacques Crocker Outsourcig Graduated with Bachelors i Computer Sciece less tha 2 years ago from UW Took CSE 403 i Sprig Quarter 2003 Worked at a medium sized dotcom (Ovia.com) for 3 moths after graduatig Quit Ovia ad joied a small outsourcig compay with 10 employees i Seattle, ad over 50 i Bombay Curret positio: Lead Software Egieer / Architect MAQ Software (www.maqsoftware.com) Curretly workig with 3 other UW CSE grads (David Owes, Be Hady, Susa Shioda) What is outsourcig? Hirig a exteral compay specialized i software developmet to implemet software projects Why outsource? For compaies with limited developmet eeds, it s usually more cost effective to hire a experieced software team tha to try to hire employees or cotractors ad maage them How are the cotracts structured? Projects are defied from the start as fixed cost or billed per time/materials Outsourcig Alteratives Outsourcig here to stay Full-time employee dev teams Cotract cosultats (W2) Off the shelf packaged products Key efficiecies ca be gaied i hirig a specialized team of developers who ca ramp up quickly ad get your project completed for a fixed cost Customers get exactly the applicatio they wat, ow the code-base delivered, ad have the flexibility to maage the directio of their product without the baggage of maagig employees 1
Outsourcig Across the Globe Major cost beefits? #1 Reaso Cost Developers i Idia cost (50-70%) less Other Reasos Aroud the clock developmet schedule (time zoe differeces mea there ca be 2 teams workig o the same project, ight & day) Scalability eables a small outsourcig firm like us to easily scale up ad dow accordig to the curretly available workload Does 50-70% cost savigs for developers traslate ito 50-70% cost savigs o the etire project? Not quite High commuicatio overhead Lower project visibility Offshore outsourcig sigificatly icreases risk of project failure Requiremets ot uderstood Lower quality code Fial product potetially uusable Offshore Developmet Leadig Offshore Projects Result: applyig risk reducig software egieerig best practices are eve more importat whe maagig offshore developmet projects tha i ormal situatios Sice the customers are i the US, there is always the requiremet for a skilled local resource to maage the project ed-to-ed Get to do the fu stuff Desig the product Architect the solutio Pla the implemetatio Keep tabs o developmet progress Fialize ad deliver product to customer What About Codig? Offshorig Best Practices While sometimes temptig whe maagig a software developmet project, do t stop codig! Oe of the key practices I ve see i successful offshore project maagemet is active codig ivolvemet of the local project lead Oe essetial risk reducig practice is to review all code that has bee checked ito the project o a daily basis Writig Uit Tests o Busiess Compoets to automate build verificatio is a great practice to uderstad the code ad provide valuable feedback Some techiques to follow to sigificatly icrease the chaces that a project will be successful Clickable Screes Daily Code Reviews Daily Build ad Smoke Tests Uit Testig 2
Clickable Screes Daily Code Reviews Prototype the fial product early o i the project to defie what you are buildig Ca use HTML, Image Maps, Flash, Rapid dev tools, depedig o the type of project May go through multiple phases (post it otes, to photoshop, to html) Fial result however should be somethig that ear exactly resembles the fial product i terms of look, feel, ad workflow Throughout the life of the project, it s essetial to be o top of all code chages, especially architectural oes that impact the applicatio s overall API Checked i code should be reviewed for readability, logic, ad fuctioality Bad codig practices eed to be followed up o ad addressed quickly Daily Build ad Smoke Tests Automated Uit Testig After the first testable build milestoe, every day the etire code-base should be itegrated, built, ad verified Do t let projects go more tha 2 days with a broke build! Have this doe offshore also so they have a chace to fix ay major problems before they sed it Either way, it s always required to rebuild the applicatio every morig from the source tree ad ru it through the build verificatio uit tests to catch errors early o Automated uit tests are ivaluable for testig the architecture ad providig a resource to help others uderstad how to use the applicatios API Writig uit tests agaist other s code is also a great way to help uderstad it Keepig a growig library of uit tests will keep builds stable ad clea Writig uit tests to demostrate major applicatio bugs will ot oly help the developers fix it, but also to esure that the bug does t creep up agai later Maagig Customers Customer Best Practices Iteractig with customer / project stakeholders is a big part of maagig offshore projects High project visibility = better feedback Mai task here is commuicatig progress so they feel comfortable that the project will be successful Some techiques to follow to maage customer ad keep them happy with the progress Clickable screes (agai!) Offer choices, do t ask questios Weekly status meetigs Milestoes 3
Clickable Screes for Customer Approval Do t ask ope questios Have clickable screes that fully demostrate the applicatio fuctioality to show to the customer They ll be able to visualize the fial product early o ad more likely to give valuable feedback Icreases their cofidece that the project will deliver (much less likely to cacel the project!) While the screes will always be chagig eve after they sig off o them, havig the screes approved before implemetatio starts will at least give some leverage i case you eed to refuse a chage that will sigificatly icrease dev effort Whe requirig customer feedback, it s almost always better to offer choices If you ask a questio: How should this report look? you ll very rarely get a decet aswer Usually you ca piece together eough iformatio to come up with somethig that makes some sese. Show it to them ad they ll defiitely tell you what is wrog with it Milestoes Offshore Developmet Notes Break projects up ito well defied milestoes that list the fuctioality that will be delivered At each milestoe, demo the app with potetial applicatio users ad project stakeholders to get feedback o the updates to the build Commuicatig with your dev team Maagig a test team Commo mistakes / tedecies Future of the Idustry Commuicatio with Offshore Dev Team Commuicatio with Offshore Dev Team (cotiued ) Nightly cofereces at the begiig of their day Short coferece call via phoe to quickly discuss daily Loger chat via Istat Messeger to go through critical bugs or architectural decisios Daily status update emails at the ed of their day Report o progress completed for the day Ay pedig issues to be discussed Build iformatio A robust bug trackig applicatio is essetial for trackig issue resolutios 4
Maagig a Offshore Test team Ope Discussio A very importat part of every project is a orgaized ad disciplied testig effort. Testig is oe of the fittig capabilities to be offshored, eve for local dev teams. Time zoe differeces make thigs very coveiet Questios? Thoughts? Opiios? 5