måndag 22 mars 2010

Topp 5 podcasts för inspiration!

De senaste månaderna har jag varit en storkonsument av podcasts. Framförallt har det varit Hanselminutes, .Net Rocks, Herding code och MSDN Radio. Med tanke på all den tid jag lägger på pendling och renovering är just podcasts i hörlurarna ett fantastiskt medium.

Det finns såklart avsnitt som är sådär. Avsnitt som handlar om ämnen långt utanför mitt intresse och utanför vad jag riktigt begriper. Men så ibland dyker de upp - guldkornen. Avsnitt jag kan lyssna på igen, avsnitt som verkligen väcker inspirationen och öppnar ögonen.

Jag tror mycket på att vi utvecklare kan tjäna mycket på att dela med oss av det vi kan till varandra. På det sättet kan vi alla växa och göra branschen bättre. Mitt bidrag här och nu är att dela med mig av några riktiga ess bland podcast-avsnitt.

Roy har blivit en av mina hjältar. Han brinner verkligen för unit testing och kan, till skillnad från andra jag hört, verkligen förklara det på en bra och detaljerad nivå. Jag hade dessutom nöjet att se Roy på SDC 2010 där han drog in en humoristisk växel som podcast avsnittet inte visade. Han har vanan att sjunga en liten sång efter sina föredrag där han satt ny text till kända låtar. Vad sägs om "Please don't code tonight" till tonerna av Guns 'n roses "Don't cry"? Tydligen fanns det en utvecklare i hans team med vissa brister... kanske finns den på youtube någonstans...
Men det här avsnittet av Hanselminutes är ett måste för alla oss utvecklare som inte riktigt har kommit igång med unit testing. Kanske också för de som har kommit igång, men som ändå inte har fattat...

Imagine the person reading your tests is a serial killer. You don't want to piss him off.
- Roy Osherove, SDC 2010
Detta är en paneldebatt från konferensen Devlink, där panelen diskuterar hur svår och komplex verkligheten är för oss utvecklare. Jag fastnade mycket diskussionen kring hur vi utvecklare ställs inför högt ställda krav på att förstå och anamma ny teknik i en rasande fart. Det här avsnittet har diskuterats en hel del efteråt i andra avsnitt och är definitivt ett man inte ska missa!

Alltså, Juval... det är en snubbe med rejäl hjärnkapacitet! Här börjar de i en diskussion om Juvals tes "Every class should be a WCF service". Bara att reda ut vad han menar med det gör det här avsnittet riktigt intressant. Sen hjälper det också att intervjuarna Carl och Richard ifrågasätter Juval rätt spydigt... På det hela taget ett mycket bra avsnitt om hur vi utvecklare lägger så mycket tid på "plumbing" och så lite på verklig affärsnytta.

Bara att Uncle Bob är med borgar för bra innehåll, men här tar han upp sina SOLID principles och förklarar dem på ett bra sätt. Om du inte vet vad SOLID är - lyssna! Om du vet vad de är - lyssna ändå, Uncle Bob pratar om dem på ett så självklart vis att du kanske förstår ännu bättre. Avsnittet satte igång en rätt hetsig debatt mellan Bob och snubbarna bakom Stack overflow. Därav blev det en uppföljare med Uncle Bob i avsnitt 150.

Titeln lockade inte först, men det här handlar om lean inom systemutveckling. Nate tillhandahåller en produkt som stödjer "Kanban boards" som en tjänst på Internet. Det intressanta är kanske inte hans produkt utan hela diskussionen kring lean och hur det förhåller sig till agile och scrum. Jag hade inte riktigt koll på begreppen "lean" och "kanban" före jag lyssnade, men nu fattar jag det hela lite bättre. Det gör du också om du offrar 45 minuter!


Det var de fem jag tänkte tipsa om nu. Men det finns många fler som är väl värda sin knappa timma. 

Over and out!

tisdag 2 mars 2010

Prestationsångest och vikten av engagerade utvecklare

WCF, Entity Framwork, MEF, Prism, AJAX, REST, WPF, Silverlight, oData, RIA Services....

Visst har du använt alla teknikerna ovan?
Okej, inte det. Men du VET vad alla går ut på eller?
Nähä! Varför inte då? Det vet ju alla .NET utvecklare, eller?

