David skriver om livet som egenföretagare, goda vanor, mac, ruby on rails, smarta lösningar och andra sporadiskt påkomna saker
torsdag 31 januari 2013
Vad är poängen?
För tydlighetens skull har vi alltså inte hoppat in i någon projektmodell såsom Scrum eller Kanban rakt av, utan fokuserar helt enkelt på att dela in arbetet i veckobaserade mini-sprintar där teamet tillsammans diskuterar igenom vad som ska göras, sätter poäng på de olika delarna och gemensamt ger ett löfte för vad som bör åstadkommas under den sagda tiden.
Att sätta poäng istället för att uppskatta tid verkade lite märkligt initialt. Vi satte 1 poäng = 3 timmar bara för att ha någon gemensam referenspunkt att utgå ifrån, men tanken är egentligen att komplexiteten på en uppgift ska ge poängen, inte hur lång tid den förväntas ta. Den stora fördelen som jag ser det med poängen är att kunna se att teamet tar sig framåt i förväntat tempo varje vecka. Att mäta hur många timmar som levererats eller hur beläggningsgraden ser ut är ju ganska irrelevant om det är produktivitet vi är ute efter. Vem som helst kan leverera 40 h/vecka, det är bara att låta tiden gå. Att rapportera in många genomförda poäng kräver däremot en insats och att det man gör dessutom har passerat någon som testar grejerna. Om teamet normalt sett brukar leverera 10 poäng på en sprint och vi plötsligt ser att det bara levereras 5 poäng under samma tid har vi ett problem. Hade vi bara sett till arbetade timmar hade kanske inte problemet upptäckts över huvud taget.
Vi började med ett mål att kunna leverera 15 poäng per vecka, och efter första avstämningen visade det sig att vi hann med ungefär 12 av de 15 poängen. Den största anledningen till att vi inte hann med allt var att ett par delar var för luddigt definierade och byggde på tycke och smak, vilket i sin tur gjorde att det blev svårt att passera testerna och klurigt för utvecklarna att veta exakt vad de skulle göra. Det försökte vi förbättra direkt till nästa sprint genom att dels ha mindre ärenden, och dels använda oss av skisser i de fall det fanns utrymme för tolkningar kring hur något skulle implementeras.
En annan svår del är at vi inte är vana vid att lägga så mycket tid på förarbetet. Redan efter 45 minuters sprintplanering börjar folk vrida på sig och undra när det är klart. Samtidigt känns det som planeringen tillsammans med testerna är de viktigaste delarna i sprinten. Slarvar vi där blir det inte bra till slut. Det är ungefär samma dilemma som jag har med att skriva offerter – ju mer tid jag lägger på dem, desto bättre blir de och desto lättare blir det att få kunden och teamet att förstå vad som ska göras. Men att lägga massor av tid på en offert som kanske aldrig blir genomförd är inte bra – och jag behövs ofta på andra platser i organisationen.
Det gick hur som helst ganska lätt att bli synkade i poänguppskattningarna. Alla är med och poänguppskattar, både projektledare och utvecklare. De som uppskattar lägst och de som uppskattar högst får förklara hur de tänker, och sedan enas gänget om en gemensam poäng. Det har hittills inte varit några större problem, och pricksäkerheten har varit förvånansvärt hög jämfört med hur det har sett ut i några av våra andra projekt.
Apropå andra projekt är det inte helt enkelt att sälja in agil utveckling mot kund. I alla fall inte att förklara upplägget och skriva offerter där vi kanske inte vet exakt vad som ska levereras. Det är sådant som gör kunden nervös. "Allt det där agila låter ju bra och så, men jag vill ha ett fastpris och veta vad jag får".
Parallellt med det här håller jag på att sätta mig in i de olika agila projektmodellerna lite mer på djupet. Boktips tas gärna emot.
tisdag 3 november 2009
24hbc: Färdiga i tid
Vi hade planerat väl inför vårt tjugofyratimmarspass förra veckan. Mikrobutik.se blev färdig i tid inklusive i stort sett alla funktioner vi hade pratat om i förväg, och det hela blev till och med hyfsat snyggt för att vara ett snabbygge.
Det sköna med att jobba med Jonas är att vi tänker likadant. I stort sett alla saker vi ville införa var vi helt överens om, och ofta vet man inte vem av oss som har skrivit vilken del av koden eftersom vi jobbar på samma sätt. Det är extra viktigt när man jobbar under tidspress. För de programmerare som vill ha lite intressant läsning av vad vi spenderade våra 24 timmar på så kan ni få se vår Git-logg.
Omröstningen om vem som var bäst pågår för fullt. Du får gärna rösta på Mikrobutik.se om du tycker att vi gjorde något bra. Vi kommer att prata mer om 24 hour business camp i Webbradion på torsdag.
Fler bilder hittar du på Flickr
Idag har jag förresten varit supereffektiv på jobbet, och jag har till och med hunnit med att vaccinera mig mot influensan. Praktikant-Kevin gör sin sista vecka hos oss och han har verkligen blivit varm i kläderna. Kul att han kommer tillbaka under våren. I morgon blir det däckbyte och lunch med en trevlig kund.
onsdag 9 september 2009
Bloggarens Wikipedia
Om du är ute efter att hitta åsikter och tankar om en viss person, sak eller händelse kan nylanserade Blogipedia kanske bli något för dig. Det är helt enkelt en kombinerad wiki-sida och en sökmotor som scannar av världens bloggar i jakt på fakta om olika saker. Man kan påverka vad som dyker upp på Blogipedia genom att skriva saker i sin blogg, exempelvis:
- David Svensson är en webbutvecklare som programmerar i Ruby on Rails.
- Standout solutions är en webbyrå i Växjö.
- David Svensson är snygg, smart och ödmjuk.
Nästa gång Blogipedia besöker din sida kom den att hitta texterna och uppdatera sitt register. Nu är systemet smartare uppbyggt än att bara samla ihop folks åsikter. Besökarna på sidan kan nämligen tagga texterna som fakta eller åsikter. Efter ett tag kommer sidan att ge en rätt bra överblick över vad det du söker efter står för, eller i varje fall vad folk tycker om det.
Blogipedias stora nackdel är när flera saker har samma namn. Det finns fler som heter David Svensson, och saker som har skrivits om dessa dyker ju upp på "min" sida också. Det innebär att lätt förvirring kan uppstå, men prova med lite mer unika namn eller platser så ska du få se att du kan hitta en hel del intressant som inte dyker upp på vanliga Wikipedia.
fredag 14 augusti 2009
24 hour business camp - andra chansen
Jag intervjuade Ted Valentin häromdagen för Webbradions räkning (intervjun kommer på tisdag nästa vecka). Ted är en trevlig kille med många järn i elden och vi pratade en del om 24 hour business camp som gick av stapeln i januari. Det visar sig att det är dags för en uppföljare till detta fantastiska arrangemang, och vem som helst har möjlighet att anmäla sig. Datum: 28-30 oktober 2009 och platsen är det japanska spahotellet Yasuragi.
Totalt finns det 120 platser, och redan nu är det 35 anmälningar gjorda. Så om du tror att du fixar att utveckla en webbapplikation på 24 timmar är det dags att anmäla sig nu. Missa inte chansen att få glida omkring i blå morgonrock tillsammans med några av Sveriges mest drivna webbentreprenörer!
Själv har jag redan anmält ett lag med mig, Jonas Arnklint, Jonathan Sulo och eventuellt någon till. Det kommer att bli riktigt roligt den här gången också, och eftersom alla vi tre har erfarenhet från förra omgången kommer det att gå fantastiskt bra också. :)
Ted släppte nyheten via sin blogg alldeles nyss. Så du har en ganska god chans att komma med om du anmäler dig idag.
tisdag 4 augusti 2009
Rensa Capistrano-releaser med automatik
Om du använder Capistrano för att driftsätta din Rails-applikation finns det en risk att du får fullt på disken efter ett tag. Capistrano lämnar nämligen en kopia av varje version av ditt program när du kör en ny deploy.
Lösningen är enkel, antingen kör du "cap deploy:cleanup" manuellt eller så lägger du till after "deploy", "deploy:cleanup" i din deploy.rb. Du kan också bestämma hur många versioner som ska sparas på servern. Standard är fem. Använd bara set :keep_releases, 2 för att spara de två senaste versionerna på servern.
Jag såg förresten att databashanteraren Sequel Pro släpptes i ny version nu som tillåter ssh-tunnling. Mycket användbart.
fredag 30 januari 2009
Vissa problem ska man skjuta på framtiden
Skalbarhet. Mina kunder verkar ha fått dille på det ordet. Antagligen har det funnits flera artiklar om hur svårt det har varit och hur mycket pengar det har kostat med en sida som inte pallade trycket från massor av besökare. Varför skulle annars tre helt olika kunder komma och ställa krav på att deras webbplats som inte är byggd än ska vara skalbar för att klara av mer än 100 000 besök per månad?
Men det är sällan problemet blir att det kommer för många besökare till sidan. Problemet är att få dit dem.
Så om du nu ska bygga en webbplats: oroa dig inte för vad som händer om du får massor av besökare. Det löser du då. Fundera istället på hur du ska få besökare till webbplatsen. Jag har byggt superskalbara system åt kunder som insisterar på det, och sedan sett att de har omkring 1000 besökare i månaden. Det ska till en extremt tungrodd sida för att tusen besökare ska knäcka webbservern.
Se på Jonas som driver Bloggy.se exempelvis. Mikrobloggarna har fått mycket uppmärksamhet i media de senaste dagarna, vilket har lett till en del driftstörningar som Jonas fick lösa on the fly eftersom Bloggy inte riktigt var byggt för att hantera den anstormning av nya användare som uppstod. Men då är det roligt att lösa problemen. Då finns det resurser och motivation.
Det är likadant med diskussionsforum. Jag har haft många kunder som avstått att lägga in diskussionsmöjligheter eller kommentarer på sina sidor för att de är rädda att folk ska säga något elakt eller dumt. Det vore väl alldeles lysande om någon tycker tvärt emot vad du tycker eller är lite tykig? Då blir det ju diskussion.
Ibland är folk rädda för helt fel saker.
lördag 17 januari 2009
Nere.nu - mitt bidrag till 24 hour business camp
För er som är nyfikna på vad jag kommer att bygga under 24 hour business camp finns nu ett förklarande blogginlägg på den officiella bloggen.
I korta ordalag handlar det om en tjänst som ska hjälpa dig att få support även när en webbtjänst, såsom internetbanken eller Blogger, inte går att komma åt. Kommentarer och förslag på genomförandet tas tacksamt emot.
onsdag 14 januari 2009
Bloggy öppnar idag
Idag har den svenska mikrobloggtjänsten Bloggy premiär. Den har funnits ett tag, men det är först nu den öppnar officiellt.
Mikrobloggar är ett fenomen som är ofantligt stort i USA, där jätten Twitter har den största delen av marknaden. President Obama använd Twitter flitigt i sin valkampanj och många gånger kommer nyheter upp snabbare på mikrobloggarna än på de stora nyhetssidorna.
Själv föredrar jag Bloggy framför Twitter, dels för att Bloggy är på svenska, men också för att det är lättare att förstå upplägget där. Du får ofta glada kommentarer från personer du aldrig träffat, men som råkar tycka likadant som du i någon fråga.
Medan en vanlig blogg ofta består av lite längre inlägg är mikroblogg-inläggen ofta uppbyggda av endast en mening eller två. Det behöver inte vara så avancerat, utan mest ett sätt att meddela vännerna vad som är på gång. Till höger i den här bloggen hittar du de tre senaste anteckningarna från min mikroblogg.
Mer läsning:
- Nikke Index: Bloggy öppnar för alla
- Pressreleasen på Newsdesk
Vänner på Bloggy:
- Stefan Lindbloms mikroblogg
- Martin X Brantgärdes mikroblogg
måndag 12 januari 2009
6 ord: uppvärmning inför 24hbc
I söndags genomförde jag ett miniprojekt som sammanlagt tog 4 timmars effektiv programmering. Jag ville testa mig själv inför 24 hour business camp och se om jag skulle springa på några problem som jag inte tänkt på tidigare.
Resultatet blev 6 ord - korta men kraftfulla berättelser. En fullt fungerande webbplats som kanske skulle behöva några timmars arbete till för att bli riktigt bra.
Några saker jag lärde mig:
- Nätåtkomst är nödvändig. Visst, jag utvecklar mot en lokal server. Men känslan när en sajt kommer ut på nätet får en att öka farten ytterligare. Dessutom finns mycket dokumentation bara tillgänglig online.
- Man fastnar lätt på designen. Att flytta pixlar några millimeter hit eller dit är onödig i ett sån't här läge där tiden är begränsad. Visst är designen viktig, men det är bättre att finjustera den mot slutet om det finns tid kvar.
- Det underlättar att ha utvecklingsmiljön färdig. Se till att allt du vet att du kommer att behöva är färdiginstallerat på datorn innan du åker till 24hbc. Det inkluderar även servern. Att lägga 1-2 timmar på att sätta upp sin miljö är onödigt när det är ont om tid. Mattias Järnhall vet hur det kan gå om man inte har allt färdigt.
- Ha papper och penna. Att skissa på papper är överlägset när man ska jobba med små snabba projekt. Jag hade inget framme så jag fick gå och hämta efter ett tag.
- Stäng av MSN/ICQ och annat som kan distrahera dig.
- Fokusera. Du kommer att komma på en massa bra och mindre bra idéer under utvecklingen. Gör det du tänkte från början klart innan du sätter igång med nya funktioner, annars hinner du aldrig klart. Jag har tio idéer till sidan nedskrivna på papper, hade jag försökt göra klart dem hade jag antagligen inte fått upp sidan än.
- Ta pauser regelbundet. Efter en dryg halvtimme framför skärmen tappar åtminstone jag fokus.
- Ruby on Rails är en fantastiskt snabb plattform att utveckla på. Det finns dessutom massor av kodexempel att tillgå på nätet.
- Man blir slarvig när man har ont om tid. Normalt sett testar jag det mesta av min kod, men nu kodade jag först för att skriva testerna sedan. De testerna blir antagligen aldrig skrivna förrän något kraschar.
torsdag 18 december 2008
Entreprenörsfika och Bloggy
måndag 10 november 2008
iPhone, Spotify och 24timmarsutmaning
Nu har jag kört iPhone sedan i fredags. Den fick ersätta min Sony Ericsson w890i och Tele2 åkte ut till förmån för Telia. Prismässigt blev det ingen större skillnad mot Tele2 om man räknar in det mobila bredbandet. Jag gillar telefonen skarpt, och det känns som om jag kan åka iväg en helg utan att ha datorn med mig och ändå kunna lösa akuta situationer som uppstår.
Några kommentarer:
- AppStore är fantastisk. På ett par sekunder har jag installerat en ny applikation och många är helt gratis. Exempelvis kör jag en VNC-klient och en SSH-klient på min iPhone.
- Skärmen blir kladdig fort
- Positioneringen är snabb och tillräckligt pricksäker för mina behov.
- Kameran funkar bra i dagsljus, men utan blixt är den rätt värdelös inomhus om folk inte sitter helt still.
- Uppkopplingen är kvick och det är enkelt att ansluta till trådlösa nät
- Batteritiden är okej, varken bra eller dålig.
- Skärmen är fantastiskt skarp.
- iPhone har inte stöd för MMS och att använda telefonen som 3G-modem utan att hacka den.
- Det funkar faktiskt bra att surfa och skicka mail . Det har varit bökigt på de flesta andra telefoner jag har provat.
måndag 3 november 2008
Vilkentid.se omnämnd i Metro
Tack vare ett tips från människan Gabriel fick jag veta att webbtjänsten Vilkentid.se omnämndes i tidningen Metro idag.
Så här står det:
Hitta en tid att träffas. Det finns många olika mötestidsbokningssajter på nätet. Svenska sajten Vilkentid, http://vilkentid.se är föredömlig ...Visserligen omnämns en konkurrent till Vilkentid i samma artikel, men det är ändå roligt att bli uppmärksammad. Vi får hoppas att läsarna totalt ignorerar den andra sajten och hoppar in hos oss istället. ... och för er som inte fattar kopplingen till Hipp Hipp ovan finns det en förklarande video
lördag 27 september 2008
Vilkentid.se - hjälp till att betatesta
Varje gång jag ska boka ett möte med flera personer stör jag mig på hur krångligt det är att hitta en tid som passar alla. Ibland handlar det om flera dagars mailväxling fram och tillbaka innan man kommer fram till något som passar. Ju fler som är inblandade, desto krångligare.
Därför knåpade jag ihop en mötesbokartjänst som är tänkt att lösa problemen med mötesbokning. Att boka ett möte med många ska gå snabbt och enkelt. Nu är den såpass klar att jag behöver hjälp med att testa den.
Så här är det tänkt att fungera.
1. Du talar om när mötet ska vara
2. Du bestämmer några tider som passar dig
3. Du bjuder in folk till mötet
4. Folk svarar
5. Du får en sammanställning över vilken tid som passar bäst
Så nästa gång du ska boka ett möte, prova vilkentid.se.
Buggrapporter och förbättringsförslag kan du skicka till david snabel-a standout punkt se
fredag 26 september 2008
Hoptoad - äter upp dina småkryp
Jag blev precis uppringd av en kund som ville diskutera statistikvisning tio i sju på morgonen. Så när jag ändå är vaken är det väl lika bra att sätta ihop ett blogginlägg, antar jag.
Om man utvecklar en sida i Ruby on Rails är det ganska enkelt att leta fel. Det finns utmärkta plugins såsom Exception Notifier som skickar dig ett mail varje gång något går snett.
Problemet är bara att det kan bli många mail. En enkel ändring på fredagkvällen kan innebära att du har ett par tusen mail i inkorgen på måndagmorgonen. Och då snackar vi inte beundrarpost. Lösningen på detta heter Hoptoad, en kostnadsfri webbtjänst som håller reda på felen som uppstår i din applikation. Installationen går på någon minut, och gränssnittet är intuitivt. Jag tycker att man får en bra överblick över vad som går snett, och framför allt slipper man stora mängder mail när en bugg råkar smyga sig in i koden.
Sedan kan man förstås fundera på om man ska lita på en tredjepartstjänst. Grabbarna som driver Hoptoad ligger bakom flera välkända projekt, och om man inte längre vill använda sig av tjänsten är det ju en barnlek att avinstallera. Så för min del ser jag inga större problem med det.
onsdag 7 maj 2008
Vad hände med Klottr?

