<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Teknologibloggen</title>
	<atom:link href="http://www.no.capgemini.com/teknologiblogg/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.no.capgemini.com/teknologiblogg</link>
	<description>Tanker og meninger om teknologi og innovasjon fra engasjerte konsulenter i Capgemini</description>
	<lastBuildDate>Fri, 01 Mar 2013 10:28:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Har du en sosial kundestrategi?</title>
		<link>http://www.no.capgemini.com/teknologiblogg/2013/03/har-du-en-sosial-kundestrategi/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=har-du-en-sosial-kundestrategi</link>
		<comments>http://www.no.capgemini.com/teknologiblogg/2013/03/har-du-en-sosial-kundestrategi/#comments</comments>
		<pubDate>Fri, 01 Mar 2013 10:28:04 +0000</pubDate>
		<dc:creator>Christopher Eikanger Andersen</dc:creator>
				<category><![CDATA[CRM]]></category>
		<category><![CDATA[Kundestrategi]]></category>
		<category><![CDATA[Sosiale medier]]></category>
		<category><![CDATA[Strategi]]></category>

		<guid isPermaLink="false">http://www.no.capgemini.com/teknologiblogg/?p=1645</guid>
		<description><![CDATA[Tiden der selskaper på egne premisser kunne styre og kontrollere kunderelasjonen til sine kunder er i ferd med å ta slutt – og den sosiale kunderevolusjonen har skylda. Morgendagens vinnere vil være de som klarer å sette kunden i førersetet og som klarer å utnytte at kundene deler erfaringer og kjøpssignaler i sosiale medier. Så, hva handler sosiale kunderelasjoner egentlig om?]]></description>
			<content:encoded><![CDATA[<p><strong>Tiden der selskaper på egne premisser kunne styre og kontrollere kunderelasjonen til sine kunder er i ferd med å ta slutt – og den sosiale kunderevolusjonen har skylda. Morgendagens vinnere vil være de som klarer å sette kunden i førersetet og som klarer å utnytte at kundene deler erfaringer og kjøpssignaler i sosiale medier. Så, hva handler sosiale kunderelasjoner egentlig om? </strong></p>
<p>Flere og flere selskaper bruker sosiale medier for å kommunisere med kundene sine. De siste årene har sosial CRM utviklet seg til å bli en av de viktigste temaene for alle som arbeider med kundestrategi og kundeopplevelse. De fleste undersøkelser underbygger nettopp dette; Kunder (både B2B og B2C) bruker sosiale medier for å kartlegge, diskutere og søke anbefalinger i forbindelse med kjøp av en vare eller tjeneste. Likevel viser flere undersøkelser at så lite som kun 7% av selskaper forstår verdien av å linke sosiale medier og CRM strategi. <strong>På tide å våkne opp!</strong></p>
<h2>Hva handler ”sosial” egentlig om?</h2>
<p>Det å sosialisere kundestrategien handler først og fremst om å anerkjenne at vi må jobbe med kunderelasjonen på kundens premisser og at selskapets jobb først og fremst er å fortjene en tillitt hos kunden som igjen kan brukes til markedsføring, salg og kundeservice. Det handler om at kunder forventer å bli behandlet som individer med ønsker og behov, snarere enn et kundenummer i en kundedatabase.</p>
<p>La meg gi deg noen eksempler på hvordan en sosiale kundestrategi er annerledes:</p>
<p><strong>Hvem?  </strong>I din tradisjonelle kundestrategi har du ofte definert avdelinger eller enkeltpersoner ansvarlig for CRM. I en sosial kundestrategi endres dette – der alle ansatte vil være del av strategien, gjennom sosiale kanaler og andre møtepunkter med kunden.</p>
<p><strong>Hva? </strong>Markeds- og kundeserviceavdelingen har trolig vel definerte prosesser for hvordan kundekommunikasjon og oppfølging er definert gjennom en kundes livssyklus. In en sosial CRM-strategi definerer kunden disse prosessene og du kan ikke lenger støtte deg på predefinerte kommunikasjonsplaner for å følge opp kunden.</p>
<p><strong>Når? </strong>Du kan ikke lenger definere når du skal være tilgjengelig for kunden. Sosiale kunder kommer til å kommunisere med deg når de selv ønsker og lar seg ikke begrense av definerte åpningstider på kundeservice eller i salgsavdelingen.</p>
<p><strong>Hvor og hvordan?</strong> I den tradisjonelle CRM strategien har du antakeligvis definerte kommunikasjonskanaler satt opp, eksempelvis nyjetsbrev, Facebook fansider eller en blog der du jobber med å spisse innhold og budskap. I en sosial kundestrategi vil det være kunden som setter premissene for kanalvalg, i tillegg til at de påvirker og ofte bestemmer budskapet i dialogen. Du kan ikke lenger <em>kontrollere</em> hva budskapet skal være – kun gjennom <em>deltakelse</em> i kundedialogen på kundens premisser vil du lykkes.</p>
<h2>Husk – det handler om strategi, ikke systemer</h2>
<p>Disse radikale endringene i maktforholdet mellom kunde og bedrift har store implikasjoner for hvordan selskaper må designe sine strategier rundt interne prosesser, organisasjon og teknologi. Det er viktig å huske på at sosial CRM handler om foretaksstrategi. IT-systemer løser ikke alene utfordringene dine. Om ikke organisasjonen og prosessene i bedriften er designet for å håndtere sosiale kunderelasjoner vil innkjøp og implementering av IT-systemer feile.</p>
<p>Disse anbefalingene kan fremstå som trivielle, men jeg tror de er blant de viktigste når man skal implementere sosial CRM. Gartner spår at mer enn halvparten av selskapene som forsøker å etablere en sosial strategi vil feile i implementeringen fordi man mangler en forankring og klare tanker rundt hvordan dette skal være fordelaktig for kunder og selskapene selv.</p>
<p><strong>Hvordan implementerer ditt foretak sosiale kundestrategier? Hva har vært deres største utfordringer og hvordan har dere løst disse?</strong></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.no.capgemini.com/teknologiblogg/2013/03/har-du-en-sosial-kundestrategi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuerys skjulte skatter – Deferreds</title>
		<link>http://www.no.capgemini.com/teknologiblogg/2013/02/jquerys-skjulte-skatter-%e2%80%93-deferreds/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=jquerys-skjulte-skatter-%25e2%2580%2593-deferreds</link>
		<comments>http://www.no.capgemini.com/teknologiblogg/2013/02/jquerys-skjulte-skatter-%e2%80%93-deferreds/#comments</comments>
		<pubDate>Fri, 22 Feb 2013 14:04:15 +0000</pubDate>
		<dc:creator>Per Svensson</dc:creator>
				<category><![CDATA[Programvareutvikling]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.no.capgemini.com/teknologiblogg/?p=1576</guid>
		<description><![CDATA[jQuery er et av de mest brukte JavaScript-biblioteker i front-end utvikling i dag. Nesten alle som har tatt steget inn i verden av web-utvikling har hørt om det og mest sannsynlig brukt det til en viss grad. JQuery er imidlertid full av gjemte skatter og i dette blogginnlegget skal vi utforske en av dem, «deferred object». For å følge dette innlegget vil du sannsynligvis trenge noe kunnskap om JavaScript og / eller jQuery for å &#8230;]]></description>
			<content:encoded><![CDATA[<p>jQuery er et av de mest brukte JavaScript-biblioteker i front-end utvikling i dag. Nesten alle som har tatt steget inn i verden av web-utvikling har hørt om det og mest sannsynlig brukt det til en viss grad. JQuery er imidlertid full av gjemte skatter og i dette blogginnlegget skal vi utforske en av dem, «deferred object».</p>
<p>For å følge dette innlegget vil du sannsynligvis trenge noe kunnskap om JavaScript og / eller jQuery for å virkelig sette pris på fordelene med «deferreds» som jeg skal vise frem med kodeeksempler.</p>
<p>Men først la oss finne ut hva vi skal prøve å løse i dette blogginnlegget.</p>
<p>I JavaScript eksekverer vi koden fra topp til bunn, men det vi ikke ønsker er at koden skal stoppe og vente på API-kall eller en animasjon for at den skal fullføres. Det vi ønsker er at koden skal handle når noe skjer. Dette kan selvsagt gjøres på et par forskjellige måter, men jeg kommer til å vise deg hvordan du gjør det med såkalte «deferred objekter» i dag.</p>
<h2>Deferred eksempler:</h2>
<p>Så la oss si at vi vil hente ut noe adressedata fra vår egen tjeneste og deretter benytte Google API for å hente enda mer informasjon om denne adressen.</p>
<p>Vi deklarerer våre kall i en funksjon og returnerer vår «deferred». Alle jQuery ajax funksjoner returnerer «deferreds» (eller egentlig ikke, men dette kommer vi tilbake til) som $.get, $.ajax, $getJSON.</p>
<div>
<pre style="padding-left: 30px;"><span style="color: #0000ff;">var</span> getData = <span style="color: #0000ff;">function</span> (data) {
            <span style="color: #0000ff;">return</span> $.getJSON(url1);
        };
        <span style="color: #0000ff;">var</span> getMap = <span style="color: #0000ff;">function</span> (data) {
            <span style="color: #0000ff;">return</span> $.getJSON(url2);
        };
        <span style="color: #0000ff;">var</span> getMoreData = <span style="color: #0000ff;">function</span> (data)
            <span style="color: #0000ff;">return</span> $.ajax({
                dataType: <span style="color: #993300;">"json"</span>,
                data: data,
                url: url3
            });
        };</pre>
<p>&nbsp;</p>
<h3><span style="color: #3366ff;">Eksempel 1:</span></h3>
<p>Først må vi hente dataen vi trenger slik at vi kan få tak i mer data basert på «map».</p>
<div>
<pre style="padding-left: 60px;"><span style="color: #008000;">//Get our data and then get our map.</span></pre>
<pre>        <span style="color: #0000ff;">var</span> map = getData()</pre>
<pre>                            .then(getMap());</pre>
<pre>        <span style="color: #008000;">//After our map is done, we then get more data.</span></pre>
<pre>        <span style="color: #0000ff;">var</span> moreData = map.then(getMoreData());</pre>
<pre>        <span style="color: #008000;">//After more data is done we then log out the result.</span></pre>
<pre>        moreData.then(<span style="color: #0000ff;">function</span> (result) {</pre>
<pre>            console.log(result);</pre>
<pre>        });</pre>
<p>&nbsp;</p>
<address><em>Kodesnutten er laget med et par ekstra variabler for at det skal bli lettere å lese. </em></address>
<p>&nbsp;</p>
<h3><span style="color: #3366ff;">Eksempel 2:</span></h3>
<p>La oss nå gjøre alle kallene på en gang, men samtidig passe på at vi ikke fortsetter før alle metodene har blitt lastet.</p>
<p>For å gjøre dette mulig må vi bruke $.When. Denne metoden pakker sammen alle «deferreds»-ene inn til en «deferred» og putter de inn i en «loadAll» variabel.</p>
<div>
<pre style="padding-left: 30px;"><span style="color: #0000ff;">var</span> loadAll = $.when(</pre>
<pre style="padding-left: 30px;">            getData(),</pre>
<pre style="padding-left: 30px;">            getMap(),</pre>
<pre style="padding-left: 30px;">            getMoreData()</pre>
</div>
<pre style="padding-left: 30px;">            );</pre>
<p style="padding-left: 30px;">
<p>Når alle «deferreds»-ene i loadAll har blitt løst kan vi kalle vår egen funksjon. En deferred sender alltid med parameter til sine lyttefunksjoner. I en sammenpakket «deferred» har vi en liste med argumenter fra den indre «deferred» sine funksjoner.</p>
<div>
<pre style="padding-left: 30px;">loadAll.then(</pre>
<pre style="padding-left: 30px;">    <span style="color: #0000ff;">function</span> () {</pre>
<pre style="padding-left: 30px;">        <span style="color: #008000;">//arguments are [getDataArgs, getMapArgs, getMoreDataArgs]</span></pre>
<pre style="padding-left: 30px;">        console.log(arguments[1][0][0]); <span style="color: #008000;">//Our map in this case</span></pre>
<pre style="padding-left: 30px;">    });<em> </em></pre>
<p style="padding-left: 30px;"><em><br />
</em></p>
<address><em>Denne kodesnutten er laget med et par ekstra variabler for at det skal bli lettere å lese.</em></address>
<address> </address>
<h3><span style="color: #3366ff;">Eksempel 3:</span></h3>
<p>Som du kan se er «deferred» som en type tilstandsholder for den nåværende handling.</p>
<pre><span style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px;">      </span><span style="color: #008000;">  //Returns a deferred from all calls we did before.</span></pre>
<div>
<pre>        <span style="color: #0000ff;">function</span> loadAll(){<span style="color: #0000ff;">return</span> $.when(</pre>
<pre>            getData(),</pre>
<pre>            getMap(),</pre>
<pre>            getMoreData()</pre>
<pre>            );</pre>
<pre>        };</pre>
<pre>    <span style="color: #008000;">    //Defines a function that takes a duration (milliseconds)</span></pre>
<pre><span style="color: #008000;">        //returns a deferred,</span></pre>
<pre><span style="color: #008000;">        //sets a timeout for the duration and resolves the deferred</span></pre>
<pre><span style="color: #008000;">        //after the duration is done.</span></pre>
<pre>        $.wait = <span style="color: #0000ff;">function</span> (duration) {</pre>
<pre>            <span style="color: #0000ff;">return</span> $.Deferred(<span style="color: #0000ff;">function</span> (def) {</pre>
<pre>                setTimeout(def.resolve, duration);</pre>
<pre>            });</pre>
<pre>        }</pre>
<pre>   <span style="color: #008000;">     //Runs our wait.</span></pre>
<pre><span style="color: #008000;">        //When our wait deferred comes back resolved we run a function and</span></pre>
<pre><span style="color: #008000;">        //prints out the arguments.</span></pre>
<pre>        $.wait(2000)</pre>
<pre>            .then(loadAll).then(<span style="color: #0000ff;">function</span> () {</pre>
<pre>                console.log(arguments);</pre>
<pre>            });</pre>
</div>
<h2>Ajax og promise</h2>
<p>En «deferred» er et objekt som skifter tilstand og oppdaterer sine lyttere. En «promise» er et subsett av «deferred» sitt overordnende objekt. Alle jQuery ajax kall returnerer faktisk «promises», ikke «deferreds». «Promises» kan ikke skifte tilstand, bare lytte til «deferred» sitt overordnende objekt for tilstandshendelser, så det er en fin måte for klasse designern å skjule noe funksjonalitet og abstrahere det bort fra sluttbrukeren.</p>
<p>La oss se på et eksempel som lager en superajax! I dette eksempelet kan du se deler av hvordan den virkelige $.ajax er implementert.</p>
<div>
<pre>$.superAjax = <span style="color: #0000ff;">function</span> (data) {</pre>
<pre>            <span style="color: #008000;">//Declare our deffered.</span></pre>
<pre>            <span style="color: #0000ff;">var</span> def = $.Deferred();</pre>
<pre>          <span style="color: #008000;">  //Do our if (window.XMLHttpRequest)</span></pre>
<pre><span style="color: #008000;">            //    xmlhttp = new XMLHttpRequest();</span></pre>
<pre><span style="color: #008000;">            // and all that good stuff here. But now were only faking it.</span></pre>
<pre>            (<span style="color: #0000ff;">function</span> () {</pre>
<pre>                <span style="color: #008000;">//After 5 seconds we say that we have loaded successfully</span></pre>
<pre>                setTimeout(def.resolve, data.loadtime);</pre>
<pre>            }());<span style="color: #008000;">//&lt; self running function</span></pre>
<pre>       <span style="color: #008000;">//We done some notify() on the deffered, this calls all</span></pre>
<pre><span style="color: #008000;">//.done() and .progress() functions with the params specified.</span></pre>
<pre>            (<span style="color: #0000ff;">function</span> () {</pre>
<pre>                setTimeout(def.notify, (data.loadtime / 5), 20);</pre>
<pre>                setTimeout(def.notify, (data.loadtime / 2), 50);</pre>
<pre>            }());<span style="color: #008000;">//&lt; self running function</span></pre>
<pre>            <span style="color: #0000ff;">return</span> def.promise();<span style="color: #008000;">//Returns our promise, not the deffered itself</span></pre>
<pre>        };</pre>
<pre>       <span style="color: #008000;"> //Get a new superAjax object</span></pre>
<pre><span style="color: #008000;">        //Our object here only contains our loadtime</span></pre>
<pre><span style="color: #008000;">        //(would it be awesome if you could specify that!)</span></pre>
<pre><span style="color: #008000;">        //but would of course in a realworld app contain URL, data, data-type etc.</span></pre>
<pre>        <span style="color: #0000ff;">var</span> superAjax = $.superAjax({ loadtime: 5000 });</pre>
<pre>      <span style="color: #008000;">  //Listen to progress on the object</span></pre>
<pre>        superAjax.progress(<span style="color: #0000ff;">function</span> (message) {</pre>
<pre>            console.log(message);</pre>
<pre>        });</pre>
<pre>       <span style="color: #008000;"> //Callback for when superAjax is done</span></pre>
<pre>        superAjax.done(<span style="color: #0000ff;">function</span> () {</pre>
<pre>            console.log("superAjax loaded");</pre>
<pre>        });</pre>
</div>
<p>&nbsp;</p>
<p>Dette var mye kode for en liten bloggpost, men jeg håper jeg hevet din interesse om hvordan å gjøre javascript mer asynkront.</p>
<p>&nbsp;</p>
<p>Alex McPherson har en fin intro video på <a title="YouTube" href="http://www.youtube.com/watch?v=juRtEEsHI9E" target="_blank">YouTube</a>:</p>
<p>Og selvfølgelig <a title="jQuery API dokumentasjonen" href="http://api.jquery.com/category/deferred-object/" target="_blank">jQuery API dokumentasjonen</a>.</p>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.no.capgemini.com/teknologiblogg/2013/02/jquerys-skjulte-skatter-%e2%80%93-deferreds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android og de syv dødssyndene</title>
		<link>http://www.no.capgemini.com/teknologiblogg/2013/02/android-og-de-syv-dodssyndene/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=android-og-de-syv-dodssyndene</link>
		<comments>http://www.no.capgemini.com/teknologiblogg/2013/02/android-og-de-syv-dodssyndene/#comments</comments>
		<pubDate>Fri, 15 Feb 2013 09:02:36 +0000</pubDate>
		<dc:creator>Thomas Schancke Methlie</dc:creator>
				<category><![CDATA[Aktuelt]]></category>
		<category><![CDATA[Mobil]]></category>
		<category><![CDATA[Programvareutvikling]]></category>
		<category><![CDATA[Sikkerhet]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[sikkerhet]]></category>
		<category><![CDATA[utvikling]]></category>

		<guid isPermaLink="false">http://www.no.capgemini.com/teknologiblogg/?p=1440</guid>
		<description><![CDATA[Tusenvis  nye apper lanseres hver dag til Android. Alt fra enkle spill og underholdningsprogrammer, til mer avanserte løsninger som gir tilgang til bedriftens interne systemer.  I følge en rapport, som ble presentert på sikkerhetskonferansen Defcon, er appene ofte preget av dårlig programmering. Her vil jeg presentere de syv syndene du bør unngå. Det skal nevnes at ikke alle sårbarhetene nødvendigvis er så farlig i alle tilfeller. I et bilderedigeringsprogram spiller det mindre rolle at det brukes en dårlig slumptallgenerator (bruk SecureRadom &#8230;]]></description>
			<content:encoded><![CDATA[<p><strong>Tusenvis  nye apper lanseres hver dag til Android. Alt fra enkle spill og underholdningsprogrammer, til mer avanserte løsninger som gir tilgang til bedriftens interne systemer.  I følge en rapport, som ble presentert på sikkerhetskonferansen</strong><strong> </strong><strong><a title="Defcon" href="https://media.defcon.org/dc-19/presentations/O'Neil-Chin/DEFCON-19-O'Neil-Chin-Google-Android.pdf" target="_blank">Defcon</a>, er appene ofte preget av dårlig programmering. Her vil jeg presentere de syv syndene du bør unngå.</strong></p>
<p>Det skal nevnes at ikke alle sårbarhetene nødvendigvis er så farlig i alle tilfeller. I et bilderedigeringsprogram spiller det mindre rolle at det brukes en dårlig slumptallgenerator (bruk SecureRadom klassen!). Men for et program som gir tilgang til interne systemer i en bedrift, vil f.eks kryptering av sensitive data med hardkodete nøkler være katastrofalt.</p>
<p>Hvorfor er det da slik at så mange apper inneholder feil og sårbarheter? Jeg mener at det ikke finnes et enkelt svar. Flere faktorer spiller inn:</p>
<ul>
<li>Relativt ny plattform og uerfarne utviklere</li>
<li>Dårlig dokumentasjon av de offisielle API&#8217;ene. Dette sprer feil informasjon, som bl.a. gir seg utslag i dårlige eller direkte feil svar på brukerforum</li>
<li>Generell uvitenhet om de spesielle utfordringene ved utvikling på Android</li>
<li>Manglende fokus på sikkerhet i utviklingsløpet</li>
<li>Ingen eller lite &#8220;Black hat&#8221;- testing. Dette er testing der man prøver å ødelegge eller bryte seg inn i applikasjon. Gjerne for å få tilgang til data/funksjoner man ikke skal ha tilgang til.</li>
</ul>
<address> </address>
<p>I denne posten fokuserer jeg spesielt på ett område i listen over, nemlig noen av de spesielle utfordringene ved utvikling til Android. For å få fullt utbytte er det en fordel med grunnleggende kjennskap til Android, men også nybegynnere og testere kan bruke dette som en huskeliste.</p>
<p>En typisk app består av ett eller flere skjermbilder. Disse skjermbildene kan utveksle data ved å sende hverandre meldinger. I tillegg er det mulig å sende disse meldingene mellom ulike app&#8217;er. Dette er en av styrkene til Android og gjør det enkelt og effektivt for utviklere å gjenbruke funksjonalitet. Men det kan også åpne opp for litt problemer som vi skal se mer på nå.</p>
<p><strong>1. Forfalskede meldinger (Intent Spoofing)</strong></p>
<p>&#8220;Hei, aksjekursen til firma A kommer til å stige 20% i morgen&#8221;. Uten å stille spørmål ved avsender og troverdigheten til denne beskjeden handler du mange aksjer i firma A. Scenarioet her er kanskje litt konstruert, men viser problemet med forfalskede meldinger. Mottakeren har ingen beskyttelse. Han burde ha stilt kritiske spørsmål eller undersøke firma A før han handlet.</p>
<p>Slik er det også med Android apper. Om din app ukritisk tar i mot meldinger fra alt og alle, kan en ondsinnet app endre tilstanden i din app eller få den til å presentere gal informasjon, f.eks. feil aksjekurs. Man må beskytte sin app i form av <a title="tillatelser" href="http://developer.android.com/guide/topics/security/permissions.html" target="_blank"><em>tillatelser</em> </a>som settes i Android <a title="Manifest" href="http://developer.android.com/guide/topics/manifest/manifest-element.html" target="_blank">Manifest- </a>filen. Da vil din app kun akseptere meldinger fra andre som den eksplisitt stoler på.</p>
<p><strong>2. Uautorisert mottak av meldinger (Unauthorized Intent Receipt)</strong></p>
<p>Denne ligner på punktet over, men nå er det selve meldingen som må beskyttes. Alice ber Bob om å oppgi en hemmelighet, f.eks. et passord. Ved siden av dem står en mindre hederlig person, Mallory. Hun sier &#8220;Hei, jeg kan også motta din hemmelig. Fortell den til meg så skal jeg videresende den&#8221;. Bob forteller så passordet til Mallory, som sier til Alice at hun ikke mottok passordet, så Alice spør igjen. Bob tenker ikke noe videre over det og gjentar passordet, og Alice er fornøyd. Det Alice og Bob ikke vet er at Mallory nå også har passordet.</p>
<p>Om din app sender ut meldinger som ikke er beskyttet med tillatelser, kan den snappes opp av en ondsinnet app. Dette åpner for mulighet til å endre flyten i et program eller lekke sensitive data. I forhold til eksempelet over er Mallory en ondsinnet app som er installert på telefonen. Når din app (Alice) ber om passord, tar Mallory over og får brukeren Bob til å oppgi passordet. Bob vil anta han tastet feil siden han ikke ble logget inn og  blir bedt om å oppgi passord på nytt. Denne gangen får han logge inn.</p>
<p><strong>3. Manipulerte databasespørringer (SQL Injection)</strong></p>
<p>Alle app&#8217;er har tilgang til en egen database for å lagre data. Utviklere må passe på å kontrollere all input som kommer fra kilder de ikke selv kontrollerer og stoler på. Brukerinput, meldinger fra andre app&#8217;er, web servicer osv. Husk på å bruke <em>parameteriserte spørringer</em>  og inputvalidering!</p>
<p><strong>4. Usikker lagring (Unsecure Storage)</strong></p>
<p>App&#8217;er har mulighet for å lagre data på et delt eksternt medium. Det  kan være et eksternt <a title="SD" href="http://en.wikipedia.org/wiki/SD_card" target="_blank">SD</a>-kort som er satt inn i telefonen, eller telefonens interne lager. Data som lagres her er tilgjengelig for alle! Ikke nok med det, sletter man app&#8217;en så blir ikke nødvendigvis filene på det eksterne mediumet slettet! Bruk derfor databaser eller internt lager og marker filene som privat. Dermed blir de kun tilgjenglig for din app og vil slettes når app&#8217;en avinstalleres.</p>
<p><strong>5. Vedvarende kringkastingsmeldinger (Persistent Messages: Sticky Broadcast)</strong></p>
<p>Vedvarende kringkastingsmeldinger tilsvarer å rope ut i et rom fullt av mennesker. Kun de som er interessert vil fange opp budskapet ditt, mens resten fortsetter som vanlig. I tillegg blir budskapet ditt lagret, slik at det kan spilles av i fremtiden for nye personer som kommer inn i rommet. Dessverre har også alle mulighet til å slette meldingene, slik at nye personer blir forhindret fra å motta de. Bruker programmet ditt Sticky Broadcast-meldinger risikerer du å kompromittere sensitive data. Derfor er det viktig å kontrollere eventuelle slike meldinger og se hvilken data som blir sendt.</p>
<p>Bruk heller vanlige kringkastingsmeldinger og sørg for å sette på beskyttelse i form av tillatelser.</p>
<p><strong>6. Usikker kommunikasjon (Insecure Communication)</strong></p>
<p>Mange gjør feilen å tro at fordi man benytter en mobiltelefon, blir det vanskeligere å avlytte kommunikasjonen. Det er ikke tilfelle! (Det er faktisk mulig å lage sin egen <a title="basestasjon" href="http://en.wikipedia.org/wiki/IMSI-catcher" target="_blank">basestasjon </a>for å avlytte mobiltelefoner). I de fleste tilfeller er det like enkelt som å avlytte en web-applikasjon. Derfor bør dine mobil-apper behandles og sikres på samme måte som web applikasjoner. Benytt HTTPS (kryptert kommunikasjonsprotokoll) hvis mulig og kjør tester hvor du inspiserer trafikken, for å sikre at sensitive data ikke blir sendt i klartekst.</p>
<p><strong>7. Unødvendige tillatelser (Overprivileged applications)</strong></p>
<p>Dette er ikke så mye en sårbarhet,  men mer dårlig praksis. Ulike operasjoner i Android er beskyttet av tillatelser som må settes i en egen manifestfil. I utviklingsfasen vil en gjerne få ting til å fungere raskest mulig. Derfor hiver en ukritisk inn tillatelser, og ender opp med en app som har tilgang til alt for mye. Dette er med på å forvirre forbrukere, og de vil bli mindre kritiske til å studere hvilke tillatelser de aksepterer. De blir rett og slett vant til å ignorere hvilke tillatelser en app spør om. Dette bryter ned et av Androids viktigste forsvarsmekanismer og åpner døren for ondsinnete apper.</p>
<p>Til slutt vil jeg prøve å komme med noen punkter som kan følges for å lage gode, sikre apper:</p>
<ul>
<li>Tenk sikkerhet fra begynnelsen av. Gjør en trusselvurdering og finn passende sikkerhetsnivå for <em>din</em> app.</li>
<li>Bruk TDD (test drevet utvikling) for å sikre kvaliteten.</li>
<li>Gjør deg kjent med Android sin arkitektur og hvordan OS-et fungerer.</li>
<li>Bruk minimalt med tillatelser. Skriv gode forklaringer, gjerne på flere språk, som forklarer hvorfor du trenger akkurat de tillatelsene.</li>
<li>Før publisering, kontroller at det ikke finnes noen hemmeligheter som passord eller hardkodete nøkler i kildekoden. Husk at denne sendes ut til brukerene og det er lett og dekompilere en Android-app.</li>
<li>Gjør sikkerhetstesting. Tenk som en angriper og se hva du kan få din app til å gjøre.</li>
</ul>
<address> </address>
<p>Jeg håper dette kan bidra til bedre og sikrere apper. Kom gjerne med tips og innspill i kommentarfeltet!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.no.capgemini.com/teknologiblogg/2013/02/android-og-de-syv-dodssyndene/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tilbudsarbeid og hvordan det kan påvirke Scrum-prosessen</title>
		<link>http://www.no.capgemini.com/teknologiblogg/2013/02/tilbudsarbeid-og-hvordan-det-kan-pavirke-scrum-prosessen/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tilbudsarbeid-og-hvordan-det-kan-pavirke-scrum-prosessen</link>
		<comments>http://www.no.capgemini.com/teknologiblogg/2013/02/tilbudsarbeid-og-hvordan-det-kan-pavirke-scrum-prosessen/#comments</comments>
		<pubDate>Fri, 08 Feb 2013 08:58:13 +0000</pubDate>
		<dc:creator>Henrik Hahne</dc:creator>
				<category><![CDATA[Estimering]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Smidig]]></category>
		<category><![CDATA[estimering]]></category>

		<guid isPermaLink="false">http://www.no.capgemini.com/teknologiblogg/?p=1488</guid>
		<description><![CDATA[Klarer man å innfri de forventingene man setter seg når man skriver et tilbud til en kunde? Her kommer noen tanker jeg har gjort meg rundt dette etter å ha jobbet både med tilbud og senere som ScrumMaster i et av disse prosjektene.]]></description>
			<content:encoded><![CDATA[<p><strong>Klarer man å innfri de forventingene man setter seg når man skriver et tilbud til en kunde? Her kommer noen tanker jeg har gjort meg rundt dette etter å ha jobbet både med tilbud og senere som ScrumMaster i et av disse prosjektene.</strong></p>
<p><strong>Bakgrunn</strong><br />
La oss som bakgrunn for dette tenke oss et prosjekt som har som mål å utvikle en webapplikasjon for en kunde, med en total varighet på ca. ett år. Webapplikasjonen skal bestå av et sett med ti use cases, alle modellert med ett eller flere skjermbilder med tilhørende forretningsfunksjonalitet. Prosjektet skal leveres med en målprismodell. Spørsmålet er da; hvordan vil disse faktorene påvirke arbeidet i tilbudsfasen?</p>
<p><strong>Arbeidet i tilbudsfasen</strong><br />
Under tilbudsfasen skal det utarbeides et grovdesign som danner basisen for et estimat. Her er det fort gjort å komme litt skjevt ut &#8211; hvordan skal man kunne estimere en slik relativt ukjent oppgave? I vårt tilfelle hadde vi gode erfaringstall fra tidligere prosjekter.  Disse estimatene ble så ytterligere forfinet i samråd med erfarne teknikere for å  sikre at levert estimat skulle være så korrekt som mulig. Detaljeringen og videre estimering utover dette grovestimatet ble utsatt til implementasjonen.<br />
Det som er veldig viktig når estimatene utarbeides er at man går i tilstrekkelig detalj for use casene som skal implementeres under prosjektet. Det er også viktig å ikke glemme bort ikke-funksjonelle krav under estimering. Faktorer som testing, ytelse, dokumentasjon og infrastruktur hos kunden varierer en hel del og kan ofte vise seg å være minst like tidkrevende å få på plass som de funksjonelle kravene.</p>
<p><strong>Prosjektgjennomføringen</strong><br />
Armert med gode estimater, et godt team og med en smidig utviklingsprosess så har man skaffet seg et veldig godt utgangspunkt for prosjektgjennomføringen. Jeg mener at det som vil ha den største påvirkningen under prosjektet er at dette er et målprisprosjekt. Dette betyr at man er innstilt på å levere prosjektet innenfor en forutsatt tidsramme basert på de estimatene som ble levert i tilbudsfasen. I et slikt tilfelle vil det etter min erfaring få følgende konsekvenser for Scrum-prosessen i prosjektet:</p>
<p><strong>1.</strong> Scrum-prosessen som blir kjørt i prosjektet er som vanlig, med sprintplanlegging, standups, demo for kunden og retrospektiv for hver sprint. I sprintplanleggingen vil verdien av oppgaveestimeringen bli redusert. Poenget med estimeringen under sprintplanleggingen er å produsere et så korrekt estimat som mulig.  I et målpris prosjekt er estimatene fra tilbudsfasen de  som prosjektet blir målt opp mot og dermed de man sikter mot. Konsekvensen av dette er at teammedlemmene ikke til fulle kan påvirke estimatene. Dette kan etter min erfaring ha en negativ effekt på &#8220;team commitment&#8221;-følelsen som er svært viktig i Scrum-tankegangen.</p>
<p><strong>2.</strong> Et målprisprosjekt kan også få konsekvenser for teamets fremdrift (velocity). Teamets fremdrift beskriver hva som kan forventes levert innenfor en fremtidig sprint basert på statistikk fra tidligere sprinter. Målpris prosjekt vil som oftest føre til at man har et veldig rigid timebudsjett som vil gjøre at man til dels har forhåndsbestemt innholdet i en sprint. Dette igjen bryter mye av tankegangen rundt bruken av smidig metoder. Det er jo det at man kan justere innholdet i sprinten som gjør at man kan få løst de endringer og utfordringer som oppstår underveis.</p>
<p><strong>Oppsummering</strong><br />
Oppsummert så kan prosjektform og valg tatt i tilbudsfasen ha en stor effekt på prosjektgjennomføringen og Scrum-prosessen.  Ideelt så ønsker man en Scrum-prosess som ligger tett opp til måten den er beskrevet på  i litteraturen, og dermed få mest mulig ut av både estimering, fremdrift og lignende. For at dette skal fungere er man imidlertid avhengig av friheten til å kunne utføre endringer underveis.  For prosjekter der en slik smidig tankegang ikke er mulig av praktiske årsaker, vil dette begrense verdien av å kjøre prosjektet etter Scrum-metodikken.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.no.capgemini.com/teknologiblogg/2013/02/tilbudsarbeid-og-hvordan-det-kan-pavirke-scrum-prosessen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sikkerhetstesting &#8211; trygg på innsiden av murene</title>
		<link>http://www.no.capgemini.com/teknologiblogg/2013/02/sikkerhetstesting-trygg-pa-innsiden-av-murene/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sikkerhetstesting-trygg-pa-innsiden-av-murene</link>
		<comments>http://www.no.capgemini.com/teknologiblogg/2013/02/sikkerhetstesting-trygg-pa-innsiden-av-murene/#comments</comments>
		<pubDate>Fri, 01 Feb 2013 09:27:27 +0000</pubDate>
		<dc:creator>Oddvar Johnsen</dc:creator>
				<category><![CDATA[Sikkerhet]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[analyse]]></category>
		<category><![CDATA[inspeksjon]]></category>
		<category><![CDATA[sikkerhet]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://www.no.capgemini.com/teknologiblogg/?p=1425</guid>
		<description><![CDATA[Man kan gjerne sammenligne datasystemer som er omgitt av brannmurer med en middelalderborg med murer og vollgraver rundt. Som tilfellet var med slike festninger må også brannmurer ha en eller flere åpninger (porter), der forskjellige typer &#8220;varer&#8221; både kan slippe inn og ut. Det gjaldt å ha god kontroll med hva som slapp inn gjennom portene, og å sikre seg at en inntrenger ikke fikk tilgang til, og dermed kontroll over hele borgen, bare ved &#8230;]]></description>
			<content:encoded><![CDATA[<p><strong>Man kan gjerne sammenligne datasystemer som er omgitt av brannmurer med en middelalderborg med murer og vollgraver rundt. Som tilfellet var med slike festninger må også brannmurer ha en eller flere åpninger (porter), der forskjellige typer &#8220;varer&#8221; både kan slippe inn og ut.</strong></p>
<p>Det gjaldt å ha god kontroll med hva som slapp inn gjennom portene, og å sikre seg at en inntrenger ikke fikk tilgang til, og dermed kontroll over hele borgen, bare ved å komme på innsiden av den ytre muren. Man måtte også sikre seg at livsnødvendige forsyninger slapp inn uansett hvor stor trafikk det ellers var, og at kommunikasjon med vennligsinnede naboborger ikke ble avslørt hvis en kurer ble tatt til fange eller gikk over til fienden.</p>
<p>Når det gjaldt lagring av mat og drikke, våpen, ammunisjon og utstyr ellers, så måtte det både være nok plass og tilstrekkelig sikring av lageret. Alle som holdt til innenfor murene kunne ikke ha samme tilgang til alt som var lagret. Noe trengte å sikres ekstra godt, slik at det ikke ble ødelagt av misbruk eller forurensing. Og det var ikke de samme som hadde tilgang til vinkjeller, kornlager og kruttkammer.</p>
<p>Skulle slike krav til sikkerhet bli oppfylt måtte de tas hensyn til allerede når byggene innenfor borgmurene ble planlagt, ellers ville de bli såpass kostbare å få på plass at det i praksis var for sent. Når det skulle oppføres en ny bygning måtte den tilpasses de bygningene som er der fra før, og oppfylle de samme krav til byggematerialer og konstruksjon som gjaldt for eksisterende bygninger.</p>
<h3>Analyse</h3>
<p>På samme vis må man ved utvikling av datasystemer ta sikkerhetshensyn helt fra starten av. Og før det er laget systemmoduler som kan testes, må kravdokumenter, løsningsforslag og plantegninger kunne gjennomgås og sjekkes for å verifisere at det er tatt hensyn til krav til sikkerhet. For å sitere <a href="http://en.wikipedia.org/wiki/Capers_Jones">Capers Jones</a>, amerikansk ekspert på kvalitet i programvare:</p>
<p style="padding-left: 30px;"><em><strong>&#8220;Først inspeksjon, så inspeksjon, så inspeksjon, så inspeksjon, så testing&#8221;.</strong></em></p>
<p><strong></strong>Erfaringsmessig er det mye å spare på at avvik fra krav blir oppdaget så tidlig som mulig, og dette gjelder i minst like stor grad ved sikkerhetskrav som ved rent funksjonelle krav. Avvik fra sikkerhetskrav kan få konsekvenser som ofte er større både for omdømme og økonomi enn avvik fra funksjonelle krav.</p>
<h3>Inspeksjoner</h3>
<p>Ved gjennomganger og inspeksjoner er det viktig at deltagere har nødvendig kompetanse, slik at de kan gjøre seg opp en oppfatning om det er noe som mangler, om alle krav er oppfylt og om den beskrevne løsningen passer inn sammen med eksisterende systemer.</p>
<p>Etter hvert som krav og løsningsforslag blir godkjent og realisert som programkode, bør også denne inspiseres. Ved sikkerhetstesting gir statisk analyse og kodegjennomgang erfaringsmessig stor gevinst, og det er omfattende verktøystøtte for dette, både av gratis og kommersiell programvare. Slike analyseverktøy kan avsløre om koden er sårbar for flere av de mest brukte metodene for å omgå sikkerhetsbarrierer, som <a href="http://en.wikipedia.org/wiki/Sql_injection">SQL-injeksjon</a> og <a href="http://en.wikipedia.org/wiki/Cross_site_scripting">cross-site scripting</a>.</p>
<h3>Testing</h3>
<p>Testing av sikkerhet blir gjerne beskrevet som forsøk på å trenge gjennom sikkerhetsmekanismene for å avsløre mangler, og det er svært viktig at både hva som skal testes og når det skal testes er avtalt og avklart med prosjektledelsen. Vi kan ikke forestille oss at vaktstyrken i en borg spurte om det var en test når de ble utsatt for et angrep, og på samme måte må vi forvente at de som jobber med sikkerhet i en bedrift tar et angrep på fullt alvor hvis det ikke har blitt avtalt med dem at en test skal gjennomføres.</p>
<p>Hvis det er gjennomført inspeksjoner og gjennomganger på flere nivåer, vil man kunne konsentrere selve testingen mer på å sjekke andre mulige sikkerhetsavvik enn om systemet er sårbart for ondsinnet input. Slike avvik kan være at passord lagres ukryptert, at brukertilganger ikke er tilpasset behov, at filer og databaser kan leses av uvedkommende, eller at kommunikasjon med omliggende systemer er ukryptert.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.no.capgemini.com/teknologiblogg/2013/02/sikkerhetstesting-trygg-pa-innsiden-av-murene/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Big Data – Så mye mer enn bare kundesegmentering!</title>
		<link>http://www.no.capgemini.com/teknologiblogg/2013/01/big-data-%e2%80%93-sa-mye-mer-enn-bare-kundesegmentering/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=big-data-%25e2%2580%2593-sa-mye-mer-enn-bare-kundesegmentering</link>
		<comments>http://www.no.capgemini.com/teknologiblogg/2013/01/big-data-%e2%80%93-sa-mye-mer-enn-bare-kundesegmentering/#comments</comments>
		<pubDate>Fri, 25 Jan 2013 09:20:00 +0000</pubDate>
		<dc:creator>Aleksander Herlofsen</dc:creator>
				<category><![CDATA[Business Information Management]]></category>

		<guid isPermaLink="false">http://www.no.capgemini.com/teknologiblogg/?p=1410</guid>
		<description><![CDATA[Big data har i lengre tid vært omtalt som et banebrytende verktøy for kundesegmentering og markedsføring. Social Media Analytics går ofte igjen når man snakker om hvordan man kan hente ut verdi fra Big Data. Her kan en hvilken som helst bedrift eller organisasjon hente ut detaljert og innsiktsfull informasjon fra Twitter eller Facebook med de rette verktøyene for hånden. Men hvorfor har dette blitt Ola Nordmanns oppfattelse av Big Data?]]></description>
			<content:encoded><![CDATA[<div style="float: right;"><strong><a href="http://www.no.capgemini.com/teknologiblogg/files/2013/01/bigdatagraph.jpg"><img class="size-medium wp-image-1411 alignnone" style="margin: 10px;" title="Big Data" src="http://www.no.capgemini.com/teknologiblogg/files/2013/01/bigdatagraph-250x300.jpg" alt="" width="250" height="300" /></a></strong></div>
<p><strong>Big data har i lengre tid vært omtalt som et banebrytende verktøy for kundesegmentering og markedsføring. Social Media Analytics går ofte igjen når man snakker om hvordan man kan hente ut verdi fra Big Data. Her kan en hvilken som helst bedrift eller organisasjon hente ut detaljert og innsiktsfull informasjon fra Twitter eller Facebook med de rette verktøyene for hånden. Men hvorfor har dette blitt Ola Nordmanns oppfattelse av Big Data?</strong></p>
<p>Jeg tror det store fokuset på quick-wins som for eksempel kundesegmentering eller sentimentanalyse har gjort at bedrifter som ikke er like opptatt av å måle forbrukerens oppfattelse av merkevaren ofte ser på Big Data som en hype, istedenfor å se på hvilke andre muligheter som ligger der.</p>
<p>Et Google søk på de to ordene ’Big data’ gir 1 250 000 000 treff på 0,29 sekunder. Og et av de første treffene som dukker opp er ”What is Big Data?” Så det er kanskje greit å starte her.</p>
<p>Big Data er en term som har vært i vinden lenge og de lærde strides fortsatt om en enhetlig definisjon. Big Data betyr en ting for noen, og en annen ting for andre – men litt for ofte er det bruk av data fra sosiale medier som er gjengangeren.</p>
<p>En definisjon som går igjen er at Big data er en samling av datasett som er så store og så komplekse at de vanskelig lar seg lagre, håndtere og analysere av tradisjonelle databasesystemer. Disse datasettene identifiseres gjerne ved hjelp av de 3 v’ene som ble presentert av Meta Group(nå kjent som Gartner) i 2001 i forbindelse med problematikken rundt datavekst.</p>
<h2 style="padding-left: 30px;">1.     Volume</h2>
<p style="padding-left: 30px;">Data hentes inn både innenfor og utenfor brannmuren, og overgår datamengder som vi er vandt til å håndtere. Big data har heller ikke noen klart definert størrelsesorden utover at det er datamengder i større volum enn hva vi tradisjonelt hanskes med. Det kan for noen være Terrabytes, men for andre Peta- eller Zettabytes.</p>
<h2 style="padding-left: 30px;">2.     Velocity</h2>
<p style="padding-left: 30px;">Big Data kan også identifiseres ved hastigheten på dataen som fanges opp. Man kan vel kanskje si at det handler om raskere data enn hva vi kjenner til fra tradisjonell Business Intelligence. Sensorbaserte data måles gjerne i intervaller på få sekunder, og ved denne hyppigheten genereres det etter hvert uhorvelige mengder data. Ta for eksempel CERN i Sveits, som produserer én Petabyte av forskningsdata hvert eneste sekund. Her er det helt klart ikke mulig å ta vare på all dataen, og de må derfor fange opp de bitene med data som faktisk er av interesse. Så selv om de forkaster store deler ender CERN opp med å produsere 25PB hver dag, noe som tilsvarer 525 948 766 minutter, eller 1000år med video av DVD-kvalitet.</p>
<h2 style="padding-left: 30px;">3.     Variety</h2>
<p style="padding-left: 30px;">Variety handler om både strukturert, semi- og ustrukturerte data som vi først tar stilling til hvordan vi skal bruke <em>etter</em> at vi har lagret det. Det er så opp til algoritmer og ulike modeller å fange opp hvilke mønstre som finnes. Eksempler på slik data kan være rådata fra RFID-brikker, geografiske lokasjonsdata, bilder og tekst.</p>
<p>Det er nå godt over 10 år siden Gartner introduserte disse tre v’ene. Derfor har jeg også lyst til å trekke inn to andre faktorer som er med på å danne grunnlaget for det vi i dag omtaler som Big Data:</p>
<h2 style="padding-left: 30px;">4.     Variability</h2>
<p style="padding-left: 30px;">Data kommer altså i større volum, i større hastighet og i fler formater enn tidligere. Men hyppigheten varierer også i større grad når man begynner å trekke inn data som befinner seg utenfor brannmurene. Under den første amerikanske presidentdebatten i 2012 økte antall tweets om valget til hele 114.000 tweets i minuttet og ente opp på hele 10,3 millioner i løpet av den 90 minutter lange TV-sendingen før den etter hvert havnet tilbake på normalen.<strong></strong></p>
<h2 style="padding-left: 30px;">5.     Versatility</h2>
<p style="padding-left: 30px;">Versatility handler mer om at enhver aktør som har tenkt til å se nærmere på Big data bør ha IT-systemer i bunn som kan takle dette på en agil måte. Det gjelder altså å ha databaseteknologier som gjør det mulig og ikke bare løse enkeltoppgaver, men også utforske nye interessante sammenhenger som dukker opp underveis, avhengig av hvilke funn du gjorde ved den første spørringen.</p>
<p>Big Data er fortsatt et Buzzword som vi ikke helt har klart å bli enige om hvordan vi skal definere. Og mange er nok lettere irritert over et «Big er bra» argument.</p>
<p>Min mening er at Big Data ikke bare handler om å samle, håndtere og prosessere data i et større volum, med høyere hyppighet og i nye formater enn med tradisjonell Business Intelligence.  Men også smartere bruk av denne dataen. Big Data må i dag dreie seg om reelle og krevende forretningsbehov og et større konkurransefortrinn enn allerede godt kjente metoder som tekstmining som surfer avgårde på et nytt Buzzword. Kall meg gjerne optimist, men når jeg tenker Big Data ser jeg for meg «Video-piller» og realtime sensordata for raskere og bedre diagnostisering av pasienter, Urban Informatics – der store urbane knutepunkter måles og optimaliseres for en sømløs harmoni mellom analog og digital infrastruktur.</p>
<p>Se for eksempel på våre kjære naboer ved universitetet i Uppsala. Der har de igangsatt <a href="http://news.cnet.com/8301-11386_3-10258177-76.html">et nytt Stream Computing prosjekt</a> for å analysere massive volumer av data i real time for å bedre forstå seg på værforholdene i galaksen. Løsningen analyserer nærmere bestemt 6GB data per sekund.  Rett nord for Stockholm forsøker forskere å måle høyfrekvente radiostrålinger for å kunne predikere en værmelding for rommet, men samtidig måle effekten av plasmautbrudd på solens overflate.</p>
<p>Plasmautbrudd og høyfrekvente radiostrålinger som treffer jorden har en negativ påvirkning på energioverføring via strømnettet, radiokommunikasjon, TV-signaler, satellitter, rom- og luftfart. Ved å kunne «forecaste» og «nowcaste» hvor og når en magnetisk storm vil treffe jorden får man muligheten til å reposisjonere kostbare satellitter, iverksette preventive tiltak på strømnett og annet sambandsmateriale.</p>
<p>Big Data er altså et begrep som vanskelig lar seg definere og debatten raser av sted med artikler som <a href="http://techcrunch.com/2013/01/05/why-we-need-to-kill-big-data/">Why We Need To Kill “Big Data”</a> og <a href="http://www.nasscom.in/big-data-next-big-thing">Big Data : The Next Big Thing</a>. Men som jeg begynte med, Big Data har forskjellig betydning for ulike personer. For meg er det hvordan vi kan utnytte all den tilgjengelige dataen på en bedre eller smartere måte, for eksempel hvordan sensorbasert data fra T-banestasjoner kunne ført til dynamisk oppsett av vognsett, slik at vi alle hadde sitteplass på vei til eller fra sentrum.</p>
<p>Så neste gang du leker med ordet «Big Data», glem Facebook og Twitter. Tenk heller over hvordan du kan gjøre noe smartere enn dine konkurrenter!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.no.capgemini.com/teknologiblogg/2013/01/big-data-%e2%80%93-sa-mye-mer-enn-bare-kundesegmentering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Start game?</title>
		<link>http://www.no.capgemini.com/teknologiblogg/2013/01/start-game/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=start-game</link>
		<comments>http://www.no.capgemini.com/teknologiblogg/2013/01/start-game/#comments</comments>
		<pubDate>Thu, 17 Jan 2013 09:05:42 +0000</pubDate>
		<dc:creator>Eyvind Kjersem</dc:creator>
				<category><![CDATA[Innovasjon]]></category>
		<category><![CDATA[Trender]]></category>
		<category><![CDATA[crm]]></category>
		<category><![CDATA[gamification]]></category>
		<category><![CDATA[salesforce]]></category>

		<guid isPermaLink="false">http://www.no.capgemini.com/teknologiblogg/?p=1360</guid>
		<description><![CDATA[Engasjement skaper verdier. Så lenge retningen er noenlunde riktig vil engasjerte medarbeidere nå sine mål raskere og bedre enn sine passive motstykker. Tilsvarende kan økt engasjement fra kunder resultere i tettere relasjoner, økt lojalitet og reduserte kostnader.]]></description>
			<content:encoded><![CDATA[<h2>Poeng, progresjon og prestasjon</h2>
<p>Engasjement skaper verdier. Så lenge retningen er noenlunde riktig vil engasjerte medarbeidere nå sine mål raskere og bedre enn sine passive motstykker. Tilsvarende kan økt engasjement fra kunder resultere i tettere relasjoner, økt lojalitet og reduserte kostnader.</p>
<p>Det er dermed ikke så overraskende at evnen til å skape og drive engasjement er ettertraktet i dagens marked. Det har fått flere til å bli inspirert av arenaer som er viden kjent for engasjement, deriblant sport og spill. Et av de nyere digitale moteordene har sitt opphav derfra, nemlig Gamification – bruk av mekanismer fra spill for å fremme ønsket atferd i aktiviteter som ikke er spill. Kjente eksempler på spillmekanismer er poeng, progresjon og prestasjoner. Poeng tildeles typisk etter fullførte oppgaver, progresjon synliggjør avstand til mål og prestasjoner er bevis for hele verden at man har oppnådd mål.</p>
<div>
<p>På jakt etter et enkelt eksempel var det bare for meg å gå tilbake til sommerens investering i racersykkel.  Blant alt nødvendige tilleggsutstyr som måtte til var det også en GPS mottaker som lagrer ruter og tid. Jeg kunne dermed i etterkant avdekke hvor sakte det faktisk gikk og hvor slakke bakker jeg faktisk besteg. Isolert sett meget begrenset underholdning, men når man laster opp nevnte data til tjenester som <a title="Strava" href="http://www.strava.com/" target="_blank">Strava</a>, så åpner det seg en liten verden og engasjementet vekkes. Strava er en av flere nettjenester som lar deg dele turdata med venner og ukjente, utfordre eller bli utfordret og selvsagt følge med din egen fremgang eller mangel på sådan. Sykling alene i regnet blir ikke lenger en ensom øvelse, men både forbrødring og kamp om prestisje. Det er plutselig digitale merker som kan vinnes, venner som kan knuses og resultattavler som kan erobres.</p>
<p>&nbsp;</p>
</div>
<div>
<h2>Spørsmål om design</h2>
<p>Gamification har til nå vært tydeligst i forbindelse med markedsføring og kundelojalitet. Men gamification representerer og et betydelig potensial internt i virksomheter, gjennom å fremme positiv atferd og synliggjøre verdifulle, men nesten skjulte aktiviteter – spesielt innen samarbeid, læring og innovasjon. Gamification tilbyr enkle regler, kortsiktige mål og ikke minst rask tilbakemelding på egne handlinger.  Det kan med andre ord være en god kilde til å bygge engasjement, og ikke minst et godt supplement til virkelighetens noe mer komplekse regelverk, sammensatte målsettinger og ikke minst årlige medarbeidersamtaler. Spillmekanismer fungerer, det har faktisk fungert i mangfoldige år. Diplomer, medaljer, titler, bonuspoeng på flyreiser og ikke minst månedens ansatt har motivert større og mindre bragder gjennom menneskets historie. Det nye er selvsagt den digitale varianten, og det området vil ekspandere sterkt i årene som kommer i følge flere analysebyrå.</p>
<p>Som tidligere spillanmelder kjenner jeg godt til engasjementet som skapes av gode spill, men samtidig også at mangel på engasjement definerer dårlige spill. Det er nemlig ikke glossy ikoner, grom lyd og grafikk som får timene til fly, men evnen til å involvere spilleren i historien.  Dette gjelder også for gamification. Det er ikke bare å dele ut poeng og virtuelle diplom, og håpe at kjedelige oppgaver blir mindre kjedelige. Mindre vellykkede løsninger bommer på målene, men kan i verste fall også resultere i uventede konsekvenser. Direkte knytninger til eksterne incentiver som eksempelvis bonus og lønn kan føre til at det som skulle bli økt samarbeid ender i bitter konkurranse internt.</p>
<p><a title="Gartners rapport om gamification" href="http://www.gartner.com/it/page.jsp?id=2251015" target="_blank">Gartner estimerer</a> at over 80% av alle gamification løsninger ikke vil oppnå sine forretningsmål i 2014 grunnet svak design. Samme analyseselskap sier samtidig at virksomheter kommer til å bli en av de større markedene for gamification og at 40% av de tusen største globale selskapene vil bruke spillmekanismer for å øke produktivitet innen 2015.</p>
<p>Behovet for en god designprosess er dermed tilstede. Gode løsninger kjennetegnes ved at de i større grad motiverer indre drivkrefter som mestring og anerkjennelse. Anerkjennelse er en viktig motivasjonskilde for mennesker. Anerkjennelse veier tyngst når den kommer fra dem som betyr noe for deg og når det er for en god innsats, ikke tilfeldigheter. For å sette det litt på spissen, det er en forskjell mellom tildeling av Krigskorset fra et metallstykke i bronse vunnet på skolekorpsets julelotteri.</p>
</div>
<div>
<p>Engasjement og endring av faktisk atferd er avhengig av indre motivasjon. For en god løsning er derfor mekanismer fra spill kun en del av svaret. For en vellykket virksomhetsløsning vil man i tillegg være avhengig av mekanismer som ivaretar det sosiale aspektet og medarbeiderens renommé.</p>
<p><img class="size-full wp-image-1361 aligncenter" src="http://www.no.capgemini.com/teknologiblogg/files/2013/01/Trophy.png" alt="Pokal" width="174" height="174" /></p>
<ul>
<li><strong>Spillmekanismer</strong> – drive, måle og belønne ønsket atferd</li>
<li><strong>Sosiale mekanismer</strong> – sosialisere, anbefale og informere medarbeidere</li>
<li><strong>Renommé-mekanismer </strong>– bygge status på tvers av hierarki</li>
</ul>
<h2> </h2>
<h2>Sales quest</h2>
<p>Gamification av en sport som sykling er nok konseptuelt enklere enn flere av utfordringene som virksomheter har, men også her begynner markedet å modnes. Capgemini har blant annet nylig inngått strategisk partnerskap med <a title="Badgeville.com" href="http://www.badgeville.com" target="_blank">Badgeville</a> for å tilby gamification teknikker i større transformeringsprosjekter.  Selskapet er en av de ledende aktørene innenfor gamification, og samtidig et tydelig bevis på at markedet vokser sterkt. Badgeville ble etablert så tidlig som i 2010, men har allerede nå over 200 kunder, deriblant kjente aktører som Microsoft, Dell, Samsung, Oracle, ebay, Samsung og NBC.</p>
<p>Badgeville lanserte i høst <a title="Badgeville connector for Salesforce.com" href="http://badgeville.com/products/connectors/badgeville-for-salesforce" target="_blank">gamification modul for Salesforce</a>. Modulen tilbyr selskaper å tildele poeng og virtuell belønning for bestemt atferd, samt lage oppdrag for lag eller enkeltpersoner. Dette er ikke revolusjonerende nytt for selgerkorpset. Salgsmål, lister, gulerøtter og pisk har vært brukt og misbrukt siden første eple ble avhendet i Edens hage.</p>
<p>Det som den nevnte modulen tilbyr, som er av nyere dato, er å integrere spillmekanismer direkte i salgsverktøyet til selskapet, det hellige CRM.  For en selger kan det bety raskere og tydeligere tilbakemelding på, og synliggjøring av, innsats og samarbeid. Men det er samtidig et betydelig incentiv for selgeren til å engasjere seg og faktisk bruke systemet slik det er tiltenkt – og dermed bidra til å øke både datakvalitet og systemverdi. Engasjement skaper som kjent verdi.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.no.capgemini.com/teknologiblogg/2013/01/start-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hverdagsangst</title>
		<link>http://www.no.capgemini.com/teknologiblogg/2013/01/hverdagsangst/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hverdagsangst</link>
		<comments>http://www.no.capgemini.com/teknologiblogg/2013/01/hverdagsangst/#comments</comments>
		<pubDate>Fri, 11 Jan 2013 09:49:48 +0000</pubDate>
		<dc:creator>Lene Bråtesveen</dc:creator>
				<category><![CDATA[Prosjektledelse]]></category>

		<guid isPermaLink="false">http://www.no.capgemini.com/teknologiblogg/?p=1396</guid>
		<description><![CDATA[Angst er ufravikelig. Hvordan du forholder deg til den bestemmer hvordan livet ditt vil bli. Paul Moxnes Det er et viktig møte med kunden i morgen. Etter timer med flikking på rapporten, er du fornøyd. Nå gjenstår bare en god natts søvn. Rett etter du har krabbet under dyna, får du flere ideer. Du må opp for å skrive dem ned. Nå er det klart for søvn, må jo være frisk og rask i morgen. &#8230;]]></description>
			<content:encoded><![CDATA[<p style="padding-left: 30px;"><em>Angst er ufravikelig. Hvordan du forholder deg til den bestemmer hvordan livet ditt vil bli.</em></p>
<p style="padding-left: 30px;"><em>Paul Moxnes</em></p>
<p>Det er et viktig møte med kunden i morgen. Etter timer med flikking på rapporten, er du fornøyd. Nå gjenstår bare en god natts søvn. Rett etter du har krabbet under dyna, får du flere ideer. Du må opp for å skrive dem ned. Nå er det klart for søvn, må jo være frisk og rask i morgen. Klokka blir ett, men du har fortsatt mange gode ideer. Dette blir SÅ bra, tenker du fornøyd. Klokka blir to. Du begynner å bli litt urolig. Jeg må sove nå. Får jeg ikke sove nå, så… Når klokka er tre begynner panikken å bre seg. Jeg kommer ikke til å gjøre det bra i morgen! Kan jeg bli tatt ut av prosjektet etter min begredelige prestasjon under møtet? Det blir i så fall begynnelsen på slutten av min karriere. Klokka nærmer seg halv fire, og midt inne i din egen villfarelse om hvor stor en skandale morgendagen blir, slumrer du inn. Når klokka vekker deg noen timer senere, spretter du opp. Klar til kundemøte. Fokusert og overraskende lite trøtt.</p>
<p>Noen som kjenner seg igjen? Supert, det betyr at du er helt normal. Dette er helt vanlige menneskelige følelser. Dette er angst.</p>
<p>Angst? Ja, angst.</p>
<p>La meg først som sist presisere følgende: Det er ikke angst som panikk og tvangslidelser jeg snakker om. Jeg snakker om hverdagsangsten – den redsel, uro og nervøsitet vi kjenner i arbeidsliv og sosiale situasjoner. Angsten som skyldes situasjonsbetinget stress, som befester seg med forbigående perioder med søvnproblemer, kvalme, eller rett og slett svette hender, hoppende hjerte og gelé i beina. Organisasjonspsykolog Moxnes kaller det for henholdsvis kald og varm angst.  Det er den varme og positive angsten Moxnes har promotert i flere år som jeg vil ha opp og frem på agendaen.</p>
<p>Hva er du redd for? Jeg er redd for en rekke saker. Ikke innfri overfor han som ansatte meg, er en, at jeg ikke klarer å løse oppgavene jeg påtar meg, er en annen. Mest av alt er jeg redd for presentasjoner og intervjuer der det er forventet at jeg skal gjøre meg struttende og gjeldende. Er jeg et svakt menneske? En bunt full av nerver og manglende selvtillit? Det er gjerne det vi blir lært opp til å tenke. Angst er for de svake og overfølsomme. Angst er et symptom på noe underliggende og grunnleggende feil. Vi lærer raskt å skjule angst overfor kollegaer, kunder og ikke minst – oss selv. ”Ta det som en mann”, med andre ord, løs oppgaven uten å vise redsel. Det er disse oppfatningene jeg vil til livs!</p>
<p>Det store spørsmålet er: Hvordan forvalte angsten din så det gir deg ekstra energi og fokus? Unngå at angsten står i veien, paralyserer og kan få deg til å senke ambisjonsnivået ditt? Moxnes gir følgende råd:</p>
<p style="padding-left: 30px;">Vedgå angsten og aksepter at den er der!  Min erfaring tilsier at jeg ikke blir mindre redd av å late som om jeg ikke er redd. Snarere tvert imot, fordi jeg bruker energien min på å finne ut av hvorfor jeg er redd og ergrer meg. Jeg har akseptert at redd kan jeg tidvis bli, med alle sine merkelige utslag. Nå setter jeg pris på angstens inntog fordi jeg vet det er en viktig kilde til energi. Jeg har også akseptert at jeg aldri kommer til å ”helbrede” eller bli kvitt angsten min så lenge jeg prøver å gjøre ting jeg ikke kan. Jeg forvalter ikke angsten min perfekt i dag, men jeg blir stadig bedre.</p>
<p style="padding-left: 30px;">Gjør ting du ikke vil til et MÅ. Så lenge det er en mulighet for å velge den feige veien (dette kan eller bør jeg), er det lett å ta den. Eliminer mulighet for en annen utvei med et standhaftig MÅ. Finn noe av høy verdi for deg, og sett det mot dette. Dette kan være med hensyn til eget liv og utvikling, til dine barn, lojalitet til organisasjonen osv.</p>
<p style="padding-left: 30px;"> Identifiser en trygg base du kan lande på innimellom.  Angst er energi, men vi trenger trygghet for å vokse og tørre å ta nye skritt.</p>
<p style="padding-left: 30px;"> Sist, men ikke minst, gjør det du er redd for om og om igjen. Og enda en gang til.</p>
<p>Har du kjent på kroppen din når du må gjøre noe du er redd for? Hvor fokusert og energisk angsten kan gjøre deg? Min usikkerhet om hvorvidt jeg er god nok, får meg til å si ja-takk til alle oppgaver som blir sendt min vei. Min tvil om jeg klarer å løse oppgaver jeg har påtatt meg, får meg til å jobbe litt hardere. Gang på gang. Når jeg får mulighet til å lede et viktig prosjekt, er jeg redd, tidvis søvnløs og kvalm, men jeg er også veldig lykkelig. Jeg får ut angsten min i engasjement og handling. Jeg presterer bedre. Jeg kunne ha tilstrebet å være minst mulig redd, men da hadde jeg ikke lært mye nytt.</p>
<p>En merkelapp med ANGST i panna er noe de fleste vil unngå, meg selv inkludert. Så hvorfor bruke en så forhatt definisjon på følelser de aller fleste kan kjenne seg igjen i, men ikke helt vil vedkjenne seg? Jeg vil at flere skal vite at angst er en vanlig, menneskelig følelse. Forbigående søvnløshet, katastrofetanker, kvalme og svette når du gjør noe utenfor din komfortsone er en naturlig del av vårt følelsesspekter, og ikke en sykdom. Jeg applauderer Moxnes når han retter en pekefinger mot helsevesenet og legemiddelindustrien som tidvis sykeliggjør og behandler hverdagsangsten. Det burde være allment å kunne anerkjenne og mestre angst, fremfor slik det er i dag: gjemme, diagnostisere og medisinere all angst- også den positive.</p>
<p>Min siste oppfordring er:</p>
<p style="padding-left: 30px;"><em>Til deg som mestrer angsten din: Fortell hvordan til din neste </em></p>
<p style="padding-left: 30px;"><em>Til deg som er leder: En forutsetning for å få mestringsorienterte medarbeidere som vil vinne, er å ha en trygg base. Gi de ansatte trygghet ved å la dem prøve, gi rom for å feile og ta angst som et tegn på et bankende hjerte som ønsker å gjøre det bra! Redselen for nederlag må ikke bli større enn trangen til å lære.</em></p>
<p style="padding-left: 30px;"><em>Til deg som tror du er hevet over angst: Når utsatte du deg selv for endringer sist, noe nytt?</em></p>
<p style="padding-left: 30px;"><em>Til deg som frykter du er syk: Les Moxnes.</em></p>
<p><strong> NB! En forkortet versjon av denne bloggposten var også på trykk i Ukeavisen Ledelse.</strong></p>
<p><em>Referanse: Paul Moxnes (2012) Positiv Angst i individ, gruppe og organisasjon. Et organisasjonspsykologisk perspektiv. 4 versjon.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.no.capgemini.com/teknologiblogg/2013/01/hverdagsangst/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Single Page Application &#8211; en kort innføring</title>
		<link>http://www.no.capgemini.com/teknologiblogg/2012/12/single-page-application/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=single-page-application</link>
		<comments>http://www.no.capgemini.com/teknologiblogg/2012/12/single-page-application/#comments</comments>
		<pubDate>Fri, 14 Dec 2012 10:02:38 +0000</pubDate>
		<dc:creator>Trond Martin Nyhus</dc:creator>
				<category><![CDATA[Trender]]></category>

		<guid isPermaLink="false">http://www.no.capgemini.com/teknologiblogg/?p=1345</guid>
		<description><![CDATA[Det dukker stadig opp nye buzzwords og forkortelser, eventuelt gamle som det blir tørket støv av, og det er ikke alltid like lett å følge med i svingene på disse buzzene. Det er heller kanskje ingen stor nødvendighet, hvis du ikke er interessert i å få noen poeng på en eventuell fredagsquiz.

Nå skal ikke jeg fortelle om alle mulige forkortelser og buzzer som kan dukke opp på quizer, salgsmøter eller i fluffy foredrag og presentasjoner. Men jeg vil se litt nærmere på en, SPA, eller Single Page Application som det er forkortelse for i denne sammenhengen.]]></description>
			<content:encoded><![CDATA[<p>Det dukker stadig opp nye buzzwords og forkortelser, eventuelt gamle som det blir tørket støv av, og det er ikke alltid like lett å følge med i svingene på disse buzzene. Det er heller kanskje ingen stor nødvendighet, hvis du ikke er interessert i å få noen poeng på en eventuell fredagsquiz.</p>
<p>Nå skal ikke jeg fortelle om alle mulige forkortelser og buzzer som kan dukke opp på quizer, salgsmøter eller i fluffy foredrag og presentasjoner. Men jeg vil se litt nærmere på en, SPA, eller Single Page Application som det er forkortelse for i denne sammenhengen.</p>
<h3>Hva er SPA?</h3>
<p>Kort fortalt er SPA en betegnelse på en web-applikasjon som kun operer med en side, og i hovedsak laster all informasjon som siden trenger i seg selv med en page-load, slik at brukeren får en mye mer brukervennlig opplevelse. Det vil ikke si at man laster all tenkelig data en bruker kan komme til å trenge, men det man initielt trenger for å bruke applikasjonen. Så laster man heller stadig mer nødvendig data avhengig av bruk og input.</p>
<h3>Men hva betyr dette egentlig?</h3>
<p>Først vil jeg prøve å forklare konseptet med “page”. Opprinnelig tillot en nettleser deg å navigere fra dokument til dokument, eller såkalte “pages”. En enkelt page var et fullverdig og komplett HTML-dokument som viste brukeren informasjon. Opp igjennom årene kom det til styling o.l. i form av bl.a. CSS, og man hadde et konsept med webforms, som var nettleserens måte å kommunisere data tilbake til serveren på. Etter hvert kom det til flere og flere teknologier og teknikker (javascript, xml osv.). Dette gjorde at man fikk såkalt dynamisk html, en side som reagerte og forandret seg ved brukerinnput, uten en server-roundtrip (form-post), for å generere en ny html-side. Ved å utvikle og koble sammen en del av disse “dynamisk-html”-scriptene og modulene fikk  man det vi i dag kaller en web-app. Dette er en veldig overordnet og simpel tolking av det hele, men tanken bak SPA er altså ikke noe “nytt” som plutselig dukket opp. Idéen om en page som dynamisk oppdaterer seg og lever i en “self-contained” state, har levd siden tidlig 2000-tallet, og termen SPA er først dokumentert brukt av Steve Yen i 2005.</p>
<p>En av de tidlige og mest kjente web-appene som kan ses på som en SPA, er Gmail, som kom i 2005. Gmail bruker ikke forms for å sende informasjon tilbake til en server for å genere en ny visningsside, men sofistikerte og avanserte JavaScript som kommuniserer med serveren i stedet. Denne teknikken heter AJAX (Asynchronous JavaScript and XML) og er i dag en temmelig kjent og mye brukt standard blant webutviklere.</p>
<p>Noe annet som er greit å se på, er et pattern som understøtter SPA, nemlig MVVM (Model, View, ViewModel)</p>
<p><a href="http://www.no.capgemini.com/teknologiblogg/files/2012/12/mvvm.png"><img class="alignnone size-full wp-image-1347" src="http://www.no.capgemini.com/teknologiblogg/files/2012/12/mvvm.png" alt="" width="683" height="141" /></a></p>
<p>MVVM er i hovedsak et seperation pattern og passer utmerket til web-app­-utvikling. Som MVC fokuserer det på å separere businesslogikk og  presentasjonslogikk. V<span style="color: #000000;">iewmodellen brukes til å holde en «temporær» state av modellen som ligger på klientsiden. Den vil typisk eksponere ønskede egenskaper som presentasjonlaget bruker for å vise sluttproduktet. Modellen i sin del har ansvar for businesslogikken og de tjenester som skal tilbys.  </span></p>
<p>Det gjør at en interaksjonsdesigner i hovedsak kan fokusere på viewet og UX f.eks. ved HTML eller XAML, mens han smidig kan forholde seg til endringer og ønsker fra sluttbrukeren uten å bekymre seg stort over rippleeffekter ned i businesslaget. Mens en back-end utvikler kan fokusere på domene-modellen, POCO, JSON eller hva det måtte være og dens tilhørende businesslogikk, hvor ønskende operasjoner eksponeres i forskjellige endepunkter. En slik &#8220;seperation of concerns&#8221; tankegang gjør at de som jobber på de forskjellige lagene i løsningen ikke er like avhengige av hverandre og man kan få et mer smidig samarbeid.</p>
<h3>Hvorfor SPA nå?</h3>
<p>Brukeropplevelse og flyt er blitt mer og mer fremtredende og viktig ved applikasjonsutvikling de siste årene, og det har kommet mange nye plattformer som også har kastet seg på applikasjonsbølgen. Det blir stilt stadig høyrere krav til sømløshet, tilgjengelighet, responsivitet, og sluttbrukere er blitt mer utålmodig når det kommer til å vente på nettverkstrafikk.</p>
<p>Så ved å bruke f.eks. MVVM, SPA-tankegangen, Microsoft WebApi, AJAX, jQuery, andre javascriptbiblioteker som knockout og backbone, bare for å nevne et fåtall av kombinasjoner, kan man gi sluttbrukeren en bedre opplevelse. Ved hjelp av en modell som ligger på klientsiden, template/modul-views for visning og JavaScript e.l. for å bytte ut ønsket visningsdata, i tillegg til at man i initielt laster opp det mest nødvendige som skal vises, kan man møte mange av de økende kravene.</p>
<p>Jeg har kun skrapet på overflaten til dette konseptet, men hvis det er av interesse og man ønsker et mer teknisk dypdykk, kan jeg på det varmeste anbefale et par Pluralsightvideoer av John Papa. <em><a href="http://pluralsight.com/training/Courses/TableOfContents/spa">Single Page Apps with HTML5, Web API, Knockout and jQuery</a> o</em>g <em><a href="http://pluralsight.com/training/Courses/TableOfContents/knockout-mvvm">Building HTML5 and JavaScript Apps with MVVM and Knockout</a>. </em>Ellers er det bare å kaste seg rundt og begynne å leke!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.no.capgemini.com/teknologiblogg/2012/12/single-page-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usability first</title>
		<link>http://www.no.capgemini.com/teknologiblogg/2012/12/usability-first/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=usability-first</link>
		<comments>http://www.no.capgemini.com/teknologiblogg/2012/12/usability-first/#comments</comments>
		<pubDate>Fri, 07 Dec 2012 14:36:54 +0000</pubDate>
		<dc:creator>Jarle Tronerud</dc:creator>
				<category><![CDATA[Innovasjon]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.no.capgemini.com/teknologiblogg/?p=1331</guid>
		<description><![CDATA[I et IT-selskap virker det som det er en evig diskusjon hva som skal komme først i et IT-prosjekt.  Noen mener vi diskuterer høna og egget eller hva som er framme og bak på en tradisjonell trykkerimaskin. Dette er et argument for å inkludere usability tidlig i prosjektet.]]></description>
			<content:encoded><![CDATA[<h2>Hva skal komme først i et IT-prosjekt?</h2>
<p>I et IT-selskap virker det som det er en evig diskusjon hva som skal komme først i et IT-prosjekt.  Noen mener vi diskuterer høna og egget eller hva som er framme og bak på en tradisjonell trykkerimaskin. Dette er et argument for å inkludere usability tidlig i prosjektet.</p>
<p>Alle prosjekt blir til på grunn av et eller annet behov eller en problemstilling. Hva som er behovet varierer &#8211; men vi har alltid et behov, en sluttbruker eller mottaker, og en avsender eller oppdragsgiver. I tillegg til behov har alle prosjekt et mål. De fleste prosjekt har også en strategi som forteller hvordan målet skal nås og behovet dekkes.</p>
<p>Konsulenter som jobber med eksterne nettsteder opplever at de må ta andre hensyn til design, kommunikasjon og usability enn konsulenter som jobber med interne løsninger. Årsaken er normalt at kunden setter strengere krav til branding, brukervennlighet og relevans. Et eksternt nettsted skal ofte fremme salg, noe som gjør det enkelt å måle suksess.</p>
<p>Det er tilsynelatende ikke like enkelt å måle suksessen til et timeføringssystem eller et tilsynssystem, men det bør likevel gjøres. Vi finner alltid noe relevant vi kan måle. Vi klarer alltid å finne ut om en løsning gir verdi og hvor stor verdiøkningen eventuelt er.</p>
<p>For å få til en verditilføring eller en verdiøkning må vi gjøre en del enkle grep. Jeg har aldri opplevd en IT-løsning som er så teknisk suveren at det ikke er behov for usability. Det er som å konstruere en Formel 1 racerbil med tilhengerfeste, dieselmotor og hundebur. Det blir lite relevant og mye støy.</p>
<p>Tenker du usability først får du vite hva målgruppen finner relevant og hva sluttbrukerne av løsningen har behov for. Ved prosjektoppstart av et suksessprosjekt møtes prosjektleder, business analyst og usability analyst. Sammen setter de opp prosjektplan og skisse, men først gjennomføres det en målgruppeanalyse.</p>
<p>En målgruppeanalyse forteller oss hva løsningen bør inneholde og hvordan løsningen bør fungere. Alt handler om relevans og behov. Vi spør aldri hva målgruppen har lyst på eller hva de ønsker. Vi snakker ofte om tre hoveddeler:</p>
<ol>
<li>Grunnforståelse av målgruppen (mottaker/ bruker)</li>
<li>Grunnforståelse av kommunikasjonsprosessen</li>
<li>Forhold som kan påvirke kommunikasjonsprosessen</li>
</ol>
<p>Resultatene fra målgruppeanalysen krysses med avsenders mål. Dette danner grunnlaget for den første prosjektskissen. Vi skal ikke glemme å være kreative og innovative, for målgruppen kan kun svare på spørsmål de vet svaret på. Kjenner vi målgruppen godt har vi gode forutsetninger for å kunne foreslå nytt innhold og nye funksjoner.</p>
<p>Noen ganger er det bestemt hva slags teknisk løsning som skal lages, men teoretisk sett bør målet avklares før vi tenker teknisk. Vi ser stadig vekk løsninger som er hightech, men som er laget for å håndtere enkle oppgaver. Begynner vi i motsatte ende er det enklere å lage en teknisk løsning som passer prosjektmålet.</p>
<p>Usability er for mange synonymt med brukervennlighet. At ikke alle IT-løsninger er brukervennlige synes jeg er merkelig. Det koster lite eller ingenting ekstra i tid og penger. Det handler kun om prosess og prioriteringer.</p>
<p>La oss se litt på brukerinvolvering. Vi snakker da om intervjuer og brukertester hvor vi trekker inn målgruppen. Vi bør så tidlig som mulig sjekke med målgruppen om det vi planlegger er i tråd med målgruppens behov. Vi bør sjekke om funksjoner er intuitive og relevante. Får vi ”godkjenning” fra målgruppen tidlig i prosjektet er det mye enklere for prosjektleder og prosjektmedlemmer å styre mot en nyttig og verdiskapende løsning.</p>
<p>Brukertesting kan gjøres på mange måter. Før løsningen er påbegynt, bruker vi skisser eller prototyper i brukertestingen. Både intervjuer og brukertester kan gjøres som korte avsjekk eller lange, grundige tester. Antall brukertester er ikke det som automatisk avgjør om resultatet blir bra eller ikke. Det beste er å teste til du ikke lærer noe nytt og resultatet av testen ikke varierer stort.</p>
<p>Usability handler også om design, innhold, navigering og brukervennlighet. Det finnes en rekke regler og anbefalinger i forhold til brukervennlighet. Jobber du med et offentlig prosjekt bør du ha universell tilgjengelighet i bakhodet. Generelt er det en designer, interaksjonsdesigner eller innholdsstrateg som passer på at løsningen blir brukervennlig og tilpasset målgruppen. Det siste er det viktigste, spesielt når vi snakker om interne løsninger.</p>
<p><a href="http://www.no.capgemini.com/teknologiblogg/files/2012/12/iStock_000012293508_ExtraSmall.jpg"><img class="alignleft size-full wp-image-1342" src="http://www.no.capgemini.com/teknologiblogg/files/2012/12/iStock_000012293508_ExtraSmall.jpg" alt="" width="401" height="299" /></a></p>
<p>Det hjelper lite om det sitter en designer og rir på generelle retningslinjer for brukervennlighet hvis målgruppen er ukjent. Løsninger må tilpasses målgruppen, også teknisk. Det finnes et fantastisk begrep som kalles livsverden. Vi er ikke flinke til å bruke det i Norge, men våre  dyktige venner i Danmark snakker ofte om livsverden. Livsverden dreier seg om forhold ved brukeren som kan påvirke hvordan han eller hun bruker løsningen.</p>
<p>Livsverden kan være med på å styre hvor intuitiv en løsning må være for å bli adoptert av målgruppen. Det er som regel adopsjon av innovasjonen det handler om til slutt. Det er enklere å sette tall på adopsjon i forhold til eksterne løsninger. Interne løsninger er ofte verktøy som ansatte må bruke for å kunne utføre jobben sin. Det beste er mange ganger å sette opp tilbakemeldingsintervju i etterkant og brukerteste alt vi orker underveis i designprosessen.</p>
<p>Usability er med andre ord en måte du kan kvalitetssjekke løsningen allerede før den er laget. Du skal selvsagt aldri glemme høy teknisk kvalitet, hastighet, teknisk testing og alle de andre tingene vi er flinke til. Usability betyr bare at den tekniske løsningen blir opplevd som spissere og mer relevant for målgruppen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.no.capgemini.com/teknologiblogg/2012/12/usability-first/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
