Test test og atter test

Jeg er nu endelig kommet på den rette vej med TDD. Jeg må jo indrømme, at TDD for mig indtil nu har været “kode først, tests bagefter”, men jeg så forleden lige pludselig “lyset”. Det har også kun taget 2¾ år med Rails at nå dertil… ;-)

Hvad gjorde så udslaget for mig? Jo det var faktisk, da jeg læste denne blog http://code.isdangero.us/posts/My-test-driven-Ruby-setup

Jeg kunne godt lide syntaksen i Shoulda. Men det var især Machinist og den lette måde at lave test-data på, som gav mig en “aha-oplevelse”. Fixtures er besværlige at lave, og det er nemt at knække eksisterende tests, når man tilføjer flere tests. Machinist ændrer på alt det, og det gik pludselig op for mig, at det netop var dét, der var bremsen for min omvenden.

Men for pokker hvor er der pludselig mange forskellige frameworks/ libraries til TDD/BDD. Det er jo nærmest en jungle. Det er sjovt, at hvor de fleste bare accepterer ActiveRecord og de øvrige konventioner i Rails, så bruger rigtig mange tilsyneladende alt muligt andet end Rails’ egent test-suite.

Hvilken kombi bruger i og hvorfor? Hvor nemt har i ved at teste først og kode bagefter? Jeg er gammel i gårde, og jeg må indrømme, at det er en af de steder, hvor jeg har svært ved at ændre gamle vaner.

- Carsten

Udgivet i Blandet | Tagget , , , , | Skriv en kommentar

Conversations with an oak tree

For en uge siden skrev jeg om bogen Samtaler med et træ. Nu har jeg så været heldig at blive en af test-læserne på den engelske udgave “Conversations with an oak tree”.

Bogen er ifølge hjemmesiden blevet skrevet op til en 2010 udgave (den er trods alt også 13 år gammel), og planen er, at den skal udgives på et amerikansk forlag. Jeg er så småt begyndt at læse den (den nyindkøbte danske udgave har jeg så i mellemtiden lånt ud på mit arbejde), og minderne fra den gang, jeg læste den for så mange år siden, vender tilbage.

Jeg er spændt på at komme videre med den og finde ud af, hvor meget der var nødvendigt at skrive om pga. 13 års teknologisk udvikling i vores samfund – faktisk har jeg på fornemmelsen, at det ikke er særlig meget. :-)

Udgivet i bøger | Tagget , , | Skriv en kommentar

Samtaler med et træ

“Informationssamfundet er et sted, hvor alle træer vender på hovedet.”

Samtaler med et træ

Samtaler med et træ

Sådan begynder dialogen i bogen “Samtaler med et træ”, skrevet af Carsten Graff. Bogen er bestemt ikke ny – jeg læste den, da den udkom i 1996. Men det er til dato den bog, der har haft den grundigste inflydelse på mit syn på IT. Det er interessant at se, at hvor vi med bla. Etisk Råd har alverdens restriktioner omkring bioteknologi, så tager vi nærmest ukritisk al ny informationsteknologi til os. “Samtaler med et træ” stiller relevante kritiske spørgsmålstegn ved denne fascination.

Jeg anbefaler alle at købe den og læse den – ikke mindst folk i mit eget fag. Den kan stadig købes for kr. 100,- ved at kontakte kade@stemningshotellet.dk.

Jeg har netop lige købt den igen, fordi mit oprindelige eksemplar er væk. Den ligger sikkert hos en eller anden stakkel, som jeg har prakket den på. Det sjove er, at mit køb netop nu falder sammen med, at bogen udkommer i en engelsk version på det amerikanske marked.

Jeg venter på, at den kommer med posten, og jeg glæder mig meget til at læse den igen. Det bliver som at besøge en god gammel ven, jeg ikke har set i mange år. Og jeg er spændt på, om den stadig holder – 13 år efter at den udkom.

Udgivet i bøger | Tagget , , , | Skriv en kommentar

Facebook er 80% spild af tid, Twitter et råbekor