En del av er har skickat e-post eller kommentarer på vad som händer med Klottr, projektet som jag startade för ett år sedan med ambitionen att släppa det under hösten 2007. Det blev inte riktigt så. Tjänsten fungerar visserligen hyfsat bra på min utvecklingsserver, men jag har inte haft någon lust att slutföra det hela.
Det beror egentligen på två saker. För det första fick jag in vansinnigt mycket jobb under hösten 2007, och betalande kunder kommer alltid först. För det andra fick jag möjligheten att samarbeta med ett av Sveriges mer välkända företag som lät mig utveckla en tjänst där jag både fick betalt för utvecklingsarbetet och en viss summa per såld produkt varje år. Det var ju precis en sådan inkomstkälla som klottr är tänkt att bli, men i det här fallet skötte min samarbetspartner även all införsäljning. Det verkade helt enkelt dumt att inte hoppa på den här dealen. Hittills har det inbringat strax under 100 000 kronor, vilket får ses som helt godkänt.
Men klottr kommer att komma igång, augusti är det nya riktmärket. Jag har dessutom hittat en kund som behöver just en hostad lösning för sitt forum, så nu har jag en riktigt anledning att ta fram en slutlig produkt.
79 personer har för övrigt anmält sitt intresse på www.klottr.se.
måndag 28 april 2008
En för alla, alla för ...
När jag klickar på kontohistoriken får jag upp en liten navigeringslist längst ned där jag kan gå tillbaka i tiden. Längst till höger finns en länk som först verkar vara ganska behändig. Den har texten "Visa alla", vilket gör att man tror att den visa alla kontohändelser. Det är dock en lömsk knapp.

