Valtech Labs

Brown Bag: Autodeploy när man inte kommer åt miljöerna – extended version

Robin Helly, .NET-utvecklare på Valtech, höll under Valtech Tech Day 2014 en mycket omtyckt dragning om autodeploy. Under den här Brown Bagen höll Robin en längre version med mer detaljer och mer kod för att verkligen ge en grundlig genomgång av ämnet!

Många av våra kunder överlåter själva deployerna till sina driftsleverantörer och därmed kan vi i våra utvecklingsprojekt inte ha full kontroll på koden när vi släpper den ifrån oss – eller? Jo, säger Robin! Vi kan fortfarande automatisera och bygga bort den mänskliga faktorn nästan fullt ut under deploymentprocessen. Under denna session visade Robin hur hon och teamet på Länsförsäkringar har löst det.

ValtechLunchBag

Valtech Brown Bag är ett nytt koncept för 2014 där vi öppnar upp vår kunskapsdelning och bjuder in till frukostseminarium.

Linn Andersson Risdal

Profilera Node.js-tester med Nodetime

I min presentation på Valtech Tech-day presenterade jag olika tekniker för att få snabba tester med Node.js. En av teknikerna är att profilera sina tester på samma sätt som sin produktionskod. Att profilera en applikation (eller tester) innebär att du får se var din applikation spenderar CPU-tid. Om det finns tydliga flaskhalsar i din kod kommer du se dem som platser där en stor del av CPU-tiden spenderas. Det är precis den koden som lönar sig att optimera mest.

Men varför är det viktigt med snabba tester? Det finns flera anledningar. En långsam testsvit leder till en ovilja att köra testerna. Istället för att köra dem själv så börjar du förlita dig på att byggservern ska köra testerna istället, med fler trasiga byggen som följd. Ännu skadligare blir en långsam testsvit om den får dig att tveka inför att skriva nya tester. Eftersom du inte vill göra testerna ännu långsammare, genom att lägga till fler, blir din kod mindre och mindre vältestad. Med en riktigt snabb testsvit kör du testerna oftare och tvekar inte för att lägga till nya. Och så blir det ju mycket roligare att utveckla när du slipper vänta!

Nodetime är en tjänst som gör det enkelt att profilera Node.js-applikationer. Du får se var din applikation spenderar CPU-tid med en enkel knapptryckning i ett webbgränssnitt. Tjänsten är gratis om du bara använder den för en applikation i taget vilket är det normala under utveckling.

Det vanliga sättet att profilera en applikation med Nodetime är att installera dess npm-modul, inkludera modulen överst i din kod, lasta din server med Apache Bench, Locust, JMeter eller liknande och så trycka på profileringsknappen i Nodetimes webbgränssnitt. Efter några sekunder dyker profileringsdatan upp på skärmen och du kan klicka dig runt för att se om din kod behöver optimeras.

Att profilera tester är lite annorlunda. Du måste till exempel se till att Node.js-processen inte stängs av innan Nodetime skickat profilerings-datan till molnet. Och du måste köra testerna kontinuerligt under profileringen för att få bra mätvärden. Om testerna tar kortare tid att köra än tiden du mäter kommer det inte vara lika tydligt vilken kod du bör optimera.

En enkel lösning är att köra något test (helst ett långsamt!) många gånger i rad. Använder du Mocha för att köra dina test behöver du bara göra en loop kring test-definitionen för att köra godtyckligt många kopior av ett testfall.

it('runs slowly', function (done) {
...
})

kan köras 100 gånger genom att köras i en loop

for (var i = 0; i < 100; i++) {
it('runs slowly', function (done) {
...
})
}

Nu kan du starta dina tester (glöm inte att Nodetime-modulen måste installeras och aktiveras) och profilera under tiden som testerna körs.

