Salesforce: Firmy by pro zvýšení své odolnosti měly hledat flexibilní licenční ujednání

31. 5. 2021
Doba čtení: 3 minuty

Sdílet

Autor: © Olivier Le Moal - Fotolia.com
Datová sila, historické systémy a nedostatečné technické schopnosti mnohde fungují jako kotva bránící podniku vydat se vpřed. To vše má podle regionálního viceprezidenta Salesforcu dopad na vedení IT.

Piotr Faderski, regionální viceprezident pro CEE ve společnosti Salesforce, ve svém komentáři přibližuje tři způsoby, jakými mohou manažeři IT zajistit odolnost svých firem.

Pandemie podle něj symbolizovala pro řadu společností zlomový bod, kdy se ukázalo, že nejsou tak efektivní a odolné, jak se domnívaly. Zatímco dříve některé firmy považovaly digitální transformaci za možnost, dnes se stala nutností.

Na cestě digitální transformací podniku se CIO podle Faderskiho stávají stále častěji klíčovými spojenci CEO a dostávají za úkol vymyslet a realizovat nový koncept provozní odolnosti podniku. S tím by jim mohly pomoci následující tři způsoby:

1) Zabezpečit IT a sladit s obchodními potřebami

Faderski uvádí, že za strategii digitální transformace byl vždy tradičně odpovědný CIO a byznysový vlastník, jejichž klíčové ukazatele výkonnosti se lišily. Tempo technického pokroku a změny v očekávání zákazníků ale naznačují, že je nutné cíle CIO a CEO sladit.

Nekomunikace mezi IT oddělením a obchodními jednotkami znamená nevyužít potenciál technologií na maximum. Aby nedocházelo k třením, promarněným investicím a konfliktům zájmů různých složek podniku, musí vedení IT průběžně uvažovat o společném postupu při digitální transformaci a zajistit společné měření úspěchu.

2) Vytvořit datově orientovanou architekturu a zaměřit se na přeškolení pracovníků

Viceprezident Salesfocu dále naznačuje, že data dnes zcela mění obchodní praxi a rozhodovací procesy. Problémem podle něj ale bývá způsob, jakým jsou nastaveny systémy pro zpracovávání dat.

Vedení IT se podle Faderskiho musí ptát, jaké technické schopnosti a funkce jsou nutné k úspěšnému fungování datových systémů a jak se případné změny promítnou do stávajícího IT prostředí. Musí také zvážit, jak budou tyto změny vyhovovat budoucím potřebám.

Vedle vybudování datově orientované architektury, přechodu na cloud computing, zavádění AI a vývoje aplikací musí CIO uvažovat, jak využívat a rozvíjet interní dovednosti, jak posunout způsob myšlení k hledání rychlých a relevantních řešení a jak snížit rizika související se prováděním změn.

3) Inovovat v rámci rozpočtu, hledat flexibilní licenční ujednání

Faderski v neposlední řadě uvádí, že vedení IT neustále čelí rozpočtovým tlakům, kdy IT projekty pro různé obchodní jednotky soupeří o omezené prostředky. Neúnavně musí hledat možnosti, jak snížit náklady na infrastrukturu, konzultační a implementační služby, školení a softwarové licence.

Tam, kde rozsah licenčních smluv a dostupnost softwaru nevyhovuje potřebám firmy, musí vedení IT podle něj hledat flexibilní a kreativní ujednání, která budou odpovídat rozpočtovým možnostem.

Flexibilní, škálovatelné a programově založené licenční modely podle Faderskiho umožňují CIO snížit celkové náklady na vlastnictví, minimalizovat množství pořízeného, avšak nikdy nevyužitého softwaru a získat záruku průběžných inovací.

Zdroj: Salesforce

Čtěte dále

Karel Diviš: Firmy potřebují jednoho stabilního dodavatele IT
Karel Diviš: Firmy potřebují jednoho stabilního dodavatele IT
Na NIS2 si vyhraďte minimálně 6 měsíců, radí Jan Sedlák z MasterDC
Na NIS2 si vyhraďte minimálně 6 měsíců, radí Jan Sedlák z MasterDC
IDC: Cla necla, globální dodávky počítačů by letos měly vyrůst o 4 %
IDC: Cla necla, globální dodávky počítačů by letos měly vyrůst o 4 %
Polovina českých podnikatelů neví, jak se bránit proti kybernetickým útokům
Polovina českých podnikatelů neví, jak se bránit proti kybernetickým útokům
Nejširší nabídka ProAV technologií? Najdete ji u EET Group
Nejširší nabídka ProAV technologií? Najdete ji u EET Group
Téměř dvě třetiny firem preferují uchovávat zálohu v cloudu
Téměř dvě třetiny firem preferují uchovávat zálohu v cloudu
'; 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 »