For nogle måneder siden lukkede jeg endelig min Facebook konto. Indtil da havde jeg været aktiv i mere end et år og desværre brugt al for meget tid derinde på ingenting. Facebook spammede mig med forespørgsler fra mine venner og bekendte, der mere eller mindre bevidmasse-sendte invitationer til horoskoper, kend-din-type, og hundredevis af andre ligegyldige applikationer. Somme tider blev jeg lokket – jeg havde nok brug for nogle overspringshandlinger, og så var det jo nemt.

Én ting var jeg dog glad for ved Facebook: Statusopdateringen og de kommentarer, som vennerne skrev dertil. Men alt andet på facebook regner jeg for ligegyldigt, og derfor er det simpelthen ikke nok til, at jeg vil bruge det.

Jeg valgte så at prøve Twitter, for den fokuserer udelukkende netop på denne funktion. Efter 6 måneder med Twitter må jeg dog desværre konstatere, at det gør den ikke særlig godt. Facebooks statusopdatering bød op til dialog. Hvis en ven skrev noget sjovt, kunne man så kommentere netop dette, vennen kunne svare tilbage og andre kunne også deltage. Altsammen kan ses i ét billede.

På Twitter er det anderledes. Her får man fornemmelsen af, at alle bare sidder og taler i munden på hinanden, uden at interessere sig for, hvad de øvrige siger. Man kan svare direkte til hinanden, men det får aldrig fornemmelsen for dialog frem.

Så nu gider jeg heller ikke det mere :-) Er jeg en kritisk bruger? Ja. Men det synes jeg også, at man skal være. Jeg hører nok bare til kategorien over 30 ifølge Douglas Adams. Jeg har længe tænkt på, hvornår jeg ville støde på noget, der ville give mig den reaktion. Det er så tydeligvis Facebook og Twitter.

Anyway: Kunne jeg få Facebook’s statustjeneste, uden alle dens øvrige ting + Twitter’s lækre 3rd-party værktøjer – ja så ville jeg nok være en glad mand.

Udgivet i Blandet | 2 kommentarer

Vil du outsource? De 3 vigtigste råd

Gennem mine 8 år som selvstændig, har jeg gjort en dyd ud af, at bruge eksterne eksperter. Både på de områder, hvor jeg ikke selv havde kompetencer, men også indenfor mine egne områder, hvis der var for meget at lave. I de sidste 3 år brugte jeg meget folk fra udlandet: Bulgarien, Ukraine og Indonesien. Det har både været godt, men jeg har også brændt fingrene.

Derfor giver jeg her de 3 vigtigste erfaringer, som jeg har gjort mig:

1. Ansæt dine programmører for en længere periode af gangen

Du skal ikke hyre teams for enkelte projekter (f.eks. programmering af en hjemmeside). Alt for ofte vil du opleve ændringer i projektets krav undervejs, og så kan du nemt komme til at stå i en klemme. Leverandørerne kan desværre vise sig meget ufleksible med at afvige fra det aftalte.

Det er meget bedre at ansætte en eller flere programmører, som du så har fuld råderet over. Tro mig – du vil altid have noget, som de kan lave… :-) På den måde er du ikke nær så sårbar overfor ændringer i projekter.

2. Sørg altid for at du også får kildemateriale

Uanset om du får produceret en flashfilm, et design eller et program, så skal du udover det færdige produkt også få en kopi af kildematerialet. Også selvom du ikke selv har viden til at bruge den. Hvis du ikke gør, så har du bundet dig til leverandøren.

Jeg har oplevet, at en leverandør skulle lave nogle vigtige ændringer i en flash film 1½ måned efter at projektet var færdigt. Men de havde pludselig ikke længere tid, fordi de havde fået nogle store opgaver ind fra andre (vigtigere) kunder. Jeg kunne derfor vælge at vente 2 måneder eller få lavet flash-filmen helt forfra et andet sted. Ikke så fedt…

3. Outsourcing er ikke så effektivt som “lokalt ansatte”

Du skal regne med langt mere overhead og projektadministration, end hvis du havde dine folk ansat i samme kontor som du sidder i. Dels er det sværere at kommunikere på engelsk – ikke mindst fordi, at leverandørerne ikke altid er super-gode til engelsk. Men simpelthen også fordi man mangler muligheden for at stå samlet om en white-board tavle og “tegne-fortælle”. Der findes mange gode kommunikationsværktøjer på nettet, men det bliver bare aldrig helt det samme.