Något som kan försvåra profileringen ytterligare är test-biblioteket Nock. Nock är en förträfflig HTTP-mocknings-modul som jag varmt rekommenderar men som kan förhindra Nodetime från att alls ladda upp sin data. Även om du ställer in Nock för att tillåta riktiga HTTP-anrop så misslyckas Nodetime med sin uppladdning. Jag har misslyckats med att komma fram till varför, men det är inte helt förvånande med tanke på att nock byter ut de underliggande http och https modulerna i Node.js för att göra sitt jobb.

Som tur är kan du tjuvkika på profileringsdatan ändå. Liksom alla andra Node.js moduler kan du läsa källkoden till nodetime och dessutom göra ändringar i den. Genom att ändra källkoden kan du skriva profileringsdatan till disk och profilera testerna trots att de använder nock.

Gör såhär:

Installera nodetime med ”npm install nodetime”. Öppna ”node_modules/nodetime/lib/saas/saas-client.js” och leta reda på metoden ”SaasClient.prototype._push”. Det är den här metoden som står för själva uppladdandet. Först i den metoden lägger du till:

require("fs").writeFileSync("profile.json", this._pushBuffer);

Det kommer se till att profileringsdatan sparas ner i JSON-dokumentet ”profile.json”. Nu spelar det inte längre någon roll om nätverksuppkopplingen fungerar eller inte!

Lägg nu till nodetime start-koden i ditt långsamma testfall och kör det många gånger i rad enligt ovan, växla över till https://nodetime.com/ och aktivera CPU-profilering. Vänta lite och profile.json dyker strax upp. I den här filen har du all exekveringsinformation i all sin härlighet. Sök efter det reguljära uttrycket ”[0-9]{2,}\.[0-9]{2}%” så hittar du alla funktioner i koden som tar upp mer än 10% av tiden.

Förhoppningsvis hittar du någon sådan och har du tur är det något självklart. I mitt fall visade det sig att testerna av en webbapplikation gick onödigt långsamt eftersom mall-cachning var avslaget när testerna kördes. Varje testanrop till webbapplikationen innebar att en hel hög med mallar kompilerades om från scratch. Genom att aktivera mall-cachning, vilket bara krävde en ändring i en konfigurationfil, så gick testerna mer än tre gånger så snabbt!

Förhoppningsvis lyckas du också snabba upp dina tester, med ovanstående teknik, och får njuta av utveckling med mindre väntetid. Lycka till!

Gabriel Falkenberg

Valtech Tech Day 2014

Valtech Tech Day anordnas för Stockholms utvecklar-community. I år hade vi 12 dragningar uppdelat på två spår med start efter lunch. Vi fokuserade inte på något specifikt språk eller teknik, utan tanken var att både lära sig mer om det man redan är bra på, samt att lära sig om helt nya områden.

Nedan finns filmerna och presentationer från dragningarna.

Stefans presentation:

 

Gabriels presentation:

 

Olgas presentation:

 

Björns presentation:

 

Marcus & Saras presentation:

 

 

Adam & Jonas presentation:

 

Kalle K-funk & Alexanders presentation:

 

Jankos presentation:

 

Pelles presentation:

 

Robins presentation:

 

Linn Andersson Risdal

Brown Bag – Idéer och lösningar med hjälp av Design Studio

Jens Wedin berättar hur man genom Design Studio på kort tid kan generera massor av idéer och lösningar inom ett team eller projekt. Jens arbetar idag med digital produktdesign på Valtech.

Design studio & collaborative design

Han började sin presentation med att först igenom grunderna för verktyget, därefter lät han deltagarna testa på hur Design Studio fungerar i praktiken.

ValtechLunchBag

Valtech Brown Bag är ett nytt koncept för 2014 där vi öppnar upp vår kunskapsdelning och bjuder in till frukostseminarium.

Linn Andersson Risdal

Inspirationslunch: Trender och insikter om E-handeln i Sverige

E-handeln växer just nu snabbare än på lång tid och finns på de flestas agenda på såväl lednings- som styrelsenivå.

