Hvor stor er en fisk?
Om disse sidene
Disse sidene er laget i forbindelse med et foredrag på Yggdrasil 2002, og er et forsøk på å beskrive hvilke typer henvendelser jeg får, og hvilke faktorer du bør tenke på når du skal gjennomføre et dokumentasjonsprosjekt. Du finner også noen tips til hvordan du velger verktøyene du vil bruke.
Merk: Hvis du bruker Opera, kan du benytte deg av en utmerket funksjon som heter OperaShow, og vise hovedpunktene på denne siden som en lysbildepresentasjon.
OperaShow starter du ved å trykke på F11, og så er det bare å bruke PageUp eller PageDown for å bla mellom lysbildene.
Hvis du av en eller annen merkelig grunn ikke bruker Opera, så kan du se et eksempel på hvordan sidene ser ut som lysbilder. Eller, hvis du er helt desperat etter lysbilder, men ikke vil bruke Opera, så kan du laste ned en presentasjon i PowerPoint-format.
Hvor stor er en fisk?
En del av forespørslene jeg får er av typen "Hvor stor er en fisk?". Jeg mener ikke at det er mange direkte spørsmål om fiskestørrelse, men at mange av henvendelsene er umulige å svare på; i hvert fall uten en god del tilleggsopplysninger. Noen "smårare" konkrete spørsmål blir det også innimellom:
- Hvor mange sider bør det være i en håndbok for et økonomisystem?
- Hvor mange A4-sider skriver du på en time?
- Vi skal levere et stort system neste uke, kan du levere en Doc-To-Help-fil til da?
- Hvor mange stikkord skal det være per side i en middels stor håndbok?
- Hvor stor håndbok får jeg for 10.000 kroner?
Dette er den samme typen spørsmål som jeg selv stiller i andre sammenhenger, for eksempel når det blir snakk om bilverksted og slikt: "Det er en rar lyd på foran på venstre side. Kan det være klampen som har hengt seg opp?" Så jeg forsøker å svare etter beste evne uten å være for sarkastisk.
Men de aller vanligste spørsmålene (FAQ) er disse:
- Vanlige kundetyper/prosjekter og spørsmål
- Faktorer som påvirker omfanget
- Når er prosjektet ferdig?
- Verktøy
Kunder og prosjekter
| Fra | Til |
|---|---|
| Superstrukturert | Totalt kaos |
Kunder og prosjekter: Fellestrekk
- Vanskelig å komme inn i prosjekter
- Vanskelig å komme ut av prosjekter
- Virkeligheten er ofte veldig forskjellig fra første forespørsel
FAQ
Vi har et program vi skulle hatt dokumentasjon til:
- Hvor mye koster det?
- Når kan du levere?
Bonusspørsmål: Kan vi bruke Doc-To-Robo?
Bonusspørsmålet skal jeg komme tilbake til. Når det gjelder de andre to spørsmålene, om pris og tid, har jeg to svar. Svar 1 er en tanke arrogant, og passer best hvis du skal forsøke å være morsom. Svar 2 er det mest presise jeg kan gi.
FAQ: Svar 1
Du kan få dokumentasjonen på tre måter...
- Raskt
- Billig
- Bra
...men du kan bare velge to av måtene samtidig
FAQ: Svar 2
Svaret er enkelt og greitt:
- Det spørs
"Det spørs" er kanskje ikke det svaret de fleste vil ha, men det er i det minste presist.
I oppstarten av prosjekter går mye av tiden med til å få avklart de tingene som det spørs på. For noen prosjekter er det nok med et par, tre kontrollspørsmål. I andre tilfeller blir det et helt forprosjekt av denne prosessen. Alle faktorer er ikke aktuelle for alle prosjekter, og det er helt sikkert en mengde spesielle faktorer som bare er aktuelle for ett enkelt prosjekt. De neste avsnittene dreier seg om noen vanlige faktorer det kan spørs på.
Det spørs på: Tidsfrister
Den første hovedfaktoren for et prosjekt er en eventuell deadline. Hvis dokumentasjonen må være klar innen 14 dager, setter det jo en grense for hvor hva du kan klare å levere.
Ofte er det to tidsfrister i prosjekter:
- Når må du levere?
- Når må du levere - egentlig?
Det beste er å bli enige om realistiske tidsfrister fra starten av. Det er slitsomt å forholde seg til stadig endrede sluttdatoer, både for den som skriver, og for den som venter på det endelige resultatet.
Det spørs på: Mengde
Hva og hvor mye du skal lage, er den andre hovedfaktoren for et dokumentasjonsprosjekt.
- Hvor stort er systemet?
Det tar som regel lenger tid å dokumentere et program med 100 skjermbilder, enn et med 5. Ikke alltid, men som regel...
- Kompleksitet
Kompliserte programmer tar det vanligvis litt lenger tid å dokumentere. Men det spørs (igjen) på flere faktorer, for eksempel hvor mye du kan forvente at brukerne kan fra før.
- Antall formater
Skal du levere både PDF, HTMLHelp og trykkede håndbøker? Det tar naturligvis lenger tid enn hvis du kan konsentrere deg om kun ett format. Singlesourcing kan gjøre arbeidet lettere på litt lengre sikt, men krever god planlegging, gjennomføring og oppfølging.
- Hjelpesystem
Kontekstsensitivitet tar ekstra tid. Det samme gjelder fancy layout, scripts og DHTML. Hvis du må støtte alle nettlesere fra og med IE 2.0, blir ting også litt mer tidkrevende.
Det spørs på: Kvalitet
God kvalitet tar tid
Det krever mer planlegging, oppfølging og testing for å lage noe med god og varig kvalitet. En "quick & dirty" fiks kan kanskje være en billig løsning på kort sikt, men bli dyrt i lengde. Litt som å pisse i buksa for å holde varmen.
Høy produksjon er ikke nødvendigvis det samme som høy kvalitet. Det tar lenger tid å skrive kort og godt enn langt og dårlig.
Det spørs på: Formål
Hva er den egentlige grunnen til at du har fått i oppdrag å lage dokumentasjonen? Er det for å:
- Oppfylle en kontrakt
"Det står nederst på siste side at vi må levere systemdokumentasjon, så da får vi vel levere ett eller annet."
- Gjøre livet enklere for sluttbrukere
"Programmet ble ikke fullt så intuitivt som vi hadde tenkt!"
- Redusere utgiftene til kundestøtte
"Målet er å redusere antall henvendelser til Support med 15%."
Uansett hva som er formålet med dokumentasjonen, er det greitt å få det avklart og definert før du starter på jobben. På den måten får verken du eller oppdragsgiveren urealistiske forventninger til sluttresultatet.
Det spørs på: Involvering
Dokumentasjonsdelen av dataprosjekter har en tendens til å komme i bakgrunnen av de fleste andre aktivitetene i prosjektet. For at du skal kunne levere noe som du er fornøyd med, er det viktig at du bruker tid på å komme ordentlig inn i prosjektet. Det kan for eksempel være smart å:
- Følge prosjektmetodikk
Hvis du bruker samme metodikk og verktøyene som resten av prosjektet, for eksempel når det dreier seg om testing og versjonskontroll, er det mye lettere å kommunisere med de andre prosjektdeltagerne.
- Delta på møter
Bli med på prosjektmøter (selv om du ikke alltid blir invitert).
- Vær interessert i resten av prosjektet
Du kan ikke vente at programmerere skal være interessert i dokumentasjonsarbeid, hvis du selv fnyser av alt som har med programmering å gjøre.
- Vær konstruktiv
Et bra triks er å melde seg frivillig til å skrive møtereferat. De fleste er evig takknemlige for at de selv slipper å skrive noe, og du får en unnskyldning for å få nærmere forklaringer av saker og ting. Bare pass på så du ikke blir "sekretær" for alle de andre.
- Be om å få eget budsjett
Det høres kanskje risikabelt ut, men et eget budsjett gjør det enklere både for deg og andre å se om du arbeider effektivt, eller om det er ting som bør gjøres annerledes.
Det spørs på: Personressurser
I mange prosjekter er den største mangelvaren tilgang til andre personer. Forsøk å definere tidlig i prosjektet, og så konkret som mulig, hvor mye og hvor ofte du må ha tilgang til andre. "Jeg ønsker å intervjue programmerer X fra kl. 09 til 11 mandag 16. februar." Sørg også for å utnytte den tildelte tiden effektivt!
Listen nedenfor viser noen av personressursene du kan få nytte av i et dokumentasjonsprosjekt:
- Programmerere
- Brukere
- Selgere/markedsførere
- Support/opplæringsavdeling
- Testere
Det spørs på: Fysiske ressurser
Tilgang til maskiner og den slags er som regel ikke noe stort problem, men det er lurt å si fra på forhånd hva du har bruk for. Riktig verktøy er viktig, og ikke det første området det bør spares på, men mer om det senere. Med fysiske ressurser mener jeg ting som:
- Systemet
- Maskiner
- Verktøy
- Kontorer
- Cola og pizza
Det spørs på: Grunnlag
Mange av oppdragene mine går ut på å systematisere, formatere, samkjøre og språkvaske eksisterende informasjon, og snekre det hele sammen til håndbøker eller hjelpetekster. For eksempel finner jeg ofte nyttig informasjon i:
- Dokumentasjon fra tidligere versjoner
- Spesifikasjoner
- Demoer
- Brosjyrer
- Markedsføringsplaner
Det spørs på: Ymse
Til slutt spørs det på alle de "små" tingene som alltid tar lang tid, og som alltid kommer som en overraskelse på slutten av prosjektet:
- Illustrasjoner
Hvem lager illustrasjonene? Hvilket verktøy skal vi bruke? Hvor mange illustrasjoner skal vi bruke?
- Stikkordregister
Hvem skal lage og teste stikkordregistrene? Skal vi ha stikkordregister i alle bøkene?
- Distribusjon
Er det ditt ansvar å sørge for ferdige mastere til trykkeriet eller CD-brenneriet? Eller å sørge for at ferdig kompilerte hjelpefiler er inkludert i byggingen av produktet?
- Oversettelse
Oversettelser betales ofte per ord. Ved å planlegge og strukturere litt før du begynner å skrive, kan du ofte redusere ordantallet ganske kraftig. Hvem skal håndtere administrasjonen av oversettelsen?
- Vedlikehold
Ikke lag avanserte løsninger hvis du vet at neste versjon skal vedlikeholdes av en person med dårlig tid og utilstrekkelig kompetanse.
- Etc.
Det er en drøss med andre forhold som jeg sikkert har glemt å nevne (helt til nå):
- Er det spesielle krav til tilgjengelighet (blinde brukere f.eks.)
- Holder det at du støtter kun én spesiell browser? Eller må du støtte alle browsere som har vært i bruk de siste 60 årene?
- Skal håndbøkene trykkes i spesielle papirformater? Kan vi bruke farger?
Lag plan
Når du har funnet ut av alle ting som "det spørs" på, er det på tide å lage en dokumentasjonsplan:
- Konkretisér det du har funnet ut
Basér planen på det du har funnet ut under avklaringen av alle faktorene som "det spørs" på.
- Samkjør med resten av prosjektet
Bruk samme prosjektstyringsverktøy som andre i prosjektet, og få gjerne dokumentasjonsplanen inn som en del av hovedplanen.
- Begynn enkelt - men utvidbart
Forsøk å ikke låse deg fast til én arbeidsmetodikk eller til ett verktøy eller format. I hvert fall ikke før du vet at du har funnet fram til de riktige løsningene. Pass på at du kan bygge ut dokumentasjonen hvis nødvendig, og spar fancy løsninger til senere.
- Vær realistisk
Ta med bare de tingene du vet du har mulighet til å levere. Alt ekstra får komme som en hyggelig bonus. Det kan være lurt å lage en overordnet plan som går over flere versjoner av programmet:
"Til versjon 2 skal jeg levere Installeringsveiledning og Brukerhåndbok. Hjelpesystem kommer i versjon 3."
Lag tilbud/overslag
Når jeg har definert en plan og fått den godkjent av oppdragsgiveren, er det enklere å lage et overslag over antall timer jeg kommer til å bruke, og hvilken timepris som er aktuell.
Som regel blir vi enige om et rammetimetall for prosjektet. Bruker jeg færre timer, blir det selvfølgelig billigere for oppdragsgiveren. Ser jeg at jeg nærmer meg slutten av timene uten å bli ferdig, melder jeg fra så raskt som mulig. I slike tilfeller tar vi ofte en ny runde og ser på årsaken til endringen i timetall, hvor mange flere timer som må til, hvem som skal ferdigstille resten av arbeidet, ny timepris, osv.
Fastpris går jeg sjelden inn på. Det er litt for mange faktorer i et prosjekt som jeg ikke styrer selv, så fastpris er bare aktuelt for veldig konkrete arbeidsoppgaver. For eksempel å lage et stikkordregister for en eksisterende håndbok.
- Timepris
- Fastpris
- For mange ukontrollérbare faktorer
- Kun veldig konkrete arbeidsoppgaver
Produksjon
Dette er den delen av prosjektet som tar mest tid, og som det handler minst om her. Bare noen få setninger om hovedpunktene i produksjonsfasen:
- Lag maler
Gode maler (.dot, .css, .dwt, etc.) som kan spare deg for masse tid senere i prosjektet. Min erfaring er at enkle maler er best.
- Definér arbeidsmetodikk
Det kan lønne seg å kjøre en liten del av dokumentasjonen gjennom hele prosessen først. På den måten finner du raskt fram til eventuelle problemområder, og kan rette opp ting før hovedproduksjonen starter.
- Skriv
Gjerne med perfekt grammatikk og ortografi, elegant språkføring og korrekte opplysninger.
- Test
Prøv å få testet dokumentasjonen sammen med resten av produktet. Hvorfor ikke benytte dokumentasjonen i test cases?
- Skriv mer
Når er du ferdig?
Programmererne har ofte noe de kaller "code freeze" når de skal avslutte et prosjekt. I ekstreme tilfeller skjer dette en sen kveldsstund fire/fem dager etter at den siste tidsfristen har gått ut. Alle sjekker alle filer inn i versjonskontrollsystemet, og så tar de en 20-minutters pizzapause. Straks tacopizzaen er fortært og den siste colaen er tømt, sjekker de ut filene igjen og starter de på neste versjon.
Det er ofte litt verre for en stakkars dokumentør. Naturlig nok så ferdigstilles dokumentasjonen etter at programmererne har gjort sitt, og det er ofte mange ting å få ferdig på kort tid:
- All funksjonalitet som du visste om skulle bli laget den siste uka
- All funksjonalitet som du ikke visste om
- Alle endringer som du ikke har fått beskjed om
- Trykking, distribusjon, etc.
Det første tegnet på at du ligger dårlig an, er når du hører denne setningen (enten fra deg selv, eller fra andre):
- "Det er ikke så farlig om dokumentasjonen leveres senere."
Den setningen betyr: a) Andre vet noe om dokumentasjonen som du ikke vet, for eksempel at det har kommet til en helt ny funksjon. b) Du vet noe om dokumentasjonen som andre ikke vet, for eksempel at du har bomma stygt på estimatene. Så hva kan du gjøre for å unngå å høre denne setningen?
Ferdig?: Planlegg nøye
- Lag oversikt over hva du skal levere
Prøv å være så detaljert når du beskriver hva du skal levere. Spesifisér for eksempel overskriftene ned til Overskrift 3 i håndbøkene før du får godkjent planen og starter skrivingen.
- Lag oversikt over hva du ikke skal levere
For eksempel kan du skrive at "Release Notes" ikke er ditt ansvar.
- Prioritér leveranser
Lag en liste der du skriver hvilken rekkefølge du skal levere ting i. Så er det bare å kutte fra bunnen av listen hvis ting begynner å skjære seg.
Ferdig?: Meld fra underveis
Planer er blant annet til for at du skal kunne oppdage problemer tidlig, og det dummeste du kan gjøre er å vente med å si fra om forsinkelser til det er for sent å gjøre noe med det.
Det er en god idé å dokumentere hvorfor ting skjærer seg: "Intervjuet med programmerer X ble avlyst til fordel for andre aktiviteter Se vedlagt kopi av mail." Ikke bare for å skaffe seg ryggdekning, men også for å lære noe til neste versjon/prosjekt.
En annen god idé er å evaluere prosjektet etter at det er ferdig. Det behøver ikke å være en stor formell evaluering, men det er nyttig å tenke gjennom hva du har gjort riktig, og hva som kunne vært gjort bedre. Det er en fin måte å bygge opp erfaringen på, og erfaringen gjør at neste prosjekt (kanskje) blir litt enklere.
- Si fra når du ser at det skjærer seg
- Dokumentér hvorfor det går til h%¤#§¥
Ferdig?: Det blir enklere neste gang
- Evaluér
- Erfaring hjelper
Verktøy
For mange er valget av verktøy veldig viktig, og gjøres omtrent på religiøst grunnlag: "FrameMaker er alltid bedre enn Word". "Doc-To-Help er mye bedre enn RoboHelp til alt."
Min erfaring er at alle verktøyene har både sterke og svake sider og at det lønner seg å bruke dem til det de er best til. Bruk gjerne flere verktøy i kombinasjon med hverandre.
Når du skal velge verktøy, lønner det seg ofte å ta utgangspunkt i hvilke formater du har tenkt å levere.
- Word og FrameMaker
- RoboDitt og RoboDatt
- Doc-To-Help og WordHelp
- Author-IT og Help & Manual
- En drøss andre
Verktøy: Velg format(er)
Og formater er det mange av, for eksempel:
- PDF
Et hendig format for distribusjon av håndbøker som kan lages med mange ulike verktøy.
- Hjelpeformater
Veldig mange å velge mellom: WinHelp, HTMLHelp, WebHelp, OracleHelp, JavaHelp, etc.
- Trykket dokumentasjon
- XML
Foreløpig har xml-løsningene stort sett vært beregnet for større bedrifter og store mengder informasjon. Men versjon 7.0 av FrameMaker leveres jo med XML/SGML, så det er definitivt på vei.
Verktøy: Hvem skal skrive?
Mange av verktøyene krever ganske spesialisert kunnskap, så det er viktig å tenke på hvem som skal bruke verktøyene. Ikke bare i selve prosjektet, men også når dokumentasjonen skal vedlikeholdes. Ikke fall for fristelsen til å lage kompliserte ting bare fordi du kan. Hvis den som skal skrive, ikke har nødvendig tid og kompetanse, bør du velge et verktøy og en arbeidsmetodikk som tar høyde for det. Dette gjelder spesielt i løsninger som omfatter singlesourcing.
- Kompetanse
- Tid
Verktøy: Singlesourcing?
Singlesourcing, det vil si at du kan bruke (deler av) den samme kildeteksten i flere formater, er veldig populært blant de som skal betale for gildet. På papiret kan det se ut som du får to eller flere formater for samme prisen som ett format.
Faktum er at singlesourcing krever god planlegging og ofte mer oppsett i starten av et prosjekt. Det er ikke så enkelt at du kan ta en eksisterende håndbok, tømme den inn i et singlesourcing-verktøy og få det perfekte resultatet ut i andre enden. Eventuelle innsparinger ser du kanskje ikke noe til før i neste versjon av programmet du dokumenterer.
Et godt alternativ kan være å singlesource deler av dokumentasjonen, mens andre deler kun leveres i ett format.
Du kan for eksempel skrive "slik gjør du"-informasjon i Doc-To-Help og levere en håndbok i både PDF-format og den samme informasjonen som hjelpefil. Andre deler av dokumentasjonen, for eksempel feltbeskrivelser, kan du kutte ut fra håndbøkene. I stedet skriver du dem i RoboHelp og leverer dem bare som hjelpefil. Med litt planlegging kan du knytte sammen de to hjelpefilene og få dem til å se ut som én og samme fil.Disse sidene er også et eksempel på singlesourcing. All teksten ligger i den samme filen, men ved hjelp av forskjellige stylesheets styrer jeg hvilket innhold som vises i tre ulike visninger:
- Den første visningen er vanlig visning på skjermen. Denne teksten her er for eksempel synlig på skjermen.
- Den andre visningen er ved utskrift til en skriver. Stort sett vises den samme teksten som på skjermen, men noe blir ikke skrevet ut, for eksempel menyen helt øverst på siden.
- Den siste visningen er i lysbildevisning i Opera. Når du viser en HTML-side i full skjerm i Opera, kan Opera samtidig skifte stylesheet. På den måten er det forholdsvis enkelt å forandre på layouten og å bestemme hva som skal vises, og ikke. Denne teksten er for eksempel ikke synlig i lysbildevisning. Litt flere opplysninger om lysbildevisning i Opera finner du i starten av dette dokumentet.
- Må planlegges
- Krever mer oppsett i starten
- Alternativ:
- Singlesource deler av dokumentasjonen
- Kan noe av dokumentasjonen leveres i kun ett format?
Verktøy: Andre faktorer
Det er også mange andre faktorer å ta med i valget av verktøy:
- Pris
En viktig faktor for mange, men hvis du velger riktig(e) verktøy, sparer du fort inn de ekstra utgiftene.
- Læreterskel
Hvor vanskelig er det å lære seg verktøyet? Bør du ha spesielle forkunnskaper? Finnes det kurs i nærheten?
- Support
Hvor mye koster det og hvor god er den?
- Flere språk?
Hvor enkelt er det å få dokumentasjonen oversatt?
Verktøy: Pekere
Det finnes en drøss av verktøy, og det er ikke alltid enkelt å velge. Linkene nedenfor gir deg en ganske god oversikt over de vanligste verktøyene:
- Sammenligning:
- Flere verktøy:
Viktigst: Innhold
Et spørsmål jeg får noen ganger er:
"Kan du anbefale én ting som vil gjøre dokumentasjonen vår bedre?"
På tross av at det meste på disse sidene dreier seg om den mer tekniske delen av det å skrive datadokumentasjon, er svaret ganske enkelt:
- Bedre innhold
Og for å lage bedre innhold er det øvelse som skal til. Det skader heller ikke med et skrivekurs, for eksempel fra Nils Petter Smeby på klartekst.no.