Nä. De allra flesta av oss har inte koll på alla nyheter som dyker upp inom .NET området. Det är helt enkelt en massiv flod av nya tekniker som sköljer mot oss. Lyssnar man på podcasts eller läser tidningar låter det som om ALLA är helt uppe i senaste 4.0 ramverket och allt vad det innebär, fastän det egentligen inte ens har släppts. Det skapar en hel del prestationsångest för oss vanliga dödliga utvecklare.

Vilket ansvar har jag egentligen för att ta till mig all ny teknik? Om jag jobbar på ett företag som levererar mjukvara vars säljargument är "alltid först med det senaste inom teknik" är det säkerligen en företagspolicy. Det kommer då vara en organisation som ser det som helt normalt att hela tiden hänga med. Men jag tvivlar på att de allra flesta arbetar på det företaget. Många arbetar i organisationer där IT och mjukvara bara är ett verktyg för att hjälpa företaget med dess egentliga brödföda. Hade de kunnat driva verksamheten utan IT hade det varit det bästa, men av många skäl måste de ha IT system. Om man, som jag, sitter på just ett sådant företag är ansvaret mycket otydligare. Ansvaret ligger då på oss utvecklare att hela tiden hänga med i utvecklingen.

Men det finns ju egentligen inget självändamål med att anamma nya tekniker bara för att de är nya. Men om vi inte sätter oss in i dem och förstår dem ser vi inte heller den potential som de kan ge. Vi kanske levererar lösningar som fungerar, de kanske till och med fungerar bra. Men de kunde varit enklare att underhålla, enklare att förändra eller mer användarvänliga om vi valt en ny modernare teknik. Om vi drar på oss skygglappar och fortsätter oförändrat blir vår teknik snart föråldrad och vi målar hjälplöst in oss i ett hörn.

Så min fundering är: Inser dessa företag vilket ansvar som ligger på oss utvecklare? Är de beredda att betala för den tid det tar att bara utvärdera och hänga med i det ständigt pulserande flödet? Jag tror att svaret är nej på båda frågorna.

Enligt min erfarenhet kommer ansvaret falla på en eller ett par tongivande utvecklare som på fritiden, av rent intresse, läser om eller söker information om nya tekniker. Det handlar om eldsjälar som av ren lust slänger ihop en WPF applikation bara för att se hur det funkar. Eller om den som plöjer böcker om WCF istället för romaner innan nattlampan släcks. Jag tror att de flesta små utvecklingsavdelningar är beroende av dessa få personer. Och inte nog med det, de är beroende av att dessa få är villiga att sprida sin entusiasm och nyfikenhet vidare som kunskap till de övriga på avdelningen. Är det rimligt att ställa sådana krav på anställda? Troligen inte. Men dessa personer gör det ändå, för att det är roligt helt enkelt!

Tidigare var jag absolut inte den personen. Jag var nöjd och glad med att hacka på i det som fanns och hade tillräcklig utmaning med att förstå det vi sysslade med just då. Men jag har förändrats. Jag har börjat lyssna på podcasts eller läsa böcker på väg till jobbet. Att veta lite mer om det som finns omkring mig är riktigt spännande och sätter många saker i nya perspektiv. Kanske är jag på väg att bli en av "dem", kanske är det bara en fas som "kunskapssvamp"...

Men att bli varse om vad som finns är egentligen det som leder till den största prestationsångesten. Att veta om vad som finns och hur kort man kommit i jämförelse till allt det andra är värre än att bara hänga med i det man just nu gör. Men glöm det! Det är okej att vara den som "bara" hänger med, det passar inte alla att vara eldsjäl eller evangelist. Vi behöver alla utvecklare! Vi behöver de som är mer fokuserade på verksamhet, är specialister på våra befintliga system och de som "bara" hänger med. Tro mig, det är svårt nog ibland.

Så med det sagt - Hatten av till alla er evangelister, eldsjälar och "überstormmeisters" där ute och en
personlig hatt till Olausson & Olsson, två exempel på kunskapsspridare jag mött i min karriär.
Ni regerar!

Over and out!

Dagens kodarmusik: Jochen Miller - Lost Connection

Ps. Jag skulle gärna vilja veta hur andra företag gör, vad driver er teknikutveckling inom systemutvecklingsområdet? Ds.