Niclas Heurlin, med mer än 15 års erfarenhet av operativt arbete i större e-handelsföretag, delar med sig av de senaste trenderna inom e-handelsområdet.

På inspirationslunchen talade Niclas bland annat om:

- Nulägesanalys kring e-handeln 2014 – marknadsutveckling.
- De viktigaste trenderna just nu inom e-handel.
- De viktigaste framgångsfaktorerna för e-handelssatsningar.
- Hur kan man gå från e-handel till lönsam e-handel?

Linn Andersson Risdal

Ta chansen att jobba på Valtech, där det mest oväntade händer!

Ellen och Larre 3

Det är dags för ännu ett nedslag i Valtech medarbetarnas vardag och denna gång har turen kommit till Ellen och Alexander. De är båda huvudpersoner i en av många roliga saker som händer på Valtech.

Det hela startade när Ellen var nyanställd på Valtech och det inte fanns något passande datorfodral till hennes nya jobbdator. Efter flera misslyckade beställningar på fodral föreslog Alexander, som knappt träffat Ellen tidigare, skämtsamt att Ellen kunde sy ett fodral istället för att krångla med beställningar. Ellen som tidigt kände sig avslappnad på sin nya arbetsplats föreslog lika skämtsamt att han kunde sticka ett till henne istället.  Då Alexander inte backar för en utmaning blev hans reaktion ett blixtsanbbt svar att han absolut inte kunde sticka men att han virkat i skolan. Hur svårt kunde de va att göra det igen?

Varken Alexander eller Ellen hade nog förväntat sig att något ens i närheten av ett fodral faktiskt i slutänden skulle tillverkas.. Ellen kunde dock inte motstå frestelsen att utmana Alexander och några dagar senare låg boken ”Virkat för män”, en påse med garn och virknål samt en lapp med telefonnummer till Virksupport Direkt på Alexanders skrivbord.

Redan samma kväll låg en bild med de första virkframstegen ute på Facebook. Idag är Alexander en av huvudmedlemmarna i Valtechs virk- och stickgrupp som har regelbundna möten och många kollegor har gett Alexander beställningar på sina egna specialutformade fodral.

 

Vem är Alexander?
Namn: Alexander Larre
Typ av utbildning: Gymnasieingenjör och självlärd inom IT-drift och IT-management
År inom branschen: 19
Vad gör du på Valtech: All intern drift och administration inom IT
Saker du lärt dig inom tech under april: Operating System Deployment med Configuration Manager
Det bästa med ditt senaste projekt: Att det förenklade det dagliga arbetet och sparade tid åt medarbetarna
Vad kan man lära sig av dig: Det mesta inom klient, server och nätverk
Vem är Ellen?
Namn: Ellen Blanck
Typ av utbildning: Teknisk Fysik inriktning Människa-Dator-interaktion, KTH
År inom branschen: 6
Vad gör du på Valtech: Tjänstedesign, konceptutveckling, utvärdering med användare mm
Saker du lärt dig inom tech under april: Hur man kan arbeta med UX-frågor i Lean produktutveckling
Det bästa med ditt senaste projekt: Att jag fick möjlighet att jobba med produktens samtliga kontaktytor mot användaren och därmed påverka den totala användarupplevelsen
Vad kan man lära sig av dig: UX frågor och hur man bär sig åt för att få Intern-IT att virka

 

Vill du också bli en del av Valtech och kanske en del av Alexanders virk- och stickgrupp och andra oväntade upptåg? Gå då in på vår hemsida eller ring Anna Engman på 070-165 34 83.

Valtech

Inspirationslunch – Verktyg för effektiva och inspirerande workshops

Dags för workshop. Men frågan är, blir det i själva verket bara ett lite längre möte, där alla deltagare sitter och diskuterar frågor på agendan? Eller är det de vanliga post it-övningarna som kommer fram?

