Alt.NET: wat is dat eigenlijk?
[UPDATE: dit is een artikel van mijn hand uit december 2008. Het was zeg maar kwijtgeraakt doordat ik mijn website iets te enthousiast heb zitten herbouwen. Aangezien er nog wel belangstelling voor is, getuige de zoekresultaten die Google deze kant opstuurt, maak ik het bij dezen opnieuw beschikbaar]
De laatste tijd is er steeds meer belangstelling vanuit de community voor het begrip Alt.NET. Je hebt er op een blog wel eens wat over gelezen, maar verder zei het je niet zo veel. Misschien klinkt het je veel te ‘alternatief’, geitewollesokkerig, wellicht zelfs negatief in de oren. Of je wilde best meer weten, alleen dat kwam er niet echt van. Tijd voor een nadere kennismaking!
Een kleine disclaimer: ik ben absoluut geen goeroe op dit gebied, maar gewoon iemand die net als vele anderen zoekt naar mogelijkheden om mijn werkwijze te verbeteren.

(het onofficiële logo…)
Oorsprong en achtergrond
Alt.NET is als term ergens in het voorjaar van 2007 opgeworpen door Dave Laribee. Nog niet eens zo oud dus eigenlijk. Laat ik om te beginnen gewoon eens de uitgangspunten uit Dave’s oorspronkelijke artikel plukken:
-
Je bent het type ontwikkelaar die gebruik maakt van wat werkt, terwijl je in de gaten houdt of er een betere manier is
-
Je kijkt verder dan de gangbare manier van werken, door het beste van iedere community te combineren: Open Source, Agile, Java, Ruby, etc.
-
Je bent niet tevreden met de status quo. Zaken kunnen altijd beter onder woorden gebracht worden, eleganter en eenvoudiger, flexibeler, met grotere kwaliteit etc.
-
Je weet dat tools geweldig zijn, echter ze werken maar tot een zeker punt. Waar het echt om gaat zijn principes en kennis. De beste tools zijn die welke werken vanuit deze kennis en die deze principes aanmoedigen (bijv. Resharper)
En als we op de (overigens nog niet echt uitontwikkelde) altdotnet.org kijken staat daar:
“We zijn een zelf-regulerende, ad-hoc community van ontwikkelaars verbonden door een verlangen om onszelf te verbeteren, aannames aan te vechten, en elkaar te helpen in het streven naar perfectie in de praktijk van de software ontwikkeling”
(beide citaten vertaald uit het Engels)
Je vindt vooral dat laatste citaat wat hoogdravend en algemeen klinken, en toepasbaar op ook andere reeds bestaande communities? Deels klopt dat wel. Maar wat volgens mij Alt.NET anders maakt is de nadruk op het buiten de gangbare tooling kijken (open source, Java, etc.). Verder is de gedachte dat tools en principes hand in hand moeten gaan, waarbij tools ondersteunend en principes leidend zijn. Wat betreft methodologieën kun je denken aan Test Driven Development (TDD), BDD, DDD. Principes zijn afgeleid van het Agile gedachtegoed, en leggen de nadruk op plezier in het werk, kwaliteitsverbetering, maar tegelijk ook bescheidenheid (we kunnen nooit alles weten). Lees hierover zeker ook het artikel van Jeffrey Palermo, ‘What are the Alt.NET principles?’.
Het valt niet echt in een hele strakke definitie te vangen, maar beschrijft meer een algemene manier van hoe je in je werk staat als (.NET) ontwikkelaar. Kern is dat je werkt met wat je hebt maar rondkijkt naar mogelijkheden voor een betere manier, dat je je niet neerlegt bij de status quo, maar probeert hier verbeteringen in aan te brengen. Hierbij wil je gebruikmaken van de beste tools die deze principes kunnen ondersteunen. Exemplarisch voor de toolset is ReSharper van JetBrains geworden (a.k.a. Re#). Echter, naast de tooling is nog belangrijker dat je niet klakkeloos een setje regels navolgt, maar ook echt begrijpt wat je aan het doen bent. Je kunt wel een IoC container gaan gebruiken, maar als je niet een goed begrip hebt wat je daarmee kunt en niet kunt, dan ben je waarschijnlijk zonder nog beter af dan met. De basis is dus eerst zelf leren en begrijpen (en vervolgens anderen leren natuurlijk).
Vooral rond de introductie van de term waren de wateren nog wat woelig, om het zo te zeggen: de meningen over waar de beweging voor stond liepen behoorlijk uiteen. Inmiddels is dat behoorlijk uitgekristalliseerd en is er een duidelijk idee over Alt.NET: een positieve beweging die wil verbinden en verbeteren. Diverse technische leiders binnen Microsoft hebben inmiddels de handdoek opgepakt. Momenteel wordt op vele blogs van Microsoft medewerkers over Alt.NET gesproken. Scott Hanselman en Phil Haack zijn er goede voorbeelden van. En hebben we niet allemaal met interesse de serie van Scott Guthrie gevolgd over ASP.NET MVC beta’s? Ik heb al de eerste Microsofties gezien die “Alt.NET” in de tagline van hun blog voeren. Naar mijn idee wordt hiermee duidelijk de interne verandering in zienswijze weergegeven. Dat betekent overigens niet dat Microsoft altijd de hemel ingeprezen wordt, maar dat hoeft ook helemaal niet. Het bedrijf is prima in staat zichzelf te verdedigen.
Opvallend was hoe snel iedereen de term overnam, binnen enkele maanden was er een grote aanhang ontstaan. Blijkbaar was er een grote behoefte aan ‘iets als Alt.NET’, en was deze term een goede naam waar een verzamelbak aan opinies en inzichten onder kon vallen. Inmiddels is de storm wel wat geluwd, en gaan er zelfs stemmen op om de naam alweer te laten vallen. Denk dat het daarvoor wel heel vroeg is, maar er zit een kern van waarheid in: Net als alle ‘bewegingen’ zal Alt.NET niet het eeuwige leven hebben. Ik zie een verband met de staat van software engineering als vak in vergelijking met anderen. Kijken we naar een evenknie als de architectuur (en dan die van de bruggen), dan zien we dat men daar veel verder geprofessionaliseerd is. Bouw je een huis, dan ga je niet eerst bedenken volgens welke methode je je stenen op elkaar stapelt; en laten we eens wat anders doen dan cement, want dat is al zo oud. Nee toch? En het gebeurt gelukkig ook niet zo vaak meer dat een brug of een huis instort (nou ja, bijna nooit). In ieder geval is duidelijk: een ieder die zich architect mag noemen werkt volgens vaste principes. En dat heeft zijn vruchten afgeworpen. Design patterns, anyone? Je weet vast wel dat de hier onder liggende principes van oorsprong uit die wereld komen. Christopher Alexander introduceerde met zijn “pattern language” een principe om op een gestandaardiseerde manier te spreken over de constructie van gebouwen en andere bouwwerken.
Maar toch, die tools?
Toch zijn tools onontbeerlijk, omdat we met een kale IDE tegenwoordig niet meer zover komen. Kijk eens op de Altnetpedia Tools site. Je ziet pagina na pagina aan tooling langskomen, waarvan je waarschijnlijk een aantal wel herkent, of zelfs al gebruikt (wie heeft hem tenslotte nog niet, de .NET Reflector?). Helemaal niet zo alternatief dus. Als je behalve de producten en languages die aan de Visual Studio suite hangen hier nog weinig van kent zou ik zeggen: verdiep je er eens in, en wees verbaasd over wat je opsteekt als je een aantal extra tools in je toolbox stopt. Overigens is dit absoluut geen opsomming van ‘kleine lichtgewicht opensource tooltjes’: er zitten een aantal zware enterprise-level pakketten bij, waar ook behoorlijk voor in de buidel getast moet worden.
Kortom
Alt.NET gaat uit van een gemotiveerde en gedreven ontwikkelaar die zichzelf, haar kennisniveau en team constant wil verbeteren. Zijn we bij de lezers van .NET Magazine dit niet allemaal? Wordt dit eind 2008 niet van ons allemaal verwacht? We zoeken samen naar verbeteringen, en die kunnen (zoals hierboven aangegeven) vanuit Microsoft zelf komen, of daarbuiten. We zijn alleen niet bang om een bestaande manier van werken overboord te zetten als blijkt dat die niet meer werkt. Dat kan voor sommige mensen confronterend zijn. Voor onszelf ook overigens: het toepassen van TDD vind ik absoluut nog geen sinecure, dit vereist voor de meesten een leertraject van veel vallen en opstaan. Het kan heel behulpzaam zijn om iemand in je team te hebben die al wat verder is en je op weg kan helpen. Of je verdiept je in de veelheid aan blogs die hierover te vinden zijn. Of…je start een community!
Alt.NET in Nederland
In België hebben vanaf zomer 2008 enkele bijeenkomsten plaatsgehad, en ziet men elkaar nu maandelijks. In Nederland hebben we sinds kort ook maandelijkse meetings. De eerste keer was in Amsterdam. Met 6 mensen was de opkomst nog niet zo hoog, maar het was absoluut een leuke bijeenkomst met veel geek talk. De december meeting heeft ook al plaatsgevonden. Hierin een introductie over het ASP.NET MVC framework gegeven, met speciale aandacht voor het Castle project. We gaan hier zeker mee verder. De komende meeting voor januari 2009 wordt momenteel gepland, dus ga even naar de AltdotNetherlands website voor de laatste ontwikkelingen!
En: we willen jou / jullie daarbij hebben! Ik kan me niet voorstellen dat er in Nederland minder ontwikkelaars zitten die belangstelling hebben voor Alt.NET dan in België. Meld je dus aan in de nieuwsgroep die we in het leven hebben geroepen (zie onder). Of neem gerust contact op met ondergetekende als je meer wilt weten. Tot binnenkort?
Referenties
-
ALT.NET – Dave Laribee (http://laribee.com/blog/2007/04/10/altnet/)
-
JetBrains ReSharper – http://www.jetbrains.com/resharper/
-
Alt.NET community site (veel referenties naar andere sites en blogs) – http://altdotnet.org/
-
Altnetpedia - Tools http://altnetpedia.com/Default.aspx?Page=Tools
-
What are the Alt.Net principles? – my answer – Jeffrey Palermo http://is.gd/7uiP
-
Wikipedia pagina Christopher Alexander http://en.wikipedia.org/wiki/Christopher_Alexander
-
Alt.NET Nederland – http://groups.google.com/group/altdotnetherlands?hl=nl
Je leert hier alles over hoe je productiever wordt door het slim inzetten van (Web 2.0) tools, methodes die jou grip op de chaos van je inbox en computer geven, en nog veel meer.