Geldnerd.nl

Blog over (financieel) bewust leven

Naar een Meerjarenspreadsheetstrategie

Soms moet je dingen even de tijd geven. Zeker als ze groot en ingewikkeld zijn en impact hebben. De vraag ‘hoe verder met mijn spreadsheets‘ valt in die categorie. Voor mij in elk geval wel. <Opa-Geldnerd-alert>Dat is misschien een beetje tegendraadse mening in de huidige gejaagde en oppervlakkige samenleving</Opa-Geldnerd-alert>.

In mijn hoofd werden de visioenen steeds woester. Een aanvulling op GnuCash moest ik bouwen, voor personal finance doeleinden, met opties voor het bijhouden van de administratie, je hypotheek, je beleggingen, en alle rapportages die ik ook in mijn spreadsheets heb. Leuk idee. Maar weinig realistisch. De benodigde programmeervaardigheden leren gaat nog wel lukken. Maar zoiets bouwen is een megatraject, en zoiets onderhouden is een levensvervulling. Niet mijn levensvervulling.

Doorgaan met de huidige spreadsheets?

Tsja, die eeuwige twijfel. Er zitten honderden uren programmeerwerk in mijn spreadsheets. Ze zijn helemaal afgestemd op mijn situatie en het stelsel is, sinds ik mijn integrale financiële dashboard heb, ook wel een beetje ‘af’. Natuurlijk kan het altijd mooier, moet er af en toe een foutje worden opgelost of iets worden omgebouwd als een bank of broker iets verandert, en zal ik zeker grafiekjes en indicatortjes bij blijven bouwen, maar er ‘staat’ wel iets.

Tegelijkertijd, die twijfel is er niet voor niets. Visual Basic is verouderd. Microsoft werkt al jaren aan een Javascript API maar dat gaat erg traag. Dat zou ook weer betekenen dat ik alles moet ‘verherbouwen’. En bottom line, ik wil gewoon van Office af, en waarschijnlijk ook van Windows. Het is een kwestie van tijd voordat we die allebei alleen nog maar tegen een maandelijks of jaarlijks abonnementstarief kunnen gebruiken, terwijl er uitstekende gratis alternatieven zijn. En Microsoft blijft een van de techgiganten. Eén van de uitgangspunten van Operatie Data Footprint is dat ik daar zo min mogelijk van afhankelijk wil zijn en zo min mogelijk informatie mee wil delen.

Gewoon doorgaan met mijn huidige spreadsheets is dus uitstel van het onvermijdelijke. En blijft wat mij betreft het minst wenselijke scenario.

Maar wat dan?

Zoals Nerd01 terecht opmerkte in de reactie bij mijn vorige post over dit onderwerp zijn bijna alle oplossingen voor mijn probleem gevoelig voor een of andere vorm van lock-in. Zodra je speciale producten gebruikt, zelfs al zijn ze open-source, zit je er aan vast. Migratie kost dan veel inspanning en kan zelfs problematisch zijn als je niet (meer) kunt beschikken over de brondata. Dat is bij mij gelukkig niet het geval. Ik heb de brondata van al mijn banktransacties en beleggingstransacties sinds 2000

Bovendien heb ik de afgelopen jaren ook mijn spreadsheets aan elkaar gekoppeld. Dat maakt het gebruikersgemak groter maar een oplossing voor mijn probleem ingewikkelder. En dan kun je, zoals terecht opgemerkt in de reacties, twee dingen doen: elke 5 à 7 jaar op het op dat moment courante pakket overstappen (scenario ‘Migreren’), en je werkwijze op die oplossing aanpassen. Of je eigen oplossing bouwen met een courante programmeeromgeving (scenario ‘Bouwen’).

In elke 7 jaar overstappen heb ik geen zin, en het aanpassen van mijn werkwijze aan de beperkingen van een pakket is al helemaal niet aan mij besteed. Dus kom je bij optie 2. Mijn eigen oplossing bouwen. Wat ik feitelijk nu ook al doe met Excel en Visual Basic. Maar wat overeind blijft staan zijn mijn bezwaren tegen Excel en Visual Basic. Ik wil overstappen op een open-source oplossing en een programmeertaal die courant zijn.

Opties

GnuCash of LibreOffice als basis. Daar komt het dan op neer. Skrooge en KMyMoney, die ik noemde in mijn vorige blogpost, zijn kant-en-klare pakketten die eigenlijk bij scenario Migreren horen. En die vallen dus af.

Overstappen naar LibreOffice