My-Frankhammar
My Frankhammar är konsult på Valtech och har ett hjärta som klappar för effektiva möten. My har samlat på sig mycket erfarenhet från olika möten och workshops under sina år som konsult och har byggt upp en verktygslåda med många olika verktyg och metoder, bortom post its, för att inspirera till roligare och mer effektiva workshops.

På dagens inspirationslunch berättade My om sina erfarenheter av att använda några av dessa verktyg/metoder och exempel på hur hon använt dem. Stora delar av lunchen genomfördes som en workshop och inte en presentation.

bild 1

My Frankhammar arbetar som UX-strateg med att stötta företag att ta fram helhetskoncept och strategier som bidrar till att skapa användarupplevelser och affärsnytta.
Hon har arbetat med alltifrån affärsutveckling och agila processer, till metodstöd och införande av användarcentrerade metoder i olika organisationer.

Linn Andersson Risdal

Ta chansen att jobba på Valtech och bli utmanad, precis som Olga Stern!

Hej!

NY BILDOlga SternJag heter Olga och jobbar på Valtech. Under det senaste året som jag jobbat här har jag haft möjligheten att arbeta med superbra människor. Förutom att folk är otroligt kompetenta stöttar man alltid varandra vilket gör att jag hela tiden växer och utvecklas.

För mig har det betytt många olika saker men en av dem är att jag nyligen tog chansen att delta i mitt allra första hackathon. Förutom tidsaspekten ville jag även utmana mig själv lite extra genom att delta i hacket ensam – en one woman show.

Under hackathonet var vi 14 team som på 24 timmar skulle bygga något på temat nyheter. Eftersom temat var känt sedan innan hade jag möjlighet att börja klura på bra idéer redan innan hacket ens började. Jag landade till slut i en idé som var tekniskt utmanande samtidigt som den var så pass avgränsad att 24 timmar kändes möjligt, och inte minst – en idé som är förenlig med mina värderingar. Med hjälp av ett antal externa tjänster bearbetade jag ett nyhetsflöde och kunde därefter räkna fram könsfördelningen i det.

För mig var det en väldigt lärorik process, jag fick möjlighet att testa på nya teknologier och att sitta och koda i nästan 15 timmar i sträck var defintivt en ny upplevelse för mig. Som bonus efter hårt arbete så uppskattades min idé av juryn och jag kom på tredje plats!

Jag hoppas att du också vill utmana dig själv och oss på Valtech genom att jobba tillsammans med oss!

//Olga

Vem är Olga?
Namn: Olga Stern
År inom branschen: 6 år
Typ av utbildning: IT och kommunikationslinjen på Stockholms Universitet
Vad gör du på Valtech: Backendutvecklare i .Net-gruppen
Saker du lärt dig inom tech under april: Jag har labbat med en databastjänst som heter Orchestrate, den som är nyfiken är välkommen att lyssna på min dragning på Valtech Tech Day 2014!
Det bästa med ditt senaste projekt: Att det är helt molnbaserat
Vad kan man lära sig av dig: ElasticSearch och ost

 Vill du också bli en del av Valtech och som Olga hitta din nästa utmaning? Besök vår hemsida eller ring Anna Engman på 070-165 34 83!

Valtech

Bli en av oss på Valtech och ta chansen att vara med i Jons Makerspace grupp!

Hej,

Jon Eldeklint rekryteringJag heter Jon och är konsult på Valtech. Jag har alltid tyckt att det är kul att bygga saker. Efter att ha pratat på tok för mycket med mina kollegor om att vi borde gå ihop och bygga något tillsammans så gjorde jag till sist slag i saken och drog ihop en grupp av entusiastiska wanna-be byggare. Tillsammans träffades vi i en av kontorets många lokaler för en ”makerspace light” kväll.

Hittills har det varit fruktansvärt lyckat. Sist vi sågs började vi exempelvis skruva med arduinos och stegmotorer till en installation som vi vill sätta upp på kontoret.