Tommelfingerregel: Et projektteam i udlandet har en effektivitet på ca. 50% af et, der sidder sammen med dig. Vær forberedt på, at ting skal forklares igen og igen og med mange eksempler, før det er helt forstået. Forvent, at ting skal kodes om 2-3 gange, inden den sidder i skabet.

Vær opmærksom på, at du kommer til at bruge meget tid på at koordinere projekterne. Du får derfor ikke noget reelt udbytte af kun at hyre en programmør.

Det lyder besværligt – skal jeg helt lade være?

Det er svært at svare entydigt på. Du skal i hvert fald ikke lade dig lokke bare af en billig pris. Til gipote.dk hyrede vi en Rails programmør i Indonesien for 3 måneder af gangen. Vi havde nogle helt konkrete opgaver til ham. Dem løste han også rimelig godt, men til gengæld brugte jeg en del tid på at sætte ham ind i opgaverne og kontrollere dem bagefter. Dermed blev min egen produktivitet sænket. Det var først, da vi ansatte endnu en programmør, at det virkelig gav noget. Vi brugte et firma, der hedder Kiranatama til Rails udvikling – dem kan jeg bestemt anbefale og jeg ville selv bruge dem igen

Og så lige en sidste ting: Hvis du selv er et en-mands firma, så har du nok ligesom jeg en stærk holdning til, hvordan tingene skal gøres – “my way or the highway”. Det skal du lære dig selv at lægge på hylden. For det kode, du får hjem, ligner med garanti ikke noget, som du selv ville lave. Men det kan du nok også lære noget af – det gjorde jeg. :-)

Udgivet i outsourcing | Tagget , , , | 2 kommentarer

What to learn next?

I’ve always had principle to learn at least one new technology/programming language/framework every year. So far it has, among the most interesting, amounted to: C and C++, Pascal, Delphi, Foxpro, MySQL (and developing on the MyODBC driver), Informix, Oracle, MSSQL, ASP, PHP, Perl, Python, Zope/Plone, Typo3, Drupal, OO Patterns, SCRUM project methods, Ruby on Rails, Prototype, … I’ve probably missed some.

This doesn’t mean, that I still use all of the above – simply that I always strive to learn something new, evaluate it, and maybe continue to use it.

I am in no way finished with Ruby on Rails – especially since this has become basis for my new full-time job. But I would really feel like stalling, if I don’t try something new.

So what do I really need to look at next? We are coming to the end of 2008 – what does 2009 have to offer my curiosity?

Udgivet i Blandet | Tagget | Skriv en kommentar

Strive for perfection

You should always strive to be better at what you do.

Two good places to begin:

http://therailsway.com

http://refactormycode.com

Udgivet i Blandet | Tagget | Skriv en kommentar

Thinking about searching in your app?

I’ll cut to the chase. There is really only one good search engine for Rails applications at the moment of this writing.

It’s called ThinkingSphinx, it’s fast, it’s reliable, and it has the easiest Rails implementation, that I have seen so far.

There is really no need for me to do a tutorial here, since Pat Allan has already done a great one himself. Read it here.

I use ThinkingSphinx in production on my Gipote site. Before that I’ve been with Ferret (not good in a multi-mongrel production site), and UltraSphinx (gave me great problems when indexing multiple models). After using ThinkingSphinx as my search engine, all pain has gone.

Udgivet i ruby rails | Tagget , , | Skriv en kommentar

Hooray – now full-time on Rails

I have decided to sell my company and get a job at a company developing solely in Ruby on Rails.

This is really the best decision, that I’ve done for myself AND my family for a very long time. The career as self-employed was really starting to tear me down.

So now – almost 2 years since I complained about the desire to work only with Rails but having the economical need to do PHP – I have finally shedded the PHP load and am now a full-time Rails developer.

Dear PHP: Thank you for 9 great years. It has been fun, but now I really must move on.

At the same time, I decided to change the name of my blog. I will be having a lot of travelling by train each day, and although I will do a lot of coding on these trips, it is also a perfect place, to write down the thoughts and ideas coming up during the day.

Udgivet i ruby rails | Tagget , | Skriv en kommentar

2 dage til RailsConf

Og jeg glæder mig som et lille barn!

Udgivet i ruby rails | Tagget , , | Skriv en kommentar