{"id":94520,"date":"2020-09-18T07:42:20","date_gmt":"2020-09-18T05:42:20","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/chto-pomoglo-nam-bystro-perestroitsya-na-onlajn-torgovlyu-v-novyh-usloviyah"},"modified":"2020-09-18T07:42:20","modified_gmt":"2020-09-18T05:42:20","slug":"chto-pomoglo-nam-bystro-perestroitsya-na-onlajn-torgovlyu-v-novyh-usloviyah","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-pomoglo-nam-bystro-perestroitsya-na-onlajn-torgovlyu-v-novyh-usloviyah","title":{"rendered":"Vad hj\u00e4lpte oss att snabbt st\u00e4lla om till onlinef\u00f6rs\u00e4ljning under de nya f\u00f6rh\u00e5llandena","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hej!<\/p>\n<p>Jag heter Mikhail och \u00e4r IT-chef p\u00e5 f\u00f6retaget 'Sportmaster'. Jag vill dela med mig av en historia om hur vi hanterade de utmaningar som uppstod under pandemin.<\/p>\n<p>Under de f\u00f6rsta dagarna av de nya f\u00f6rh\u00e5llandena stannade den traditionella offline-handeln f\u00f6r 'Sportmaster' och belastningen p\u00e5 v\u00e5r onlinekanal, s\u00e4rskilt n\u00e4r det g\u00e4ller hemleveranser, \u00f6kade tiofaldigt. Inom n\u00e5gra veckor transformerade vi en enorm offline-verksamhet till online och anpassade tj\u00e4nsten efter v\u00e5ra kunders behov.<\/p>\n<p>I stort sett blev det som tidigare var v\u00e5r sekund\u00e4ra verksamhet v\u00e5r huvudaff\u00e4r. Betydelsen av varje online-order \u00f6kade extremt. Vi beh\u00f6vde bevara varje krona som kunden tog med sig till f\u00f6retaget.&nbsp;<\/p>\n<p><img decoding=\"async\" alt=\"Vad hj\u00e4lpte oss att snabbt st\u00e4lla om till onlinef\u00f6rs\u00e4ljning under de nya f\u00f6rh\u00e5llandena\" src=\"\/wp-content\/uploads\/2020\/09\/3e1dfc21636b29259fd29143e4a53f78.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>F\u00f6r att snabbt kunna svara p\u00e5 kundernas f\u00f6rfr\u00e5gningar \u00f6ppnade vi ett extra kontaktcenter p\u00e5 f\u00f6retagets huvudkontor, och vi kan nu ta emot omkring 285 000 samtal per vecka. Samtidigt har vi \u00f6verf\u00f6rt 270 butiker till ett nytt format f\u00f6r kontaktl\u00f6s och s\u00e4ker drift, vilket gjorde det m\u00f6jligt f\u00f6r kunderna att h\u00e4mta sina best\u00e4llningar och f\u00f6r anst\u00e4llda att beh\u00e5lla sina jobb.<\/p>\n<p>Under transformationen st\u00f6tte vi p\u00e5 tv\u00e5 huvudproblem. F\u00f6r det f\u00f6rsta \u00f6kade belastningen p\u00e5 v\u00e5ra online-resurser avsev\u00e4rt (hur vi hanterade detta kommer Sergey att ber\u00e4tta om). F\u00f6r det andra \u00f6kade antalet s\u00e4llsynta (innan COVID) operationer m\u00e5ngdubbelt, vilket i sin tur kr\u00e4vde en stor m\u00e4ngd snabb automatisering. F\u00f6r att l\u00f6sa detta problem tvingades vi snabbt omdirigera resurser fr\u00e5n de omr\u00e5den som tidigare var huvudfokus. Hur vi klarade av detta kommer Elena att ber\u00e4tta om.<\/p>\n<h2>Drift av onlinetj\u00e4nster<\/h2>\n<p><em>Koliesnikov Sergey, ansvarar f\u00f6r driften av webbshoppen och mikrotj\u00e4nsterna<\/em><\/p>\n<p>Fr\u00e5n det \u00f6gonblick som v\u00e5ra fysiska butiker b\u00f6rjade st\u00e4nga f\u00f6r bes\u00f6kare b\u00f6rjade vi m\u00e4rka en \u00f6kning av m\u00e4tv\u00e4rden som antalet anv\u00e4ndare, antalet best\u00e4llningar som g\u00f6rs i v\u00e5r app och antalet beg\u00e4rningar till applikationerna.&nbsp;<\/p>\n<p><img decoding=\"async\" alt=\"Vad hj\u00e4lpte oss att snabbt st\u00e4lla om till onlinef\u00f6rs\u00e4ljning under de nya f\u00f6rh\u00e5llandena\" src=\"\/wp-content\/uploads\/2020\/09\/5094662d75314169328e124d0ae9f5b5.jpg\" style=\"display:block;margin: 0 auto;\" \/>Antalet best\u00e4llningar fr\u00e5n 18 till 31 mars<img decoding=\"async\" alt=\"Vad hj\u00e4lpte oss att snabbt st\u00e4lla om till onlinef\u00f6rs\u00e4ljning under de nya f\u00f6rh\u00e5llandena\" src=\"\/wp-content\/uploads\/2020\/09\/4714a5d5595042b66b33f5f93b002734.jpg\" style=\"display:block;margin: 0 auto;\" \/>Antalet f\u00f6rfr\u00e5gningar till mikrotj\u00e4nsterna f\u00f6r onlinebetalningar<img decoding=\"async\" alt=\"Vad hj\u00e4lpte oss att snabbt st\u00e4lla om till onlinef\u00f6rs\u00e4ljning under de nya f\u00f6rh\u00e5llandena\" src=\"\/wp-content\/uploads\/2020\/09\/9145afe051f8d4d4da0e00a69d469b92.jpg\" style=\"display:block;margin: 0 auto;\" \/>Antalet best\u00e4llningar som lades p\u00e5 webbplatsen<\/p>\n<p>I den f\u00f6rsta grafiken ser vi att tillv\u00e4xten uppgick till cirka 14 g\u00e5nger, medan den andra visar 4 g\u00e5nger. Den mest illustrativa metrik vi anser vara svarstiden f\u00f6r v\u00e5ra applikationer.&nbsp;<\/p>\n<p><img decoding=\"async\" alt=\"Vad hj\u00e4lpte oss att snabbt st\u00e4lla om till onlinef\u00f6rs\u00e4ljning under de nya f\u00f6rh\u00e5llandena\" src=\"\/wp-content\/uploads\/2020\/09\/bfe187bea02c83ce9d9e3286c486f85b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>I denna graf ser vi svaret fr\u00e5n frontend och applikationer, och vi har kommit fram till att vi inte har sett n\u00e5gon verklig tillv\u00e4xt.<\/p>\n<p>F\u00f6rst och fr\u00e4mst beror detta p\u00e5 att vi p\u00e5b\u00f6rjade f\u00f6rberedande arbete i slutet av 2019. Nu har v\u00e5ra tj\u00e4nster reserverats, med redundans p\u00e5 niv\u00e5erna av fysiska servrar, virtualiseringssystem, containrar och tj\u00e4nster i dessa. Samtidigt till\u00e5ter kapaciteten i v\u00e5ra serverresurser att hantera multipla belastningar.<\/p>\n<p>Det huvudsakliga verktyget som hj\u00e4lpte oss genom hela denna process var v\u00e5rt \u00f6vervakningssystem. \u00c4rligt talat hade vi inte nyligen ett enhetligt system som gjorde det m\u00f6jligt att samla in metrik p\u00e5 alla niv\u00e5er, fr\u00e5n den fysiska h\u00e5rdvaran till aff\u00e4rsm\u00e5tt.&nbsp;<\/p>\n<p>Formellt sett fanns det \u00f6vervakning i f\u00f6retaget, men den var oftast spridd och ansvarig f\u00f6r specifika avdelningar. Faktum var att n\u00e4r en incident intr\u00e4ffade hade vi n\u00e4stan aldrig en gemensam f\u00f6rst\u00e5else f\u00f6r vad som hade h\u00e4nt, ingen information gavs, och detta ledde ofta till en cirkelr\u00f6relse i s\u00f6kandet och lokaliseringen av problemet f\u00f6r efterf\u00f6ljande l\u00f6sning.<\/p>\n<p>Vid ett tillf\u00e4lle ins\u00e5g vi och beslutade att vi inte l\u00e4ngre ville tolerera detta \u2013 vi beh\u00f6vde ett enhetligt system f\u00f6r att se hela bilden. De huvudsakliga teknologierna i v\u00e5r stack inkluderar Zabbix som alert- och metriklagringscentral, Prometheus f\u00f6r insamling och lagring av applikationsmetrik, Stack ELK f\u00f6r loggning och lagring av data f\u00f6r hela \u00f6vervakningssystemet, samt Grafana f\u00f6r visualisering, Swagger, Docker och andra anv\u00e4ndbara och bekanta verktyg.<\/p>\n<p>Vi anv\u00e4nder dessutom inte bara teknologier som finns p\u00e5 marknaden utan utvecklar ocks\u00e5 vissa saker sj\u00e4lva. Till exempel skapar vi tj\u00e4nster f\u00f6r att integrera system med varandra, det vill s\u00e4ga n\u00e5gon form av API f\u00f6r insamling av metrik. Dessutom arbetar vi p\u00e5 egna \u00f6vervakningssystem \u2013 p\u00e5 aff\u00e4rsm\u00e4tningsniv\u00e5 anv\u00e4nder vi UI-tester. Vi har \u00e4ven en bot i Telegram f\u00f6r att informera teamen.<\/p>\n<p>Och vi f\u00f6rs\u00f6ker ocks\u00e5 g\u00f6ra \u00f6vervakningssystemet tillg\u00e4ngligt f\u00f6r teamen s\u00e5 att de sj\u00e4lva kan lagra sina metrik och arbeta med dem, inklusive att st\u00e4lla in alertningar f\u00f6r vissa specifika metrik som inte har en s\u00e5 bred till\u00e4mpning.&nbsp;<\/p>\n<p>In the entire system, we strive for proactivity and the fastest possible localization of incidents. Moreover, the number of our microservices and systems has significantly increased recently, consequently raising the number of integrations. As part of optimizing the incident diagnostics process at the integration level, we are developing a system that allows for cross-system checks and provides results, which helps identify key issues related to imports and the interaction of systems with each other.&nbsp;<\/p>\n<p>Naturally, we still have room to grow and develop in terms of system operation, and we are actively working on this. You can read more about our monitoring system. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/517678\/\"><u>h\u00e4r<\/u><\/a><\/noindex>.&nbsp;<\/p>\n<h2>Technical Tests&nbsp;<\/h2>\n<p><em>Sergey Orlov, heads the center of competence in web and mobile development<\/em><\/p>\n<p>Since the closure of physical stores began, we have faced various challenges in terms of development. Primarily, there was a surge in load. It is clear that if no appropriate measures are taken, when high load is applied to the system, it can sadly turn into a pumpkin with a sad pop, either completely degrading in performance or losing its functionality altogether.<\/p>\n<p>The second aspect, slightly less obvious, is that the system under high load needed to be changed very quickly, adapting to changes in business processes. Sometimes several times a day. In many companies, there is a rule that during large marketing activities, no changes should be made in the system. At all, let it operate as it is.<\/p>\n<p>Whereas we essentially had an endless Black Friday, during which changes to the system needed to be made. And any error, problem, or failure in the system would be very costly for the business.<\/p>\n<p>Looking ahead, I can say that we managed to cope with these challenges; all systems withstood the load, scaled easily, and we did not experience any major technical failures.<\/p>\n<p>Det finns fyra grundpelare som g\u00f6r att systemet kan hantera h\u00f6g pl\u00f6tslig belastning. Den f\u00f6rsta \u00e4r \u00f6vervakning, som du l\u00e4ste om lite h\u00f6gre upp. Utan ett v\u00e4lfungerande \u00f6vervakningssystem \u00e4r det n\u00e4st intill om\u00f6jligt att identifiera systemets flaskhalsar. Ett bra \u00f6vervakningssystem \u00e4r som bekv\u00e4ma kl\u00e4der, det ska vara l\u00e4ttanv\u00e4nda och anpassade efter dina behov.<\/p>\n<p>Den andra aspekten \u00e4r testning. Vi tar detta p\u00e5 stort allvar: vi skriver b\u00e5de klassiska enhetstester, integrationstester, belastningstester och m\u00e5nga andra f\u00f6r varje system. Vi skriver dessutom en teststrategi, och vi str\u00e4var efter att h\u00f6ja niv\u00e5n p\u00e5 testningen s\u00e5 att manuella verifieringar inte l\u00e4ngre beh\u00f6vs.<\/p>\n<p>Den tredje grundpelaren \u00e4r CI\/CD Pipeline. Processerna f\u00f6r byggande, testning och distribution av applikationer ska vara s\u00e5 automatiserade som m\u00f6jligt, och det ska inte finnas n\u00e5got manuellt ingripande. \u00c4mnet CI\/CD Pipeline \u00e4r ganska djupt, och jag kommer bara ber\u00f6ra det ytligt. Det \u00e4r v\u00e4rt att n\u00e4mna att vi har en checklist f\u00f6r CI\/CD Pipeline, enligt vilken varje produktteam g\u00e5r igenom med hj\u00e4lp av kompetenscentra.<\/p>\n<p><img decoding=\"async\" alt=\"Vad hj\u00e4lpte oss att snabbt st\u00e4lla om till onlinef\u00f6rs\u00e4ljning under de nya f\u00f6rh\u00e5llandena\" src=\"\/wp-content\/uploads\/2020\/09\/fabee1de52c10790c33bb2d08935a657.jpg\" style=\"display:block;margin: 0 auto;\" \/>H\u00e4r \u00e4r checklistan<\/p>\n<p>P\u00e5 s\u00e5 s\u00e4tt uppn\u00e5s m\u00e5nga m\u00e5l. Det handlar om versionering av API, och funktionstoggling f\u00f6r att undvika en v\u00e5g av releaser, samt att uppn\u00e5 testt\u00e4ckning p\u00e5 s\u00e5dan niv\u00e5 att testningen \u00e4r helt automatiserad, distributionerna \u00e4r s\u00f6ml\u00f6sa och mycket mer.<\/p>\n<p>Den fj\u00e4rde grundpelaren \u00e4r arkitekturprinciper och tekniska l\u00f6sningar. Man kan prata l\u00e4nge och mycket om arkitektur, men jag vill betona ett par principer som jag vill lyfta fram.<\/p>\n<p>F\u00f6r det f\u00f6rsta \u00e4r det viktigt att v\u00e4lja specialiserade verktyg f\u00f6r specifika uppgifter. Ja, det l\u00e5ter sj\u00e4lvklart, och det \u00e4r uppenbart att man b\u00f6r sl\u00e5 i spik med en hammare, medan man b\u00f6r anv\u00e4nda speciella skruvmejslar f\u00f6r att \u00f6ppna armbandsur. Men i v\u00e5r tid str\u00e4var m\u00e5nga verktyg efter att bli mer universella f\u00f6r att n\u00e5 ut till ett s\u00e5 stort anv\u00e4ndarsegment som m\u00f6jligt: databaser, cache, ramverk och s\u00e5 vidare. Ta till exempel databasen MongoDB, som arbetar med flerdokumenttransaktioner, medan databasen Oracle arbetar med json-filer. Och det verkar som om allt kan anv\u00e4ndas f\u00f6r allt. Men om vi f\u00f6respr\u00e5kar prestanda m\u00e5ste vi tydligt f\u00f6rst\u00e5 f\u00f6rdelarna och nackdelarna med varje verktyg och anv\u00e4nda de som passar v\u00e5r uppgiftsklass.&nbsp;<\/p>\n<p>F\u00f6r det andra b\u00f6r varje \u00f6kning av komplexiteten vid systemdesign vara motiverad. Vi m\u00e5ste st\u00e4ndigt ha detta i \u00e5tanke, principen om l\u00e5g koppling \u00e4r allm\u00e4nt k\u00e4nd. Jag anser att den b\u00f6r till\u00e4mpas b\u00e5de p\u00e5 niv\u00e5n f\u00f6r en specifik tj\u00e4nst, p\u00e5 hela systemniv\u00e5n och p\u00e5 niv\u00e5n f\u00f6r det arkitektoniska landskapet. F\u00f6rm\u00e5gan att horisontellt skala varje komponent i systemet under belastning \u00e4r ocks\u00e5 viktig. Om man har denna f\u00f6rm\u00e5ga inneb\u00e4r skalning ingen sv\u00e5righet.<\/p>\n<p>N\u00e4r det g\u00e4ller tekniska l\u00f6sningar har vi bett produktteam att f\u00f6rbereda en f\u00e4rsk upps\u00e4ttning rekommendationer, id\u00e9er och l\u00f6sningar som de har genomf\u00f6rt i processen av f\u00f6rberedelser inf\u00f6r n\u00e4sta belastningsv\u00e5g.<\/p>\n<h2>Cache<\/h2>\n<p>Det \u00e4r viktigt att medvetet v\u00e4lja mellan lokala och distribuerade cacher. Ibland kan det vara meningsfullt att anv\u00e4nda b\u00e5de och inom samma system. Till exempel har vi system d\u00e4r en del av data i grunden \u00e4r en vitrin-cache, vilket betyder att k\u00e4llan till uppdateringar finns utanf\u00f6r systemet och att systemet inte \u00e4ndrar dessa data. F\u00f6r denna typ av tillv\u00e4gag\u00e5ngss\u00e4tt anv\u00e4nder vi den lokala Caffeine Cache.&nbsp;<\/p>\n<p>Och det finns data som systemet aktivt \u00e4ndrar under drift, och h\u00e4r anv\u00e4nder vi en distribuerad cache med Hazelcast. Denna strategi g\u00f6r att vi kan utnyttja f\u00f6rdelarna med en distribuerad cache d\u00e4r det verkligen beh\u00f6vs, och minimera servicekostnaderna f\u00f6r datacirkulationen i Hazelcast-klustret d\u00e4r vi kan klara oss utan det. Vi har skrivit mycket om cache. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/490912\/\"><u>h\u00e4r <\/u><\/a><\/noindex>och <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/504400\/\"><u>h\u00e4r<\/u><\/a><\/noindex>.<\/p>\n<p>Dessutom gav byte av serialiseringsteknik till Kryo i Hazelcast oss en betydande f\u00f6rb\u00e4ttring. \u00d6verg\u00e5ngen fr\u00e5n ReplicatedMap till IMap + Near Cache i Hazelcast gjorde att vi kunde minimera datar\u00f6relser inom klustret.&nbsp;<\/p>\n<p>Ett litet tips: vid massinvalidering av cache kan en taktik med uppv\u00e4rmning av en andra cache f\u00f6ljt av \u00f6verg\u00e5ng till den ibland vara till\u00e4mplig. Vid en s\u00e5dan metod borde vi f\u00e5 dubbel minneskonsumtion, men i praktiken, i de system d\u00e4r detta har anv\u00e4nts, minskade minnesanv\u00e4ndningen.<\/p>\n<h2>Reaktiv stack<\/h2>\n<p>Vi anv\u00e4nder den reaktiva stacken i ett relativt stort antal system. I v\u00e5rt fall handlar det om Webflux eller Kotlin med korutiner. Den reaktiva stacken passar s\u00e4rskilt bra n\u00e4r vi f\u00f6rv\u00e4ntar oss l\u00e5ngsamma in- och utdataoperationer. Till exempel, anrop till l\u00e5ngsamma tj\u00e4nster, arbete med filsystem eller lagringssystem.<\/p>\n<p>Den allra viktigaste principen \u00e4r att undvika blockerande anrop. Under huven p\u00e5 reaktiva ramverk k\u00f6rs ett litet antal aktiva tj\u00e4nstr\u00e5dar. Om vi ovarsamt g\u00f6r ett direkt blockerande anrop, som ett anrop till en JDBC-drivrutin, kommer systemet helt enkelt att stanna.&nbsp;<\/p>\n<p>F\u00f6rs\u00f6k att omvandla fel till egna runtime-exceptioner. Den verkliga exekveringsstr\u00f6mmen av programmet g\u00e5r till de reaktiva ramverken, vilket g\u00f6r kodexekveringen icke-linj\u00e4r. Som en f\u00f6ljd av detta \u00e4r det mycket sv\u00e5rt att diagnostisera problem via stack-traces. En l\u00f6sning h\u00e4r \u00e4r att skapa tydliga och objektiva runtime-exceptioner f\u00f6r varje fel.<\/p>\n<h2>Elasticsearch<\/h2>\n<p>Vid anv\u00e4ndning av Elasticsearch, undvik att v\u00e4lja oanv\u00e4nda data. Detta \u00e4r i princip ett mycket enkelt r\u00e5d, men det som oftast gl\u00f6ms bort. Om du beh\u00f6ver v\u00e4lja mer \u00e4n 10 000 poster p\u00e5 en g\u00e5ng, m\u00e5ste du anv\u00e4nda Scroll. I en analogi liknar detta en kursors\u00f6kning i en relationsdatabas.&nbsp;<\/p>\n<p>Anv\u00e4nd inte postfilter utan behov. Vid stora datam\u00e4ngder i huvudvalet belastar denna operation databasen mycket.&nbsp;<\/p>\n<p>Anv\u00e4nd bulkoperationer d\u00e4r det \u00e4r till\u00e4mpligt.<\/p>\n<h2>API<\/h2>\n<p>Vid utformning av API, inkludera krav p\u00e5 minimering av \u00f6verf\u00f6rda data. Detta \u00e4r s\u00e4rskilt relevant i samverkan med frontend: just p\u00e5 detta gr\u00e4nssnitt g\u00e5r vi utanf\u00f6r v\u00e5ra datacenterkanaler och arbetar redan p\u00e5 kanalen som kopplar oss till kunden. Om det finns minsta problem d\u00e4r, kan f\u00f6r h\u00f6g trafik orsaka en negativ anv\u00e4ndarupplevelse.<\/p>\n<p>Och slutligen, undvik att \u00f6ver\u00f6sa med all data, ha en tydlig approach till kontraktet mellan konsumenter och leverant\u00f6rer.<\/p>\n<h2>Organisatorisk transformation<\/h2>\n<p><em>Elena Eroshkina, IT-chef<\/em><\/p>\n<p>Vid tidpunkten f\u00f6r nedst\u00e4ngningen, n\u00e4r behovet av att snabbt \u00f6ka takten i onlineutvecklingen och inf\u00f6ra omnikanal-tj\u00e4nster uppstod, befann vi oss redan i en organisatorisk transformation.&nbsp;<\/p>\n<p>En del av v\u00e5r struktur har \u00f6verg\u00e5tt till att arbeta utifr\u00e5n principer och metoder f\u00f6r produktansats. Team har bildats som nu ansvarar f\u00f6r drift och utveckling av varje produkt. Medarbetare i s\u00e5dana team \u00e4r fullt engagerade och organiserar sitt arbete enligt Scrum eller Kanban, beroende p\u00e5 vad som passar dem b\u00e4st, de anpassar distributionsprocessen, implementerar tekniska metoder, kvalitetsmetoder och mycket mer.<\/p>\n<p>Av en lycklig tillf\u00e4llighet hade majoriteten av dessa produktteam just verkat inom online- och omnikanal-tj\u00e4nster. Detta m\u00f6jliggjorde f\u00f6r oss att p\u00e5 kort tid (allvarligt, bokstavligt talat inom tv\u00e5 dagar) g\u00e5 \u00f6ver till distansarbete utan att tappa effektiviteten. Den etablerade processen gjorde det m\u00f6jligt att snabbt anpassa sig till de nya arbetsvillkoren och uppr\u00e4tth\u00e5lla ett tillr\u00e4ckligt h\u00f6gt tempo f\u00f6r att leverera ny funktionalitet.<\/p>\n<p>Dessutom uppstod det ett behov av att st\u00e4rka de team som befinner sig i framkant av onlineverksamheten. Vid den tidpunkten blev det klart att vi endast kunde g\u00f6ra detta med interna resurser. Ungef\u00e4r 50 personer bytte omr\u00e5de d\u00e4r de tidigare arbetat och integrerades i arbetet med en ny produkt under tv\u00e5 veckor.&nbsp;<\/p>\n<p>F\u00f6r detta kr\u00e4vdes inga speciella ledarskapsinsatser, eftersom vi parallellt med att organisera v\u00e5r egen process, med teknisk f\u00f6rfining av produkten och kvalitetsmetoder, l\u00e4r v\u00e5ra team sj\u00e4lvorganisering - att hantera sin egen produktionsprocess utan att involvera administrativa resurser.<\/p>\n<p>Vi lyckades rikta v\u00e5rt ledningsresurs dit det var n\u00f6dv\u00e4ndigt just d\u00e5 \u2013 p\u00e5 samordning tillsammans med verksamheten. Vad \u00e4r viktigt f\u00f6r v\u00e5r kund just nu? Vilken funktionalitet b\u00f6r implementeras f\u00f6rst? Vad beh\u00f6ver g\u00f6ras f\u00f6r att \u00f6ka v\u00e5r kapacitet f\u00f6r leverans och hantering av best\u00e4llningar? allt detta och en tydlig rollmodell gjorde att vi under denna period kunde belasta v\u00e5ra produktionsfl\u00f6den med det som verkligen \u00e4r viktigt och n\u00f6dv\u00e4ndigt.&nbsp;<\/p>\n<p>Sj\u00e4lvklart, i en tid av distansarbete och h\u00f6gt f\u00f6r\u00e4ndringstempo, d\u00e4r varje deltagares insats p\u00e5verkar aff\u00e4rsresultaten, kan man inte bara f\u00f6rlita sig p\u00e5 inre k\u00e4nslor av typen \"G\u00e5r allt bra f\u00f6r oss? Jo, det verkar okej.\" Objektiva m\u00e4tv\u00e4rden av produktionsprocessen \u00e4r n\u00f6dv\u00e4ndiga. S\u00e5dana har vi, de \u00e4r tillg\u00e4ngliga f\u00f6r alla som \u00e4r intresserade av m\u00e4tv\u00e4rden f\u00f6r produktteam. Framf\u00f6r allt f\u00f6r teamet sj\u00e4lvt, verksamheten, de som arbetar i angr\u00e4nsande omr\u00e5den och ledningen.<\/p>\n<p>Varannan vecka h\u00e5lls en statusm\u00f6te med varje team d\u00e4r metrik analyseras under tio minuter, flaskhalsar i produktionsprocessen identifieras och gemensamma l\u00f6sningar tas fram f\u00f6r hur dessa flaskhalsar kan \u00e5tg\u00e4rdas. H\u00e4r kan man ocks\u00e5 direkt be om hj\u00e4lp fr\u00e5n ledningen om ett identifierat problem ligger utanf\u00f6r teamens kontroll, eller f\u00e5 expertis fr\u00e5n kollegor som kanske har st\u00f6tt p\u00e5 liknande problem.<\/p>\n<p>Trots detta f\u00f6rst\u00e5r vi att f\u00f6r att uppn\u00e5 en kraftig \u00f6kning (vilket \u00e4r v\u00e5rt m\u00e5l) s\u00e5 m\u00e5ste vi fortfarande l\u00e4ra oss mycket och implementera detta i v\u00e5rt dagliga arbete. Just nu forts\u00e4tter vi att skala upp den produktorienterade metoden till andra team och nya produkter. F\u00f6r detta har vi beh\u00f6vt beh\u00e4rska ett nytt format av online-skola f\u00f6r metodologer.<\/p>\n<p>Metoddoktorer, de personer som hj\u00e4lper teamen att bygga processer, f\u00f6rb\u00e4ttra kommunikationen och \u00f6ka arbets\u00adeffektiviteten, \u00e4r i sj\u00e4lva verket f\u00f6r\u00e4ndringsakt\u00f6rer. Just nu arbetar studenter fr\u00e5n v\u00e5r f\u00f6rsta omg\u00e5ng med team och hj\u00e4lper dem att bli framg\u00e5ngsrika.&nbsp;<\/p>\n<p>Jag tror att den nuvarande situationen \u00f6ppnar f\u00f6r oss m\u00f6jligheter och perspektiv som vi kanske \u00e4nnu inte fullt ut har f\u00f6rst\u00e5tt. Men den erfarenhet och praktik vi f\u00e5r just nu bekr\u00e4ftar att vi har valt r\u00e4tt utvecklingsv\u00e4g, och att vi inte kommer att missa dessa nya m\u00f6jligheter i framtiden, samt att vi kommer att kunna svara effektivt p\u00e5 de utmaningar som kommer att m\u00f6ta \"Sportmaster\".<\/p>\n<h3>Slutsatser<\/h3>\n<p>Under denna sv\u00e5ra tid har vi formulerat de grundl\u00e4ggande principer som utvecklingen av mjukvara bygger p\u00e5, och som jag tror kommer att vara relevanta f\u00f6r varje f\u00f6retag som sysslar med detta.<\/p>\n<p><strong>M\u00e4nniskor<\/strong>. Det \u00e4r grunden f\u00f6r allt. Anst\u00e4llda m\u00e5ste ha n\u00f6je i sitt arbete, f\u00f6rst\u00e5 f\u00f6retagets m\u00e5l och m\u00e5len f\u00f6r de produkter de arbetar med. Och naturligtvis m\u00e5ste de kunna utvecklas professionellt.&nbsp;<\/p>\n<p><strong>Tekniken<\/strong>. Det \u00e4r viktigt att f\u00f6retaget moget n\u00e4rmar sig arbetet med sin teknologiska stack och bygger upp kompetenser d\u00e4r det verkligen beh\u00f6vs. Det l\u00e5ter v\u00e4ldigt enkelt och uppenbart. Och det ignoreras mycket ofta.<\/p>\n<p><strong>Processer<\/strong>. Det \u00e4r viktigt att bygga r\u00e4tt struktur f\u00f6r produktteam och kompetenscenter och att skapa samarbeten med aff\u00e4rerna f\u00f6r att arbeta med dem som partners.<\/p>\n<\/p>\n<p>S\u00e5 ungef\u00e4r s\u00e5 \u00f6verlevde vi. Den moderna tidens k\u00e4rnbudskap bekr\u00e4ftades \u00e4nnu en g\u00e5ng med en kraftfull klump.<\/p>\n<p>\u00c4ven om du \u00e4r ett stort offline-f\u00f6retag med m\u00e5nga butiker och en m\u00e4ngd st\u00e4der d\u00e4r du \u00e4r n\u00e4rvarande, utveckla din onlineverksamhet. Det \u00e4r inte bara en extra f\u00f6rs\u00e4ljningskanal eller en snygg app d\u00e4r man ocks\u00e5 kan k\u00f6pa n\u00e5got (\u00e4ven f\u00f6r att konkurrenterna ocks\u00e5 har n\u00e5got fint). Det \u00e4r inte en reservhjul som kan hj\u00e4lpa dig att klara stormen.<\/p>\n<p>Det \u00e4r en absolut n\u00f6dv\u00e4ndighet. B\u00e5de dina tekniska resurser och infrastruktur, men ocks\u00e5 m\u00e4nniskor och processer m\u00e5ste vara f\u00f6rberedda. Att snabbt k\u00f6pa extra minne, lagring, starta nya instanser och liknande kan g\u00f6ras p\u00e5 ett par timmar. Men m\u00e4nniskor och processer m\u00e5ste f\u00f6rberedas i f\u00f6rv\u00e4g.<\/p>\n<\/p>\n<p>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sportmaster_lab\/blog\/519376\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0438\u0445\u0430\u0438\u043b, \u044f \u0437\u0430\u043c\u0435\u0441\u0442\u0438\u0442\u0435\u043b\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u043e \u0418\u0422 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u00bb. \u042f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0441 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u0432\u043e\u0437\u043d\u0438\u043a\u0448\u0438\u043c\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0430\u043d\u0434\u0435\u043c\u0438\u0438. \u0412 \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u043d\u0438 \u043d\u043e\u0432\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0439 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043e\u0444\u043b\u0430\u0439\u043d-\u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 \u00ab\u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u0430\u00bb \u0437\u0430\u043c\u0435\u0440, \u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 \u043d\u0430\u0448 \u043e\u043d\u043b\u0430\u0439\u043d-\u043a\u0430\u043d\u0430\u043b, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0432 \u0447\u0430\u0441\u0442\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0443, \u0432\u043e\u0437\u0440\u043e\u0441\u043b\u0430 \u0432 10 \u0440\u0430\u0437. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":94521,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-94520","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442!\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0438\u0445\u0430\u0438\u043b, \u044f \u0437\u0430\u043c\u0435\u0441\u0442\u0438\u0442\u0435\u043b\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u043e \u0418\u0422 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u00bb.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-pomoglo-nam-bystro-perestroitsya-na-onlajn-torgovlyu-v-novyh-usloviyah\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0427\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u043d\u0430\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043e\u043d\u043b\u0430\u0439\u043d-\u0442\u043e\u0440\u0433\u043e\u0432\u043b\u044e \u0432 \u043d\u043e\u0432\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442!\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0438\u0445\u0430\u0438\u043b, \u044f \u0437\u0430\u043c\u0435\u0441\u0442\u0438\u0442\u0435\u043b\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u043e \u0418\u0422 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-pomoglo-nam-bystro-perestroitsya-na-onlajn-torgovlyu-v-novyh-usloviyah\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-09-18T05:42:20+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-18T05:42:20+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Vad som hj\u00e4lpte oss att snabbt anpassa oss till onlinef\u00f6rs\u00e4ljning under de nya f\u00f6rh\u00e5llandena | ProHoster","description":"Hej! Jag heter Michail, jag \u00e4r IT-chef vid \"Sportmaster\".","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-pomoglo-nam-bystro-perestroitsya-na-onlajn-torgovlyu-v-novyh-usloviyah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0427\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u043d\u0430\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043e\u043d\u043b\u0430\u0439\u043d-\u0442\u043e\u0440\u0433\u043e\u0432\u043b\u044e \u0432 \u043d\u043e\u0432\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442!\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0438\u0445\u0430\u0438\u043b, \u044f \u0437\u0430\u043c\u0435\u0441\u0442\u0438\u0442\u0435\u043b\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u043e \u0418\u0422 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0421\u043f\u043e\u0440\u0442\u043c\u0430\u0441\u0442\u0435\u0440\u00bb.","og:url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/chto-pomoglo-nam-bystro-perestroitsya-na-onlajn-torgovlyu-v-novyh-usloviyah","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-09-18T05:42:20+00:00","article:modified_time":"2020-09-18T05:42:20+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"94520","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:25:23","updated":"2022-09-29 04:36:15","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/94520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=94520"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/94520\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/94521"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=94520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=94520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=94520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}