Poängen med våra möten är att dela med oss av saker vi kan, kunskap vi kanske inte använder till vardags inom arbetet. Det är något som jag tror är möjligt genom att stämningen bland oss konsulter verkligen uppmuntrar till idéer och förslag och att vi har fritt med plats här på kontoret att skapa på. Jag välkomnar definitivt alla framtida Valtechare att komma och skapa med oss!

//Jon

Vem är Jon?
Namn: Jon Eldeklint
År inom branschen: cirka 3 år
Typ av utbildning: Informationsteknologi på LiTH
Vad gör du på Valtech: Kodar Java, Groovy, C# och mycket mer
Saker du lärt dig inom tech under april: Massor om länkad data (RDF)
Det bästa med ditt senaste projekt: Omväxligen, det är alltid kul att göra nya saker!
Vad kan man lära sig av dig: Jag kan lära dig att löda och göra otyg med wifi.


Vill du också bli en del av Valtech och kanske en del av Jons Makerspace grupp? Gå då in på vår hemsida 
eller ring Anna Engman på 070 165 3483.

Valtech

Tre grymma dagar i NYC – En sammanfattning av Lean UX NYC

Hamburgare med bacon och cheddarost, träffa branschkollegor från Italien, Venezuela, Schweiz och USA. Diskutera hur jag ska  skapa effektiva MVP’er och snabbt kunna validera mina hypoteser kring min målgrupps behov med personer i samma sits samt bara hänga i New York. Det är grejer det.

leanux2014

Den 10 till 12 hade jag nöjet att få tillbringa tre grymma dagar i New York för att gå på konferensen Lean UX NYC. Om du inte hört talas om konferensen så skriver de på sin site.

”From the UX Designer to the CEO, it takes an entire organization to execute Lean UX successfully. At Lean UX NYC, the world’s leading minds on Lean will teach you how organizations are  incorporating Lean Startup, Lean UX, and Design Thinking to deliver real value for their customers and drive top-line growth.”

Lean UX är en ung konferens, jag tror den har funnits i två eller tre år och Will Evans är grundare av den. Konferensen var i 3 dagar. Första dagen var det presentationer och de två sista var det workshops på förmiddag och eftermiddag med avslutande tal. Eftersom konferensen var i USA så var det ca 60% amerikanare och 40% från resten av världen. Första dagen var det ca 700 deltagare och sedan något mindre de två sista dagarna. Jag tror att Will sa att det var ca 38 länder representerade under de tre dagarna.

Så vilka insikter fick jag under de tre dagarna?

Lean UX är inte bara för startups

Lean UX som begrepp har funnits ett tag nu, The Lean Startup kom ut 2011 och Lean UX släpptes 2013 och det märks att Lean som arbetssätt har mognat. Det har spridit sig från startups till större företag och organisationer och konsulter och byråer. Fler har börjat se nyttan med att snabbt kunna validera sina hypoteser och arbeta utifrån tanken, build, measure, learn.

build measure learn