Hier ben ik al eens aan begonnen. Ook dit betekent het volledig verherbouwen van mijn spreadsheets. Waarbij ik wel opties heb, want LibreOffice biedt verschillende mogelijkheden aan. Er is een eigen BASIC variant, maar die is ook verouderd en minder gebruiksvriendelijk en doorontwikkeld dan Visual Basic van Microsoft. Dat is dus niet echt een wenselijk alternatief. Maar je kunt je macro’s ook bouwen in JavaScript en Python. Twee van de populairste programmeertalen ter wereld. En dat biedt daarna ook wel weer andere mogelijkheden. LibreOffice bestaat sinds 2010, toen het werd afgesplitst van OpenOffice. Dat bestaat al sinds 2002, toen versie 1.0 door Sun Microsystems open-source verklaard werd in een poging om te concurreren met Microsoft Office.

Overstappen naar GnuCash

GnuCash bestaat sinds 1998. De ontwikkelaarsgroep achter GnuCash een van de grootste open-source teams ter wereld. Het is een keurig boekhoudpakket volgens het dubbel boekhoudsysteem. Maar het biedt maar een deel van de functionaliteit die ik zoek, die ik nu heb.

Eisen en Wensen

Nog even terug naar mijn eisen aan de oplossing. Ik wil mijn beleggingen, hypotheek en administratie in één integrale omgeving kunnen voeren. Met automatische importmogelijkheden van banktransacties en aandelentransacties, en mogelijkheden om een kasboek en creditcard bij te houden. Mijn huidige data wil ik migreren. Minimaal wil ik de functionaliteit van mijn huidige spreadsheets handhaven, en daar op voort kunnen bouwen.

Er moeten voldoende rapportagemogelijkheden zijn, liefst kan ik zelf rapportages en grafieken inrichten. Die ik ook op mijn blog kan gebruiken. En idealiter is de software open-source. De gegevens en idealiter ook de oplossing wil ik in eigen beheer, niet in de cloud. En de software moet beschikbaar zijn op verschillende platformen, in elke geval Windows 10 en Linux. Voor mijn eigen situatie zou de software moeten kunnen werken met de Rabobank, ABN AMRO, Binck en Nationale Nederlanden. Idealiter is er een Nederlandse versie, maar dat hoeft niet.

Daarnaast is mijn huidige systematiek erg afhankelijk van de rapportages die ik kan downloaden. ING beleggingen is al gestopt met het bieden van die optie, hoorde ik onlangs van een (teleurgestelde) bloglezer. Binck doet dat gelukkig nog wel. Rabo, ABN, en Binck: als jullie hiermee stoppen ga ik weg! Eigenlijk wil ik in mijn nieuwe oplossing dus langs verschillende kanalen de gegevens kunnen importeren.

Overwegingen

Er zijn altijd onzekerheden als je een meerjarenstrategie kiest. Hoe lang bestaan LibreOffice en GnuCash al en nog? Wat gaat Microsoft doen met Office, Windows 10 en Visual Basic en wanneer? Allemaal dingen die ik me al jaren afvraag, en die ik niet weet. Nou zul je natuurlijk net zien dat al die vragen over een week beantwoord worden, maar toch…

Zowel GnuCash als LibreOffice vragen veel werk om te voldoen aan mijn wensen. LibreOffice kiezen komt neer op het herbouwen van mijn spreadsheets. GnuCash komt neer op het kiezen en inrichten van een echt boekhoudsysteem. Beiden vragen programmeerwerk. Die programmeerinspanning schat ik voor GnuCash zwaarder in dan voor LibreOffice.

Als programmeertaal heb ik de keuze tussen Python en JavaScript. Tsja. Daar worden ideologische oorlogen over gevoerd. Een onmogelijke keuze. Ik lees wel dat Python wordt omschreven als makkelijker te leren. GnuCash en Python zijn samen bruikbaar, LibreOffice werkt met JavaScript en Python. En met LibreOffice Basic, maar dat is zelfs een stap achteruit ten opzichte van Visual Basic. Python wordt ook beschouwd als beste taal voor kunstmatige intelligentie, een thema waar ik mij ook nog eens meer in wil verdiepen..

Tsja, en mijn droom van een aanvulling op GnuCash , voor personal finance doeleinden, met opties voor het bijhouden van de administratie, je hypotheek, je beleggingen, en alle rapportages die ik ook in mijn spreadsheets heb? Hoe realistisch is dat?

Meerjarenstrategie

Op dit moment lijkt het beste scenario: Het opnieuw opbouwen van mijn spreadsheets in LibreOffice, waarbij ik Python gebruik als programmeertaal. Dat wordt een project van jaren. Maar dat was het opbouwen ook. En het is wel leuke tijdsbesteding, vind ik. De naam Geldnerd draag ik immers niet zomaar.

Zomaar wat losse gedachten tot slot…

Uiteraard is er ook een vierde scenario, namelijk stoppen met mijn spreadsheets en stoppen met het bijhouden van mijn financiën. Maar dat voelt zo tegennatuurlijk, dat ga ik zeker niet doen.

