16 jan 2014 De 7 gewoonten van zeer effectieve programmeurs Nieuws Wat krijg je als je de wijsheden welke staan beschreven in het boek: ‘The 7 habits of Highly Effective People” combineert met tips en trucs uit het boek: “The Pragmatic Programmer”? Juist! Een cursus die je alles verteld over de 7 gewoonten waar zeer effectieve programmeurs over moeten beschikken! In dit artikel leest u er meer over. Introductie over het ontstaan van de cursus “De 7 gewoonten van zeer effectieve programmeurs” Stephen Covey heeft een fantastisch boek geschreven: The 7 habits of highly effective people. De programmeurs Andrew Hunt en Dave Thomas hebben een daarnaast fantastisch boek geschreven: The pragmatic programmer. Wat is er nu mooier om de goede wijsheden van beide boeken te combineren? Dit aangezien er erg veel raakvlakken zijn tussen beide boeken. Als je deze raakvlakken combineert haal je het beste in programmeurs naar boven. Vandaar het ontstaan van de cursus: De 7 gewoonten van zeer effectieve programmeurs. Dit met als doel om programmeurs deze 7 gewoontes bij te brengen om ze vervolgens te kunnen laten exxeceleren in hun werk. In de cursus ‘De 7 gewoonten van zeer effectieve programmeurs‘ worden de 70 tips uit het boek “The Pragmatic Programmer” van David Hunt en Andrew Thomas gekoppeld aan het boek “The 7 habits of Highly Effective People van dr. Stephen Covey. Hieronder volgt een korte opsomming van de 7 gewoonten van zeer effectieve programmeurs. Habit 1: Be proactive Je leert heel bewust dat je moet nadenken alvorens iets te doen. Maar ook het voorkomen van problemen is een onderdeel hiervan. Het ontwikkelen van goede unittesten en het voorkomen van “Programming by Coincidence” zijn voorbeelden van een goede proactieve,pragmatische programmeur. Nooit gemerkt dat je in een team wijst naar een ander? Mijn collega heeft het gedaan … de manager heeft het veroorzaakt … en nog meer van zulke reactieve uitspraken. In dit gedeelte leer je pro-actief te worden en te blijven door naar jezelf te kijken en jezelf te verbeteren in diverse programmeurs-facetten. Habit 2: Begin with the End in Mind / Begin met het eind in zicht / Mentale creatie The Habit “Begin with the End in Mind” is gebaseerd op het principe “All things are created twice”. Elk huis, tuin, auto wordt twee keer gemaakt. Eerst in de ontwerpfase (de mentale creatie) en dan in de realisatie-fase (de fysieke creatie, zie onder Habit 3). De meest gemaakte fout in deze is dat software wordt ontwikkeld voordat het einddoel en requirements goed in beeld zijn – gebaseerd op de klant (het eind). Met alle gevolgen van dien. De deel – requirements moeten altijd duidelijk zijn alvorens te beginnen. Een andere habit in the programmers wereld is “Deploy Early”. Als je je software zo snel mogelijk in een (test) omgeving deployed komen onmogelijkheden voor de feitelijk einddeployment direct aan het licht voordat die kleine vervelende fout een groot issue wordt. Het maken van Unittesten is ook een voorbeeld van “All things are created twice”. Alle software wordt getest, als je het zelf niet test wordt het getest door de eindgebruiker … Habit 3: Put first things first / De belangrijke zaken eerst / Fysieke creatie Deze habit is het vervolg van habit 1 en 2. Je bent proactief en je hebt het eind in zicht. Nu is het pas mogelijk om de belangrijke zaken eerst te doen – dit in tegenstelling tot urgenties en emergencies eerst. Feitelijk wordt dit onderdeel meestal binnen een Scrum team redelijk goed opgepakt maar er blijft altijd ruimte voor verbetering. Als je dit onderdeel binnen de programmeurwereld wilt verbeteren zou je kunnen denken aan het maken van een code-generator die code voor je genereert. Bijvoorbeeld: Het maken van een Perl of Ruby script die automatisch de documentatie voor je team verzorgt. Hoewel het maken van zo’n Perl of Ruby script wat tijd kost is dit belangrijk maar niet urgent. Het leren werken in Quadrant 2 is een onderdeel van deze training. (important but not urgent) Habit 4: Think win-win Zowel in de “normale” wereld als in de werksfeer zijn er te vaak strijdige (sub-) doelen binnen een organisatie. Dit is fylosofisch onjuist. Binnen een organisatie moeten alle neuzen altijd dezelfde richting op wijzen. Iedereen moet zoals Stephen Covey het mooi zegt “A true north” kompas hebben. Eidereen moet dus binnen een organisatie dezelfde missie nastreven. Anders zit je met vier personen in een kano en peddelt de ene naar Noord, de andere naar Zuid, de andere West en de laatste naar Oost. Met als gevolg dat de boot midden op het water blijft liggen. Door een win-win mentaliteit aan te leren krijg je gewoon veel meer voor elkaar en krijg je een compleet andere mindset – en een beter software-ontwikkelteam. Het aankweken van een win-win mentaliteit en hoe je die bereiken kunt komt in deze habit aan de orde. Habit 5: Seek first to understand, then to be understood Begripsvorming is een belangrijk element voor een programmeur. De belangrijkste toolset voor een programmeur zit in zijn hoofd. Het blijkt effectiever te zijn als je je eerst in iets verdiept voordat je er mee aan de slag gaat. Dit geldt voor een tool, framework en ontwikkeltaal maar ook voor je collega’s. Het is alleen wel een zeer moeilijke, pro-actieve habit. Je moet namelijk eerst door de zure appel heen bijten voordat je met een tool aan de slag kunt. Het is natuurlijk ook in softwareteams in de persoonlijke sfeer aanwezig. Je collega’s die een mening hebben over een onderwerp, je manager die ergens anders op kijkt. Het is superbelangrijk en effectief als je je eerst in de mening van die ander verdiept alvorens je een mening te vormen over een bepaald onderwerp. Door het verdiepen in de mening van een ander wordt je meestal ook beinvloed en kijk je anders (lees:beter) tegen de zaken aan. Het is immers nooit te vroeg om je mening te herzien, maar soms kan het wel te laat zijn. Habit 6: Synergize / The whole is greater than the sum of its parts Habit 4 is de mindset, Habit 5 is de methode en habit 6 is de oogst van effectivieit tussen mensen. Synergie is één van de meest natuurlijke habits. Bomen bijvoorbeeld gebruiken elkaars wortels om meer water naar boven te krijgen. Het geheel is meer dan de som van de onderdelen. Doordat je win-win denkt en doordat je je dus eerst verdiept in de ander weet je dat je collega iets bijvoorbeeld niet zo goed kan dan jij … en hij kan weer iets anders beter dan jij … Wat is nu mooier dan je collega’s werk te doen wat hij niet goed kan en hem te laten doen wat jij niet zo goed kunt. Dit lijkt een hele simpele maar dit gebeurt juist vaak niet. Meestal moet iedereen binnen een team alles kunnen want anders “voldoe je niet aan de eisen”. Niets is minder waar. We zijn allemaal geboren met talenten en met minder goed ontwikkelde eigenschappen. De doelstelling van deze habit is om hiermee synergie te bereiken. Ook het sluiten van compromissen wordt meestal als een deugd ervaren. Ook niets is minder waar. Je moet geen compromis maar een synergie sluiten, want Compromis Synergie Habit 7: Sharpen the Saw Habit 7 is feitelijk de cirkel om alle voorgaande habits. Sharpen the Saw is het principe dat je blijft leren in de diverse onderdelen van je werk waardoor je je werk beter kunt doen – en natuurlijk ook weer binnen een team beter je collega’s begrijpt omdat je Habit 5 steeds beter onder de knie krijgt. Omdat een Pragmatic Programmer leergierig is zal hij zich regelmatig in vakliteratuur en nieuwe ontwikkelingen verdiepen. Maar ook het leren van nieuwe talen, nieuwe methoden is een zeer effectieve habit. Door een dag in de week of een uur per dag je te verdiepen i n nieuwe tools en technieken wordt je automatisch beter en zie je de wereld door een andere bril. Alle 7 gewoonten van zeer effectieve programmeurs Meer informatie over de cursus? Bekijk hier de cursuspagina of neem contact met ons op voor een vrijblijvend opleidingsadvies. Het Vijfhart Team staat voor u klaar! Gerelateerde artikelen Vijfhart: kennispartner in de Digitale Transformatie Java voor testers (met Startgarantie) Help je loopbaan vooruit als MCSA Windows Server 2016