Ny krönika fortsättning i Serien om den pragmatiska utvecklaren... Det är intressant att du använder ordet lat. Själv har jag svårt att relatera att min strävan efter effektivitet skulle grunda sig i lathet. Min effektivitet grundar sig i att jag får en form av mental kick när jag lyckas att göra något bättre, snabbare och/eller kostnadseffektivare än vad andra (eller jag) tidigare lyckats med. Man kan likna utveckling med konst och utvecklaren med en konstnär. Det finns geniala konstverk liksom genialt utvecklade system. Min strävan efter effektivitet bygger på finna sätt att utveckla geniala system. När man ser en viss teknisk arkitektur eller vissa tekniska delar så kan man i vissa fall känna av denna genialitetskänsla. När man själv lyckas uppnå dessa nivåer då kommer kickarna. Låter lite geek men så fungerar det för mig :) Kul att någon lyssnade på mitt sommarpratarprogram :) hehe. :-) @Krister <b>Jo, använd inte ordet lat för att beskriva dig!</b> "Skulle inte Johan vara lat? Han har ju inte ens orkat lära sig hur man gör länkar i Pellesoft." @Krister: "Visst, systemet kanske inte kräver stora kodändringar när det gäller underhåll men systemet faller på punkten att det enbart är ett fåtal experter som kan förstå strukturen och därmed underhålla det." Men han fixar länken när någon tipsar hur han ska gå tillväga :) Så. så lat är han inte... <b>Men han fixar länken när någon tipsar hur han ska gå tillväga :) Så. så lat är han inte...</b> Som den late/effektiva utvecklaren jag är gillar jag verkligen inte att skriva { } samt ; i c# "Idag tror jag inte ngn c#:are ogillar automatiska properties?... inte ens kursaren " Jag tycker lat passar bra in på effektiv. Ex: Varför uppfinna hjulet igen? "Idag tror jag inte ngn c#:are ogillar automatiska properties?... inte ens kursaren " Jag var dum som ledde oss in i denna diskusion :-) Om någon vill kommentera properties o inte krönikan så tycker jag vi öppnar en ny tråd... My Bad... Johan N.. Okej, det kanske är "under bältet" att klaga på stavfel, men du har några sådana i din text och det stör faktiskt.. man får ju intrycket att du är ganska... lat.. :-) :-) Kan möjligen vara efter de justeringar jag gjorde direkt på sidan... skall granska detta. <b>Hade inte tillgång till word när jag justerade lite av texten... </b> En bra programmerare skriver dålig svenska, visste ni inte det :P Arbetar du aldrig mot svenska kunder som inte har engelska som koncernspråk? Men nu spårar tråden ut igen... Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
http://www.pellesoft.se/documents/pageblank.aspx?id=12014Sv: Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
Är man lat så tror jag man har en tendens att stanna vid en viss punkt. Man kommer inte sträva efter det geniala. Man gör det man blir tillsagd att göra och sen när man inte behöver göra mer då softar man. För var finns moroten att göra det lilla extra när man uppfyllt det man ska? Lathet kan resultera i att man blir bättre än de mediokra men jag tror inte det är den rätta drivkraften för att bli den bästa utvecklaren :)
Jag har dock inte upplevt dig som en lat person även om du säger det i artikeln. Jag läste nyligen en sak i Informators informationsbroschyr och där handlade ett avsnitt om NLP (Neurolingvistisk programmering) och det påminner en del om den kognitiva psykologin. I artikeln frågar man sig om det är en skillnad mellan uttrycken "kom inte för sent" och "kom i tid". Det finns en hel del forskning i området och det är en skillnad. Lite beroende på vad man väljer att säga så fokuserar man medvetet och/eller omedvetet på olika saker. Detta i sin tur skapar tex olika handlingar för att uppnå samma mål. I fallet "kom inte för sent" så skapar det bilder om att man kommer för sent medan i det andra fallet så skapar det bilder av att man kommer i tid. Jag tror att det finns belägg för att den som uttrycker att denne ska komma i tid kommer oftare i tid än den som inte ska komma för sent.
Så var vill jag komma :) Jo, använd inte ordet lat för att beskriva dig! Vad skulle tex Swenug i Göteborg varit utan dig! Jaja... du förstår... :)
En sista sak som jag inte håller med om är din vilja att jobba med mindre kunniga. Jag tycker Patrik Löwendahl sade en bra sak i sitt sommarpratarprogram. Han sa något i stil med att om man vill lära sig mer försök hamna i projekt med kunnigare personer än du. Jag tror det ligger en hel del i det. Men man lär sig också av att undervisa andra. Man blir tvungen att tänka igenom vissa bitar och försöka förklara de på ett lättförståeligt sätt. För inte så länge sedan fick jag tex frågan "Vad är det för skillnad på en databasserver och en databas?". För mig är skillnaden självklar men kan jag förklara det på ett lättförståeligt sätt? I detta fallet kunde jag nog det för personen som frågade verkade ha förstått skillnaden efter att jag förklarat det för denne.
Men ska man skapa geniala system så tror jag vägen för att göra det är att göra det med riktigt bra folk. Så om ca fem år så kommer jag starta upp ett IT-konsultföretag som kommer skapa dessa system :)
PS. Jo, en sak till men denna feedback är till er alla experter därute :) Ett problem som jag upplevt hos folk som kan mycket är att de har en tendens att komplicera till saker och ting (detta gäller inte alla experter men många). Visst, systemet kanske inte kräver stora kodändringar när det gäller underhåll men systemet faller på punkten att det enbart är ett fåtal experter som kan förstå strukturen och därmed underhålla det.Sv:Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
Det finns en code smell som kallas "nedless complexity" vilket innebär att man har mer komplexitet än man egentligen behöver. Det händer ofta när utvecklare försöker förutse förändringar som "kan hända" men är lätt att undvika om man helt enkelt låter bli att försöka vara spåtant.
Däremot måste jag säga att man aldrig får vara rädd för att refaktorera till ett komplext mönster om det är så att det kommer att underlätta underhåll eller utökning, bara för att vissa utvecklare i teamet inte skulle förstå. Det borde ju istället vara en ypperlig chans att få dela med sig av kunskap och ge andra möjlighet att bli ytterligare lite vassare på det de gör.
Robert C. Martin "Uncle Bob" skriver en en bra sak om det där i sin bok Agile Principle, Patterns and Practices. Han säger "Fool me once, shame on you, Fool me twice shame on me" i sammanhanget koddesign och förändring. Vad han menar är att det kan vara ok att koden inte är förändringsbar direkt från början, men första gången det kommer krav på förändring på den kodmodulen så skall den refaktoreras till en modell som i framtiden klarar ytterligare förändringar. Annars är man verkligen en lat, och svårlärd, utvecklare :)Sv:Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
Det är lite det som är idén mer artikeln. Jag vill skapa ett tänkande hos dem som läser den, som jag verkar ha fått igång dig med tanke på den långa texten ;-)
Jag skriver även att det är en konst att hålla sig lat för man får inte vara lat i att bli latare.
Dvs. Det är en konst att vara effektiv för man får inte vara lat för att bli effektivare.
Just effektivitet handlar ju mkt om att slippa göra samma saker om och om igen. Vilket egentligen en en slags lathet. För hur kul är det att skriva en inloggningsrutin 100ggr? Man orkar inte det. Dvs lat och istället effektiviserar man sig och gör en som man kan återanvända ;-)
Hade jag skrivit effektiv och kreativ istället för dum o lat så tror inte jag att jag skulle få den effekt jag vill komma åt. Dvs få folk att tänka till lite. Kom nyss ut en bok som heter Refactoring your wetware. Den handlar lite om just ändra tänkandet för att bli mer kreativ och utveckla dig själv.
Där hänvisar författaren till L-Mode personer och R-Mode personer. L-Mode är mer de som ser en sak som en sak och kan inte se det som nått annat. Ex order Effektiv är ett positivt ord för att göra nått bra. Men egentligen betyder det även att vi är lata och vill effektivisera för att göra det enklare och bättre för oss. Ex jag skriver valideringar på inputs m.m. bara för att jag inte orkar med massa skumma exception o sen försöka lista ut vad alla mina NullRefferenceException kommer från. jag är på så vis effektiv som skriver kod som gör att jag minimerar risken för jobbiga fel. Dva jag är för lat att orka leta upp alla NullRefferenceExceptions och vill istället veta direkt vart felet uppstod.
Hade jag använt ordet Effektiv så hade alla L-mode personer vilket är rätt många (vilket inte är en nackdel) inte tänkt till när de läste min artikel utan tyckt what ever det fattar väl alla. Men jag anvädne ett mer R-mode sätt vilket gör att man tänker till om nått som egentligen är samma sak men i negativ mening som kan vara positivt om man ser det på rätt sätt :-)
Jag tror att du hade skrivit 5 rader istället för alla de rader du skrev nu om jag inte hade använt ordet lat och dum :-)
kul... Sv:Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
"En sista sak som jag inte håller med om är din vilja att jobba med mindre kunniga. Jag tycker Patrik Löwendahl sade en bra sak i sitt sommarpratarprogram. Han sa något i stil med att om man vill lära sig mer försök hamna i projekt med kunnigare personer än du."
Det är precis detta jag tänker på oxå. Jag säger inte att jag är bäst. Jag vill precis som Patrik vara med bättre folk för lära mig. Lika så att jag vill ha med mindre duktiga i mitt projekt för att de mindre bra skiljer sig inte från oss andra, de vill oxå vara med dem de tycker verkar bra.
Sen är det faktiskt ett faktum att mindre bra kan komma med de dummaste idér som finns men som faktiskt även är de bästa. Hänt många ggr i mina projekt... Precis som du även avslutar med... Du menar på att bra folk kan göra svåra system för de ev mindre bra. Har man med dessa som är mindre bra som skall underhålla systemet i sin grupp kommer de påpeka sådant och tillsammans kan man göra det svåra till det lätta som alla förstår... Sv:Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
Skulle inte Johan vara lat? Han har ju inte ens orkat lära sig hur man gör länkar i Pellesoft.Sv: Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
haha... ;-) Den var kul... Sv:Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
Tycker du har fel här. En "expert" skriver kod så vanliga döda ska förstå den. En som skriver kod som är försvår och bara vissa kan förstå, är inte en "expert" när det gäller att skriva mjukvara.
Att vara lat resulterar ofta i att man är effektivare (om inte lathet innebär att man "slappar/tar det lungt").. men inte alltid att det behöver resulterar till något bättre. Att återanvända för att man är lat är rätt, men det beror inom vilket context ordet "återanvänd" och "lat" används. När jag har stött på orden "lat utvecklare" så har det ofta handlat om personer som kopierar kod, ber gärna andra att skriva deras kod och inte återanvända kod tex genom ett metod anrop (denna person är iofs smart, varför göra jobbet när andra kan göra det åt mig?! Men han/hon är absolut inte en bra utvecklare).
Jag satt i ett projekt med tusentals klasser, jag skulle göra en enkel metod som skulle spara ner lite data i en databas.. Jag visste att kunden ville att jag skålle återanvända befintlig kod, det tog mig ca: 2-3 timmar att bara hitta en metod som jag kunde återanvända. Skulle jag skrivit den själv så skulle det tagit 10 minuter. Resultatet blev bättre genom återanvänding än vad det skulle blivit om jag skapade samma kod på nytt. Men jag skulle vara mycket mer effektivare om jag skrev koden själv, än att spendera 2-3 timmar att hitta en motod som jag kunde återanvända. Så in detta sammanhang skulle lathet vara att inte orka söka för jag visste att det skulle ta tid, utan skriva koden själv.
Att nå till denna typ av "lathet" som Johan pratar om kräver lång erfarenhet och där man på vägen gjort massa fel och lärt sig av dom. Det är först då man hittar genvägar och vet hur man ska kunna bli lat och vara lat. Denna väg orkar inte många ta, utan de väljer andra vägar i tex form av copy & paste.. dessa är också "lata" utvecklare och "smarta".
Kom nämligen och tänka på ett online spel, där folk leecha.. då sa en till en annan "man får ju inte vara dum utan smart, för varför ska jag lägga ner tid när man kan stå här och ändå få poäng!"Sv: Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
Sv:Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
Ja ser man på... :-)Favour convention over configuration.
eller ens att behöva skriva () efter att skapa metodnamn i c#
som den late utvecklaren har jag pga det lärt mig använda en massa code snippets, gjort egna mm som löser detta åt mig.
Jag har lärt mig template baserad utveckling med autogenererade stubbar för sq/tsql, testat att själv skicka in resultatet direkt in i databasen.
Ngr år senare kom software factories från MS som kan göra likn)
Även T4 iom vs 2008 kommer till räddning.
Nej OR-mappers gör detta åt oss säger kanske ngn, men att konfigurera OR-mappern då?!
Skriva en massa XML med mappningsdata som är repetetivt; skriva namnet på klasserna, egenskaperna och vilka datatabeller de motsvarar och vilken datatyp, och ändå tänka efter om datat ska lazy-load:as eller inte och konfigurera ännu mer ... en massa konfigurering ist. åhh vad roligt.
Själv gillar jag "Favour convention over configuration"
När jag själv pluggade hatade jag att behöva skriva properties om o om o om igen...
iom vs 2005 kom code snippets som hjälpte lite. Ex på
http://www.pellesoft.se/communicate/forum/view.aspx?msgid=238677&forumid=47&sum=1#272898
iom c# 3.0 kom så det jag eg eg önskade när jag pluggade och hade dessutom diskussioner med kursare om att en då ny version av c#-språket borde stödja detta...
(nej tyckte kursaren då)
Idag tror jag inte ngn c#:are ogillar automatiska properties?... inte ens kursaren Sv: Favour convention over configuration.
Jag har delade meningar ang dem. Som älskare av DbC (Design by Contract) så tycker jag det är vansinnigt med automatiska properties. Då jag gärna vill att man skall ha validering på sina sets. Men underbar i andra fall då man slipper skriva sättningen och hämtningen och dess privata variabel... Bara en parantes... Men de öppnar upp nya problem istället då risken finna att man tänker till för lite och istället av den elaka latheten hoppar över valideringarna som bör finnas där i många fall.
mvh JohanSv:Favour convention over configuration.
Men det kan ju klinga lite väl negativt i öronen också. hehe.. Sv: Favour convention over configuration.
Vad är skillnaden mellan ett publikt fält och automatiska properties om både get och set är public? Erik Gunners som va med och grundade C# skrev en intresant post om detta för många årsedan.. där han inte såg någon spec. skillnad.
Det är enkelt och smidigt att använda dom, men det kan leda till skapandet av förmånga mutable klasses.
Finns ett bra stycke i boken "Object thinking" där David West skriver:
Vem vill att någon annan ska kunna gå in och ändra informationen vi har i vår hjärna?
Själv använder jag mig av automatiska properties, men jag tror många kommer av lathet använda dom på fel sätt..Sv:Favour convention over configuration.
mvh JohanOk - öppnar ny tråd
Svara
Sv: Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
För den late skribenten finns det ju stavningskontroll i Word :-)Sv:Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
Hade inte tillgång till word när jag justerade lite av texten...
Tusen tack...Sv: Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
Det finns ordlista till Firefox också.Sv:Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
Vem vill läsa programmeringsböcker på svenska, skriva dokument på svenska.. etc.. man blir skadad av engelskan och kommer ifrån svenskan.. jag har inte skrivit på svenska på väldigt många år och suger.. och har märkt att många andra utvecklare är rätt kassa på svenska.... hmm, svergie vore bättre med engleska som spårk istället för svenska ;)Sv: Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
Skriver du varje mail på engelska då också?
Och med den inställningen måste det väl då vara så att du skriver mer eller mindre perfekt engelska?
Up for a test? =)Sv:Ny krönika fortsättning i Serien om den pragmatiska utvecklaren...
Att märka ord är den dummes sätt att verka vis ;-)