;

České firmy potřebují plánovat zavádění mobility pracovní síly

22. 11. 2012
Doba čtení: 4 minuty

Sdílet

Autor: © Yuri Arcurs - Fotolia.com
České podniky zaostávají za zbytkem regionu v oblasti mobility pracovní síly a především v jejím plánování.

Navzdory tomu, že je Česká republika jednou z nejsilnějších ekonomik v regionu, jsou zde nové technologie obecně přijímány opatrněji než u mnoha sousedů, alespoň co se telekomunikací týče. Data z výzkumu IT Buyers’ Pulse společnosti IDC ve střední a východní Evropě z poloviny roku 2011 potvrzují tento trend, také pokud jde o podnikovou mobilitu. Ve většině kategorií se české společnosti umísťují okolo průměru nebo pod ním, a to v počtu mobilních zaměstnanců, procentu smartphonů v porovnání s tradičními mobilními telefony, využití tabletů i z dalších hledisek.

Řada důvodů pro tento konzervativní postoj je zřejmých. Rychlost mobilního datového připojení v ČR je nižší a pokrytí signálem horší než v sousedních zemích. Navzdory horším parametrům jsou tarify dražší, a čeští operátoři tak dosahují marží, které jim jejich zahraniční protějšky mohou jenom tiše závidět. Vzhledem k vysokým nákladům a nerovnoměrnému pokrytí není divu, že se české společnosti k mobilitě propracovávají poměrně pomalu.

Z této situace nelze vinit pouze operátory. Jedna z otázek našeho výzkumu napovídá, že mnoho českých podniků o mobilitě příliš neuvažuje. Jak ukazuje graf níže, přes 50 % respondentů nemá vůbec žádný plán v oblasti mobility. I přesto, že na tom ČR není tak špatně jako poněkud zaostávající Maďarsko, tento výsledek ji řadí poblíž nejnižší úrovně mezi zeměmi regionu.

Pokud uvážíme vysoké náklady na mobilní připojení v České republice, je to nutně špatné? Pokud podniky ve skutečnosti čekají na levnější, rychlejší a dostupnější mobilní připojení, proč by měly dnes vynakládat zdroje na nějaké strategie? Analytici IDC jsou přesvědčení, že konzervativní plán je lepší než žádný plán. Jinými slovy, společnosti musí vědět, kam směřují, i když nejsou ještě připraveny vydat se na cestu. Takto budou alespoň připraveny na rizika a příležitosti, které mobilita může přinést.

Vezměme si nejprve rizika mobility. Každý IT manažer by měl rozumět zranitelnostem spojeným s trendem konzumerizace. Pokud zaměstnavatel neposkytuje firemní koncová zařízení, je velmi pravděpodobné, že zaměstnanci přistupují k podnikovým datům a systémům prostřednictvím svých vlastních, což přináší bezpečnostní rizika v případě, že se takové zařízení ztratí nebo je ukradeno. Dalším problémem je zastarávání – pokud má společnost implementována mobilní řešení, co se stane, když jejich výrobce zkrachuje nebo začne na trhu zaostávat ve funkcionalitě? Takové situace začínáme zaznamenávat například u mobilních e-‑mailových řešení.

Na straně příležitostí může mobilita zrychlit a zpřesnit odezvu, zlepšit produktivitu zaměstnanců, zefektivnit jejich spolupráci a zvýšit spokojenost zákazníka. A zatímco každý podnik bude mít svůj vlastní pohled na to, zda přínosy převyšují náklady, měl by mít vždy k dispozici plán rozvoje mobility, který zajistí, aby klíčové podnikové systémy – e-‑mail, CRM či jakékoliv jiné aplikace – měly dostatečnou kapacitu pro mobilní využití ve chvíli, kdy to bude aktuální.

V době, kdy tento článek jde do tisku, finalizuje IDC výsledky svého ročního výzkumu podnikové mobility v České republice, který jde v oblasti mobilních platforem, preferencí partnerů a priorit podniků do větších detailů. Uvidíme, zda ukážou zlepšení v oblasti plánování mobility. Díky takovým plánům budou české společnosti schopné lépe chránit svá data a vytěžit maximum z možností, které mobilita nabízí.

Cyber25

Autor pracuje jako manažer výzkumu v oblasti telekomunikací společnosti IDC CEMA

Článek vyšel ve speciálu CIO TOP100 ICT společností v ČR. Jeho plnou verzi v PDF si můžete stáhnout zde.

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
OSZAR »