Volvo IT & Learngate LMS Uppdragspresentation 22 april 2009
Innehåll Vad är ett LMS Learngates historia Volvo IT tar över Min roll Versionshantering Hur ska man jobba? Språkprojektet Sprint 1 Sprint 2 SVNKIT Lösningen och det nya arbetssättet
Vad är ett LMS Ett system för att samla alla läraktiviteter på ett företag ett och samma ställe: Mediakurser (CD) E-learning kurser (Webbaserade) Lärarledda kurser (bokning av lärare, lokal, hotel, etc) Utvärderingar (generella och kopplade till specifika kurser) Förkunskapstester, eftertester Certifieringstester Communities (forums, chat, arbetsgrupper med delad arbetsyta) Uppföljning i form av inbyggda statistik- och rapporteringsfunktioner samt integration med Crystal Reports Eleven har följande fördelar: Allt på ett ställe Får bra översikt över genomförda och kommande akvititeter Kan få personlig studieplan Mha av förkunskapstester hamnar eleven i rätt grupp 2017-04-07
Learngates historia Systemet levererades först av Open Training (där jag jobbade från 2003-2007) till flera kunder, bl a Ericsson, OMX, SEB och Volvo IT Produktionssatts första gången hos Volvo i början av 2002 J2EE (JSP & Servlets) MVC arkitektur med egenutvecklad persistenslager Oracle databas i botten Driftas på en WebSphere 6.1 applikationsserver Används av flera olika Volvo bolag, bl. a. Volvo Trucks, Volvo CE, Volvo Buss, m.m. Cirka 180 000 användare runt om i världen, varav ca 60 000 är från Volvo Truck Corporation Kan accessas både internt (intranet) och externt (via secure server) Systemet är översatt till 26 olika språk mha sk Language Resource Bundles. Dessa filer kan redigeras direkt i systemet. 2017-04-07
Learngates historia (forts.) 2017-04-07
Volvo IT tar över Under våren 2008 började Volvo IT bli mer och mer missnöjd med Open Training Volvo fattade beslutet att själv ta över ansvaret för förvaltningen av källkoden. Jag kom tillbaka från pappaledigheten i maj 2008 och hade inget uppdrag. 2017-04-07
Volvo IT tar över – Min roll Systemarkitekt Systemutvecklare Projektledare Testare Configuration Manager Second-line support tekniker Mentor 2017-04-07
Volvo IT tar över - Versionshantering Beslutet att använda Subversion hade redan fattats innan jag kom tillbaka. Volvo IT hade en CM vars jobb bl a var att ta fram en vettig struktur till Subversion repositoriet. Det blev en standard struktur Substrukturen under trunk följer RUP: 1_ProjectManagementSet 2_RequirementSet 3_AnalysisDesignSet 4_ImplementationSet 5_TestSet 6_DeploymentSet 7_EnvironmentSet 8_ConfChangeMgmtSet 2017-04-07
Volvo IT tar över – Hur ska man jobba? All programkod ska ligga i Subversion Varje Customer Request ska hanteras i en separat task branch och mergas in i trunken innan produktionssättningen. Varje release till test eller produktion ska taggas. En helt annan nivå vad gäller uppföljningsmöjligheter än vad som var möjligt med Open Trainings föråldrade (och dyra) VM system. 2017-04-07
Volvo IT tar över – Problem Hur ska Open Training arbeta med koden framöver? De har ett eget VM system och använder samma kodbas för alla sina kunder. Hur ska man hantera alla Language Resource Bundles? De ska också versionshanteras. Ska de branchas för varje ny customer request? Är det nödvändigt? Är det rimligt? När Volvo tog över ansvaret för källkoden fanns det ca 1 500 språkfiler (ca 50 basfiler, alla översatta till 26 olika språk). Dessa filer redigeras inte bara av utvecklare innan en release utan också av systemets administratörer via ett gränsnitt i systemet. Hur hanterar man dessa ändringar så att de kommer ner i Subversion? 2017-04-07
EUD beställde en förstudie av Volvo IT som föll på mig. Språkprojektet Volvo Truck EUD var intresserade av att städa upp bland alla de ca 1 500 språkfilerna Få bort taggar som inte används Fixa det buggiga verktyget som de använde för att redigera språkfilerna Hitta på en ny rutin/process för arbete med språkfilerna EUD beställde en förstudie av Volvo IT som föll på mig. 2017-04-07
Språkprojektet – Sprint 1 Tittade på språkhantering i systemet som en helhet Fokus på de delarna av systemet som inte följde etablerade standard Skrev en omfattande rapport som dels var en kartläggning av språkhanteringsstödet i systemet, dels en utvärdering av olika system/verktyg för arbete med språkfiler Kom med flera olika förslag till förbättring, bl a: Slå ihop de ca 1 500 språkfiler till ca 100 istället, grupperade efter systemmodul Skriva funktioner för sortering av språktaggar inom filerna och för identifiering av oanvända taggar Sluta använda det gamla verktyget för hantering av språkfiler och istället använda en kombination av en nyutvecklad import/export funktion och Notepad++ ”Tagga” nya taggar för varje release så att de lätt kan identifieras vid export 2017-04-07
Språkprojektet – Sprint 1 EUD valde att gå vidare med de flesta förslag (ca 200 timmars utveckling och test) Funktionaliteten levererades enligt plan och budget 2017-04-07
2017-04-07
Språkprojektet – Sprint 2 Under utvecklingen av Sprint 1 kom det fram ett förslag (från mig) för en Inplace editor för språkfiler. EUD nappade direkt Byggde vidare på förstudien från Sprint 1 och gav ett detaljerat förslag på hur en Inplace editor skulle kunna se ut. Föreslog även en direkt koppling mellan systemet och Subversion servern Kom även med förslag på arbetsrutiner och hur alla de olika bitarna hängde ihop Allt detta godkändes för ytterligare ca 150 timmars utveckling 2017-04-07
Språkprojektet – Sprint 2 Valde att använda ramverket SVNKIT för kommunikation mellan LMS:et och Subversion Möjligör bl a koppling mellan en Java webbapplikation och en Subversion repository Stödjer alla SVN operationer som man kan göra på en arbetskopia mha Tortoise eller SVNs kommandorads verktyg Inkluderar högnivå API, lågnivå API, JavaHL API samt en egen kommandorads klient Öppen källkod Väldokumenterad med mycket information om användning tillgänglig på ramverkets Webbsidor Det visade sig vara relativt enkelt att integrera ramverket in i Learngate. Större delen av tiden i sprint 2 gick åt utvecklingen av själva Inplace editorn. 2017-04-07
SVNKIT arkitektur 2017-04-07
Lösningen och det nya arbetssättet Both the test and production servers have connections to Subversion. The Subversion connection can be switched between Maintenance Mode and Release Mode. In Maintenance Mode, the connection to Subversion is active and the InPlace Editor and Import/Export functions are activated. Every time a language file is exported or opened using InPlace Editor, the latest version of the file is retrieved from Subversion. Every time a language file is imported or saved using InPlace Editor, the change is committed to Subversion. Every time the system is restarted, the latest versions of all language files are retrieved from Subversion. In Release Mode, the connection to Subversion is shut down and the InPlace Editor and Import/Export functions for language files are deactivated. When the system is restarted, no synchronization with Subversion occurs. The system has a Synchronize with Subversion button to force a retrieval of the latest language files from Subversion. 2017-04-07
Lösningen och det nya arbetssättet (forts.) SVN server LMS test server lang files prod server Developer Computer The prdouction server is normally run in Mainenance Mode, meaning that changes are always committed to Subversion. The latest versions of the files are always retrieved when exporting/opening and when the system restarts. The developer uses the Tortoise SVN client which will automatically notify him/her of any conflicts in the files caused by runtime updates to Subversion. The developer only makes changes to the default version of each language file base (i.e. no language suffix) while the production server is in Maintenance Mode. source code The test server is normally run in Release Mode, meaning that the Import/Export and InPlace Editor functions are deactivated and the LMS is cut off from Subversion. No language file updates will be retrieved from Subversion if/when system restarts. However, the Synchronize with Subversion button can be used to force a retrieval of the latest language files at any time. 2017-04-07
Lösningen och det nya arbetssättet (forts.) An administrator switches the production server to Release Mode 1-2 weeks prior to release, thus disabling Import/Export and InPlace Editor functions. The production version of LMS is cut off from Subversion while in Release Mode, meaning that no updates will be retrieved from Subversion if/when system restarts. Once the production server is switched to Release Mode, the administrator switches the test server to Maintenance Mode, thus activating the Import/Export and InPlace Editor functions and enabling the connection to Subversion in the test version of LMS. The developer imports the UK English and Swedish versions of the release’s new and updated language tags. The responsible people in each market do their translation work on the new release’s language tags via Import/ Export and InPlace Editor. The day before deploying the new release to the production server, the administrator switches the test server back to Release Mode, once again disabling all language editing functionality and the connection to Subversion. When the release is deployed to the production server, the system will automatically start up in Maintenance Mode and retrieve the latest versions of the language files from Subversion. 2017-04-07