David Baakman

From Program to Product

Veruit het slechtste boek wat ik in 2008 gelezen heb, misschien wel het slechtste boek in de afgelopen 5 jaar. Zo, da’s eruit, nu nog even de onderbouwing :)

Het boek pretendeert onderwerpen te behandelen die nodig zijn om een stuk (maatwerk) software om te zetten naar een product. Best een interessant onderwerp, waar je best een leuk boek over kan schrijven. Helaas is de auteur daar niet echt in geslaagd.

Het boek begint bij hoofdstuk 1 met een beschrijving van de leven van de auteur. Leuk, maar zet dat alsjeblieft op wikipedia ofzo… Maar goed, het helpt je in ieder geval wel een aantal dingen verderop in het boek begrijpen.

Het hoofdstuk daarna getiteld ‘So What Do I Do First’ gaat over (goh… verassing…) de dingen die je als eerste moet doen…. Zoals het maken van een datamodel (interessante keuze in dit type boek….). En de opmerking dat je ‘spec’ tenminste de velden op het scherm, de manieren waarop een gebruiker kan sorteren en de filters waarmee een gebruiker subsets van data kan selecteren moet bevatten. Zo, toch knap van de auteur om dit soort specifieke ‘tips’ te geven terwijl hij echt null (pun intended) afweet van het type applicatie… Het hoofdstuk besluit met een stukje over het normaliseren van data. Hoe je foreign keys gebruikt enzo. Precies de informatie die je zoekt! En uiteraard de uitzondering in de regel: wanneer normaliseer je niet? Performance-redenen (ok, daar ga ik in mee), en wanneer je historische data wilt opslaan (aaaargghhhh…. echt…. Wanneer Codd dit zou lezen, zou hij zich omdraaien in z’n graf).

Eigenlijk had ik het toen al wel compleet gehad met dit boek. In het boek worden een aantal cases gebruikt, en alle cases hebben de volgende gelijkenissen:

– De applicatie is een Visual Basic for Applications applicatie in Access.

– De User Interface is dusdanig crappy dat de applicatie er in ’93 nog ouderwets uit zou hebben gezien.

– De functionaliteit van de applicatie is van een dusdanig Mickey-Mouse niveau dat de applicatie an sich weinig meerwaarde heeft.

Een uitermate nuttige selectie!

Aan het eind van elk hoofdstuk staat een interview. Dat zou best interessant kunnen zijn, ware het niet dat alle geinterviewden compleet niet interessante applicaties hebben geschreven in Access en die applicatie sinds ’84 voor $200 proberen te verkopen (goh… verrassende keuze door de auteur).

Hoofdstuk drie bevat nog een ander pareltje: ‘How to Hire a Programmer’ gaat over – hoe kan het ook anders – hoe je een programmeur moet inhuren wanneer je een programma wilt schrijven en je zelf niet kan programmeren (zucht…). Maar anyway… de tips zijn echt geniaal: 1) vraag naar referenties, 2) kijk naar het resultaat van vorige programma’s, en 3) (nu komt ie…): kijk naar geschreven code. En aangezien je zelf niet kan programmeren kan dat een beetje lastig zijn, maar goede code herken je aan de volgende eigenschappen:

– Veel commentaar (met als voorbeeld een stukje code waarbij het commentaar echt een van de meest kansloze stukken commentaar bevat – van becommentarieer waarom je code iets doet, en niet hoe je code iets doet heeft de auteur blijkbaar nog nooit gehoord….)

– Gebruik van duidelijke namen (“Variable names like “glngNewMatterGroupID” are much more descriptive and self-documenting than something like “NMGID””)

– Goede indentatie (met als voorbeeld van een goed geindenteerd stukje, een stukje code van 20 regels met 4 geneste if-statements met 1) geen enkele regel commentaar, en 2) de meest geniaal gekozen variabele namen….)

De tip om je applicatie te ontwikkelen voor een resolutie van 800×600 mag uiteraard ook niet ontbreken in hoofdstuk 3 (met als bonus-tip dat wanneer je zelf op 1280×768 [sic] ontwikkelt en je de applicatie op 800×600 draait niet alles op het scherm past – dank u voor dit inzicht….).

Gelukkig zijn we na hoofdstuk 3 op de helft.

Hoofdstuk 4 gaat over de financiele aspecten. Nou, interessant. Helaas overstijgt dit niet echt het niveau van een gemiddelde Economie I les op de middelbare school (maar die waren tenminste leuk!), maar het is toch altijd wel plezierig om nog eens uitgelegd te krijgen dat je winst de omzet min de kosten zijn, en dat huur onder vaste kosten valt. Ik was het al weer bijna vergeten….

Hoofdstuk 5 gaat over legale aspecten. Tegen alle verwachtingen in weet de auteur hier een nuttige opmerking te plaatsen: huur een professional in!

Tenslotte: hoofdstuk 6 is een verzameling van allerlei nuttige tips die nergens anders in het boek pasten. Zaken over het schrijven van een handleiding (gebruik minimaal 10pt lettertype, maar 11pt of 12pt “wouldn’t hurt” – dat was de informatie waar ik al tijden naar op zoek was….), en over de installer die je moet gebruiken.

Echt, loop dit boek voorbij en lees ‘Eric Sink on the Business of Software‘!

Wat dan wel weer frapant is is dat juist dit boek een ontzettend geniale opmerking bevat (die opmerking zelf was bijna de 25.20 euro waard….):

The world is full of slick ideas that simply aren’t needed by more than a handful of people. On the other hand, the world is full of problems that need solving. And in my experience, once-in-a-lifetime opportunities don’t come along more than two or three times a year.

Toch nog iets positiefs aan dit boek gevonden…