Ponera att jag klickar på länken och en lång rad med transaktioner dyker upp. Om jag då hade varit lite ouppmärksam hade jag kunnat skriva ut den där listan i tron att det verkligen var alla transaktioner på kontot. Men när vi tittar längst ned på navigeringen ser vi att en länk med texten "Hämta fler" har dykt upp.

Vän av ordning undrar naturligtvis vems dessa transaktioner är, för jag har ju redan hämtat alla mina transaktioner. Eller är det måhända så att "alla" inte alls betyder "alla" utan "bara en del". Mycket riktigt visades inte alla mina transaktioner när jag klickade på "visa alla".
Nästa gång jag tar lån av Swedbank ska jag fråga om de vill ha tillbaka alla pengarna.
onsdag 23 april 2008
Använda Amazon S3 för filuppladdning i Ruby on Rails
Häpp! Jag har lekt lite och gjort min första plugin för Ruby on Rails. Den gör det enkelt att ladda upp filer och lagra dem hos Amazon S3. Fördelen med att lagra filer där är att lagringsutrymmet hos Amazon S3 är billigt och de har kapacitet att visa dina filer miljontals gånger. Du betalar dessutom enbart för utrymmet du använder. Många använder det som backup för att lagra viktiga saker om deras egen hårddisk skulle gå sönder.
Så låt oss skapa en enkel applikation där du lagra dina hemliga filer. Jag förutsätter nu att du har installerat Ruby on Rails, minst version 2.0.2.
Börja med att installera Amazons rubygem för att hantera s3-resurser
sudo gem install aws-s3Sedan skapar vi vår applikation:
rails backupNästa steg är att ladda hem min fina plugin. Det gör du på github.com/standout/s3storage/tarball/master. Packa upp filen och placera den i backup/vendor/plugins/s3storage/. Om du kör senaste versionen av rails kan du installera den direkt med
script/plugin install git://github.com/standout/s3storage.gitVi ska dessutom skapa vår modell för filer som ska backas upp. Vi kallar den för Document
script/generate scaffold Document title:string content_type:string original_filename:stringMigrera databasen:
rake db:migrateNu kör vi igång vår applikation med
script/serverTag bort filen public/index.html och öppna filen config/routes.rb och ändra rad 30 till
map.root :controller => "documents"
Nu går vi till views/documents/new.html.erb och ändrar enligt följande:

Det viktiga är
:html => { :multipart => true } som gör att webbläsaren förstår att det handlar om filuppladdning, samt <%= f.file_field :file %< där 'file' är det magiska ordet som gör att vår plugin förstår att filen ska sparas hos Amazon S3.Nästa steg är att fixa till listningen av filer. Det gör vi i app/views/documents/index.html.erb
Vi ändrar helt enkelt på rad 14 till
<td><%= link_to h(document.original_filename), s3_path %></td> för att skapa en länk till vårt uppladdade dokument. s3_path är adressen till filen på Amazon S3.
Till sist gör vi det viktigaste av allt, bestämmer var filerna ska lagras. Vi öppnar vår modell (app/models/document.rb) och lägger till följande;

Givetvis får du byta ut allt som börjar med YOUR_ ... mot dina egna inloggningsuppgifter hos Amazon S3. Bucket-namnet bestämmer du själv, men tänk på att det ska vara helt unikt, precis som ett domännamn. Jag brukar förresten välja domännamn som bucketnames just för att de är unika. Du behöver inte skapa din bucket från början, det gör scriptet åt dig om du bara säger vad den ska heta.
Access_key och Secret får du direkt från aws.amazon.com. Klicka på Access Identifiers under den gula knappen "Web Services Account" till höger.

Nu kan vi titta på http://127.0.0.1:3000/ och se hur fint vår applikation fungerar.

Funkar det för dig också?
söndag 2 mars 2008
Twiddla: samarbeta med design online

Ibland är möten över nätet effektiva och roliga på samma gång. Jag, Emil och Stefan hade ett möte över nätet för något år sedan där vi använde SubEthaEdit för att skriva protokoll samtidigt som vi kommunicerade över Skype. Resultatet blev helt fantastiskt bra, även om det tramsades en del bara för att vi kunde redigera varandras texter.
Nu har jag sprungit på Twiddla, en snygg och enkel webbaserad tjänst där du kan rita, lägga in bilder och skriva texter direkt på nätet. Andra som är anslutna kan samarbeta med dig i realtid. Jag kan tänka mig att det här passar en hel del av oss som arbetar med att designa webbplatser. Det verkar inte kosta ett öre heller, så det är bara att prova.
Tanken är naturligtvis inte att det ska ersätta Photoshop eller liknande program, utan att du ska kunna få en bild över vad ni är ute efter, eller möjligtvis föreslå ändringar i en design.