Iemand vroeg mij overigens waarom ik zoveel tijd aan programmeren besteed. Simpel, twee redenen. Ik ben dol op puzzelen. programmeren lijkt daar ook op, en is nuttiger dan sudoku’s invullen. En als ik mijn tijd besteed aan programmeren, voorkom ik daarmee dat ik steeds nieuwe beleggingstransacties uitvoer die alleen maar mijn rendement om zeep helpen.

Misschien ga ik GnuCash toch wel gebruiken voor onze gezamenlijke administratie. Gewoon omdat het kan. Want een echte boekhouding is wél leuk.

En ik word getriggerd door de slotopmerking van Nerd01: Voor iemand die Visual Basic al leuk vindt moet Python zoiets zijn als overstappen van een Fiat in een Rolls Royce. Daar verheug ik mij op!

Wat zou jij kiezen?

error

6 Comments

  1. Javascript en python zijn allebei scripttalen, dus qua performance en mogelijkheden is het vergelijkbaar. Overwegingen zijn vooral: wat doet de rest van de community, is er voldoende help etc.
    een andere overweging: wat wil je nog meer programmeren? Met Javascript kan je ook websites/web tools maken

  2. Je kijkt nu puur naar bestaande pakketten. Ik ben het met je eens dat Python voelt als een rolls Royce. Echt geweldig.

    Je kan ook eens kijken naar een goed framework als Django. Daar heb ik goede ervaringen mee. Zowel als springplank om te beginnen als visualisaties en interfaces die deels gegenereerd kunnen worden.

    • Omfl!
      Ik gebruik gewoon Numbers om in een paar grafiekjes elke maand ofzo onze nettowaarde en de stand van onze leningen bij te houden. Verder heb ik de appjes van de drie internetbanken die ik regelmatig gebruik…maar voor de rest? Géén 100den grafiekjes, excelbestanden, spreadsheets, whatever…Nochtans was ik in een vorig leven Budgethouder met Best Veel Verantwoordelijkheden. Die job stopte ik toen we een jaar of 5 geleden HOT werden met ons jong gezin…Mijn man is helemaal nooit met onze financiën bezig. Misschien ben ik gewoon lui en op weg naar de ondergang? Ofwel is de hele FIRE gemeenschap gewoon veel beter bezig met geld dan ik? Ik begrijp in ieder geval geen snars van die hele spreadsheet-gekte.
      Maar veel succes met de migratie!

  3. Ook als je zelf je software schrijft moet je nog rekening houden met onderhoud. Extreem voorbeeld: updaten als er weer een softwarebibliotheek geinfecteerd blijkt te zijn. https://www.zdnet.com/article/two-malicious-python-libraries-removed-from-pypi/
    Ikzelf ben programmeur en doe het liefst niets anders. Ikzelf zou dus zeker zelf iets bouwen. Maar dat zou ik in eerste instantie doen met andere software als basis, en dan aanpassen wat ik mis. Open source betekent niet alleen gratis, maar ook teruggeven aan de community. Ben je bereid dat te doen, dan zijn er best wat mensen die je willen helpen.
    En misschien vind je wel anderen die het leuk vinden om samen iets te maken? Als je het goed schrijft deel je geen privégegevens.

  4. Gezien de enorme hoeveelheid info op internet zal het je wel lukken om je Python eigen te maken. Toch nog enkele eigenwijze adviesjes:
    1. Begin met de gratis intro door de master himself:
    http://freecomputerbooks.com/An-Introduction-to-Python-Guido-van-Rossum.html
    2. Gebruik de gratis Pycharm Community edition als IDE. Zie https://www.jetbrains.com/pycharm/features/editions_comparison_matrix.html. Pycharm is een prachtige editor met geïntegreerde debugging en code completion. Werkt erg fijn.
    3. Start met een bruikbaar projectje als vinger oefening. In jouw geval zou ik beginnen met een programma dat je helpt om je downloads van banken te categoriseren. Dus inlezen van een download file. Op basis van de inhoud van de transactie gebruik je een bepaalde key om te categoriseren in een hoofd- en sub categorie. De key en hoofd- en sub-cat zijn drie kolommen die je toevoegt aan het invoerbestand en zo kom je tot een uitvoerbestand. Ook sla je de key en categorien op in een omloopbestand. Tegen de tijd dat je dit werkend hebt ben je al redelijk ingevoerd in de datastructuren van Python (bv. lists en dictonaries). Dit categoriseren doe je nu in excel en je zult zien dat python hier veel mooiere mogelijkheden heeft.
    Het uitvoerbestand kan je in Excel in een draaitabel inlezen en je hebt een mooi overzicht van al je inkomsten/uitgaven per maand of per jaar. Presentatie in Excel is voorlopig prima.

Comments are closed.

© 2020 Geldnerd.nl

Theme by Anders NorenUp ↑