Flera talare lyfte fram att Lean ryktas skapa tjänster som är ”Ugly, Broken & Cheap”. Vi tror fortfarande på metoden men att den utövats på fel sätt. Bland annat pratade Deidre Kolarick (http://leanuxnyc.co/nyc/is-bad-research-better-than-no-research-doing-leanux-right-dr-deidre-kolarick/) om hur många tagit lätt på design research vilket lett till sämre produkter och falsk validering. Hon ville visa på hur dålig design research är lika med ingen design research och vilka fällor man lätt kan hamna när om man tar genvägar i research fasen.

Det var flera som pratade om egna lyckade erfarenheter och case hur om att använda lean i sitt kontext och tjänster. Jodie Moule gav den bästa presentationen om hur hon tagit fram deras app Cook och använt Lean UX som metod.

Lean UX handlar om team, samarbete och förbättring

Lean UX handlar främst om hur vi ska arbeta för att snabbare kunna skapa bättre (digitala) produkter så mycket av presentationer och workshops handlade om detta.

Det var självklart att det skulle handla om att främja lärande och att experimentera. Fail är det nya svarta, även om det är lätt att säga men svårare att realisera. Vi bör arbeta mer med att experimentera och träna på att misslyckas. Något som görs väldigt sällan.

Det var även mycket snack om samarbete. Hur team ska samarbeta, hur roller ska arbeta enklare med varandra och hur man får produktägare och team att validera hypoteser tidigare och utan att utveckla mjukvara. Det handlade om att fokusera på några få mål, arbeta användarcentrerat och ha tydliga mätpunkter.

Det lyftes också upp värdet av individen i teamet. Hur får man alla att arbeta effektivare? Få alla att tänka smartare kring produktutveckling och få en gemensam bild över problembild, designlösning och arbetssätt. War rooms nämndes och även fast man har stöd av en arbetssätt som Lean så är det inte alltid så jäkla enkelt. Många verkar fortfarande kämpa med att få fram vettiga MVP’er och hur man utgår från hypoteser som vi sedan kan validera.

”MVP. The. Hardest. Part. Ever”

Jag gillar hur Jeff Gothelf ser Lean UX som ett ramverk som går att använda på olika sätt. Lean UX är inte en strikt metod utan ett antal principer som det går att använda sig av. Principer som är beroende av kontext i form av organisation, team, arbetskultur, budget och individer.

Lean UX möjliggör förbättring, innovation & revolution (disruption)

Effekten av att arbeta lean är att utveckla individen, teamet, företaget och leda till att snabbt skapa en produkt eller effekt i en organisation. Förhoppningsvis innovativa och revolutionerade produkter! Alistair Croll pratade om hur vi behöver tänka kring lokal och global effektivitet och hur små utvecklingscykler ändra på allt. Hans enkla jämförelse med optimering, innovativa och revolutionerande produkter var en aha-upplevelse för mig. Jag gillar när man med en enkel bild kan beskriva komplexa idéer.

Olika typer av innovation

Trevor Owens presentation kring Lean startups i stora företag var även inspirerande. Han visar på skillnader mellan entreprenörer och anställda och hur de ha olika drivkrafter. Detta leder till att det är svårt att skapa innovation inom företag. Han berättade att företag som Microsoft, Nike och Disney använder Innovation Colony för att skapa startups inom företag.

Sammanfattning

Jag fick mig en rejäl dos av input under de tre dagarna. Mycket inspiration kring hur jag ska arbeta med Lean i mina kommande projekt. Det jag var mest intresserad av, skapandet av experiment och validering har jag lärt mig massor, både teoretiskt och praktiskt. Jag uppskattar verkligen att få testa på i workshops och diskutera med andra. Jag har fått ett större förtroende att testa olika aspekter av Lean där jag kommer att arbeta i framtiden.

Jag tycker att tre dagar är en bra längd på en konferens. Jag har lite svårt att sitta hela dagar och lyssna på presentationer så jag uppskattade att det var två dagar med workshops. Det var övervägande bra presentationer och workshops. Några presentationer var från sponsorer vilket mest ”sålde” något. Det var allt från enkla how-to till filosofiska resonemang, design thinking och design research. Konferensen är även billig om du bokar early bird i jämförelse med andra konferenser.

Det som var mindre bra var att det var för mycket input. Första dagen var det 19 presentationer, helt klart för många på en och samma dag. Det hade varit trevligt med mer tid för reflektion och diskussion, något som det inte fanns tid eller ork till. Som Will sa, ”I like to stuff your brain”. Sedan var väl lunchen sådär, en macka, lite chips, en dricka och kaka. Vi vikingar behöver riktig mat för att överleva och fungera. Sist så saknade jag lite kvällsaktiviteter, det var en fest ordnad av en av sponsorerna en kväll men det kunde helt klart kunnat vara mer av det.

Bilder från konferensen

Videos från konferensen

Mer slides från konferensen

jens

Ha det gött!

Jens Wedin