WikiWiki och XP i små projekt

Relevanta dokument
Djupstudie Collective Documentation Ownerhip - Wiki. Jakob Nilsson-Ehle

emopluppen Installationsmanual

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

Content Management System. Publiceringssystem

Marie Andersson, IKT-centrum E-post: (Bb Learn 9.1.8) Wikis i Blackboard

Webbservrar, severskript & webbproduktion

Manual för Typo3 version 4.04

Innehåll. MySQL Grundkurs

Version: Datum: DynaMaster 5 Golf Övergripande manual

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Manual HSB Webb brf

Pragmatisk programmering. Cyberrymden Marcus Rejås Pragmatisk programmering,16 december (29)

Kriswebb och Krisserver ur ett tekniskt perspektiv

Lathund för publicering i KI Commons wikitjänst

Pragmatisk programmering. Cyberrymden Marcus Rejås Pragmatisk programmering,19 september (26)

Preliminär specifikation av projekt

Det fasta innehållet finns på sidor och kan inte ändras av den som har rollen författare.

Convertus - kursplaneöversättning

Manual för Typo3 version 4.2

Mjukvaruprojekt Onlinebooks

Programvarudesign för samarbete. Mötesplats Open Access Urban Andersson, Göteborgs UB Peter Hansson, Chalmers bibliotek

Kort-kort om utdelade användarkonton och datormiljön på NADA

Vad är en databas? Databasutveckling Med MySQL/MariaDB

Kom i gång med PING PONG

Projektanvisning. Webbsideprojekt. Författare: Johan Leitet Version: 2 Datum:

Kort om World Wide Web (webben)

Zimplit CMS Manual. Introduktion. Generell Information

Slutrapport Thunderbug

Roller i Liferay och Axiell Arena

Infoga dokument i Connect med hjälp av FlashPaper

Skapa din egen MediaWiki

Metoder för verifiering av användare i ELMS 1.1

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002

Projektet. TNMK30 - Elektronisk publicering

Introduktion till Wiki

Telia Centrex IP Administratörswebb. Handbok

Handledning för installation och komma igång med Joomla

Kom i gång med PING PONG

Content Management System. Publiceringssystem

» RSS - Bygg din egen RSS!

F9 del B Organisatoriskt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson Datavetenskap, LTH

DOTNETNUKE SKOLNING Skapat: den 20 november 2012

Twisted Scissors. Ett projekt i kursen tnm /2007. Björn Gustafsson bjogu419@student.liu.se. Mats Wedell matwe812@student.liu.

DynaPahlm är användbart på många olika typer av webbplatser. Denna handbok ger dig tips och vägledning till hur du bäst använder DynaPahlm

Wiki en funktion för samarbete

Innehåll. 1 Allmänt LDC Programförmedling Alonso Acosta. 1.1 Hur fungerar LDC:s Programförmedling?

Storegate Pro Backup. Innehåll

Trimble Communication Network Release notes Page 1

RemoteX Applications Manual för Partner Login

Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling

Mälardalens högskola

Rekommendationer för användande av Kursportalen

Calligra. En allmän inledning. Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Kom i gång med PING PONG

Flexi Exchange Connector. Copyright Datatal AB. Med ensamrätt. Copyright 2013 Datatal AB. All rights reserved.

PLAN WEBBORGANISATION MIUN.SE

Trimble Communication Network Release notes Page 1

LATHUND INSTALLATIONSANVISNINGAR PROJEKTSTRUKTUR 1 SAMMANFATTNING FUNKTIONER I INSTALLATIONSPAKET TEKNISK PLATTFORM...

Hur man skapa en Wiki.

Underhåll av

Djupstudie - Datorbaserade system för tracking

Priskamp. En prisjämförelsesite Björn Larsson

So ka artiklar och annan litteratur

Projekt Fake för Virtutech

Hur du gör ditt Gilles hemsida - en liten hjälp på vägen

Dokumentation för VLDIT AB. Online classroom

Instruktion för användning av

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Installation och konfiguration av klientprogramvara 2c8 Modeling Tool

Individuellt Mjukvaruutvecklingsprojekt

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2)

Manual för ansökan till Stiftelsen Kjellbergska Flickskolans Donationer

RemoteX Applications Manual för Resurs Login

Komma igång med Qlikview

Gränssnitt för FakeGranska. Lars Mattsson

LEDNINGSÄGARMODUL. Användarhandledning

Behandling av personuppgifter innefattar all hantering av personuppgifter såsom insamling, registrering och lagring.

Manual till publiceringsverktyg

Installation, Novaschem 2005

Webbserver och HTML-sidor i E1000 KI

Telia Centrex IP Administratörswebb Handbok

Laboration 3 i kursen Produktion för tryckta medier och webb: Webbplatsproduktion med ett publiceringssystem

Linuxadministration I 1DV417 - Laboration 5 Brandvägg och DNS. Marcus Wilhelmsson marcus.wilhelmsson@lnu.se 19 februari 2013

Uppdatera Mobilus Professional till version * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Trimble Communication Network Release notes Page 1

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

Installationsanvisningar. till IST Analys

Installera SoS2000. Kapitel 2 Installation Innehåll

Joomla CMS Del 2 av 2

TELIA CENTREX IP ADMINISTRATÖRSWEBB HANDBOK

Handbok Kanagram. Danny Allen Översättare: Stefan Asserhäll

Pyramid Print och Watcher - Installationsanvisning

Alla webbplatser och sociala mediekanaler där LTH står som avsändare räknas som en webbplats vid LTH och omfattas av dessa regler.

Axiell Arena Visa BOOK-IT:s resurser

Adobe Acrobat 7.0. Få jobbet gjort med kraftfulla intelligenta dokument

Avancerade Webbteknologier

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel:

Transkript:

WikiWiki och XP i små projekt Thomas Raneland, d00tr@efd.lth.se Linus Walleij B.S.Sc., d00lw@efd.lth.se 15 maj 2003 Sammanfattning I denna djupstudie analyseras användandet av så kalla WikiWiki-teknik i ett projekt som drivits enligt projektmetodiken extreme Programming. Såväl sociala, organisatoriska som tekniska aspekter berörs. Slutsatsen är att WikiWiki-tekniken är mycket lämpad för projekt av denna typ, och att programvaran som använts är enkel att installera och modifiera för lokala behov. Innehåll 1 Introduktion 2 2 Vad är WikiWiki? 2 3 Projektet och utvecklingsprocessen 2 4 Så användes WikiWiki-tekniken i projektet 3 5 Roller inom gruppen 5 6 Programvaran 5 6.1 Installation och driftsättning.............................. 6 6.2 Behörighetssystem................................... 7 7 Traditionell dokumentationsprocess visavi Wiki 8 8 Tänkbara utökningar i programvaran 9 9 Slutsatser 9 10 Tack till... 10 11 Referenser 10 1

1 Introduktion Det är känt att interna webbplatser delvis löser problemet med dynamisk dokumentation och kommunikation inom en projektgrupp. I projekt som använder extremprogrammering som utvecklingsprocess är kommunikation extra viktig. Vi har studerat hur WikiWiki-teknik fungerar i ett litet utvecklingsprojekt. Vår förhoppning var att programmerarna skulle kännas sig mer engagerade och delaktiga i projektet, genom att få ett lika stort ansvar för webbplatsen. 2 Vad är WikiWiki? WikiWiki (själva ordet är Hawaïanska och betyder snabb ) är en teknik för att tillhandahålla webbplatser där användarna själv kan lägga till nya, och redigera samtliga webbsidor. Tekniken utvecklades först av Ward Cunningham 1997 för webbplatsen Portland Pattern Repository. 1 Sajten var ämnad att samla designmönster som användarna själva upptäckt. Därför behövde redigering kunna utföras enkelt av alla med tillgång till sajten. Genom länkar på varje webbsida kan användaren lägga till egen text. Ofta finns även en diskussionssida kopplad till varje webbsida. Där kan metadiskussioner kring webbsidan hållas, till exempel rörande faktakvalitet, innehållets struktur, om sidan skall brytas ned i undersidor osv. Till skillnad från den statiska webbsidans WYSIWYG What You See Is What You Get, ger Wikisidor en helt annorlunda användarupplevelse av WYSIWYME What You See Is What You May Edit man erfar en känsla av att webbsajten erkänner sina egna brister och accepterar att bli rättad och förbättrad. Det står varje användare fritt att lägga till nya webbsidor. Således kan sidoämnen lätt ges egna sidor, vilket gör att webbplatsens struktur utvecklas. Därmed kan en WikiWiki-sajt hållas välstrukturerad trots att sajten har ett stort antal medförfattare. För varje artikel (uppslagsord) sparas de senaste versionerna så att man kan jämföra den nuvarande artikeln med en tidigare version, och om det behövs återgå till en tidigare version, se figur 1. Wikipedia 2 är den största sajten med Wiki-teknik och omsätter i dagsläget 100 000-tals artiklar. Historiskt har Wiki-sajterna utvecklats ur s.k. Blog -program, d.v.s. webbloggar eller nätsamhällen communities som har ett naturligt inslag av informationsutbyte. Varianter på konceptet förekommer också exempelvis i manualen för skriptspråket PHP, där läsarna kan annotera, dvs kommentera alla sidor på ungefär samma vis som rättningar är införda i marginalen på flera av Universitetsbibliotekets referensböcker. På så vis kan man hävda att fenomenet egentligen har flera hundra år på nacken. Jämförelser med encyklopedisternas verk sammanställning och koncentration av mänsklighetens samlade kunskap kan också göras. 3 3 Projektet och utvecklingsprocessen Det projekt vi studerat och medverkat i fick uppdraget att utveckla ett program för tidtagning i endurotävlingar. I projektet fanns två coacher (författarna) och tio programmerare. Utvecklingsprocessen som användes var extremprogrammering (XP), en lättviktsprocess (engelska: agile process) där tyngdpunkten ligger på förändring, kommunikation och delat ansvar. 4 1 http://c2.com/ppr/ 2 http://www.wikipedia.org 3 Se http://www.wikipedia.org/wiki/encyclopedia 4 Se Jeffries, Anderson & Hendrickson 2001. 2

Figur 1: Versioner av en och samma webbsida i vårt projekt. Rollerna i ett XP-projekt skiljer sig något från rollerna i traditionella utvecklingsprojekt. Coachens ansvar är att underlätta arbetet för programmerarna, samt att kontrollera att XP så kallade practices (arbetssätt) används. Programmerarens uppgift är att formge, testa och implementera programmet enligt kundens krav. Kraven formuleras som uppdrag, s.k. userstories. Varje uppdrag beskriver ett nytt sätt att använda programmet och därmed vilken ny funktionalitet som behövs. Kunden och coacherna hade tidigare praktisk och teoretisk erfarenhet av XP. Programmerarna hade endast teoretisk erfarenhet av processen (inklusive några kortare laborationer med specifika XP-metodologier). Projektets omfattning begränsades av tiden; sex långlabbar à åtta timmar, där varje laboration föregicks av ett två timmar långt planeringsmöte. Därtill fick varje programmerare fyra timmars hemarbete mellan mötet och laborationen. Denna tid användes huvudsakligen till förberedelser inför laboration, så att arbetet kunde genomföras effektivare. Under långlabbarna fanns minst en av coacherna ständigt närvarande. Kunden, som enligt XP bör finnas till hands hela tiden, befann sig i samma byggnad och besökte arbetet cirka två gånger per laboration. Vid detta tillfälle fick coacher och programmerare möjlighet att ställa frågor, reda ut missförstånd, och testa användargränssnittet på kunden. 4 Så användes WikiWiki-tekniken i projektet För att underlätta den skrivna kommunikationen, och för att även dela ansvaret mellan gruppmedlemmarna sattes en intern WikiWiki-sajt upp. Grundstommen till denna skapades av coacherna före första planeringsmötet. Därefter stod det var och en fritt att lägga upp information, ändra i befintlig text och strukturera om sajten på bästa sätt. 3

Figur 2: Projektets Wikisajt, huvudsida. Det går att konstatera tre olika användningsområden för webbplatsen: För det första fungerade sajten som projektgruppens interna anslagstavla. Nuvarande och kommande arbetsuppgifter, presentation av gruppmedlemmarna och teknisk information om produkten lades upp. För det andra användes sajten ibland som ett diskussionsforum. Tillfällig information, såsom Internetadresser och skalkommandon, är lättare att kommunicera skriftligt än muntligt. Delvis tog sajten över e-postens uppgift. Mellan långlabbarna lades information upp som inte behövde läsas omedelbart, t.ex. upplysningar om vilka hemuppgifter som delats ut eller hur man kan öka kvaliteten på koden. För det tredje fanns möjlighet att använda sajten för kommunikation med kunden. Nya releaser, dokumentation och support kunde läggas upp. Kunden kunde ställa frågor om produkten på dessa sidor och få svar från någon i gruppen. På så sätt slipper man utse en särskild gruppmedlem för kundkontakt. Denna tredje användning har i skrivande stund inte utnyttjats, men å andra sidan är projektet inte slutfört än, och det är coachernas avsikt att denna möjlighet ska tas tillvara. 5 Roller inom gruppen På samma sätt som rollerna i utvecklingsarbetet är annorlunda i ett XP-projekt, kommer rollerna för en WikiWiki-sajt att skilja sig från de traditionella. På klassiska webbsajter har få tillgång till tekniken som krävs för att modifiera en webbsida. Speciella verktyg (FrontPage, Screem, DreamWeaver) och speciella rutiner (FTP, WebDAV, Frontpage Server Extensions) 4

med login krävs för att kunna editera. Sidorna får karaktären av ett typografiskt arbete och få lägger ner tid på att ändra, lägga till eller radera. WikiWiki-sajter ger alla samma möjlighet att editera i samma ögonblick som ett fel upptäcks, utan att det vanliga rutinen (ett fel upptäcks, felet rapporteras, webbeditor avsätter tid, felet ändras) behövs. I stället klickar användaren på en länk på den sida där felet upptäckts, ändrar källtexten (skriven i ett eget format som dock stöder HTML i viss grad) och sparar. Således avvecklas rollen som webbeditor och den webbansvarige får rollen som korrekturläsare, organisatör och övervakare av sajten. I vårt fall blev det naturligt så att coacherna tog ett delat huvudansvar för sajten, men vi anser att det uppdraget lika gärna kunde delats ut till en eller två av programmerarna, som ett slags expertroll. Till rollen kan också höra att uppmana projektmedlemmar att lägga upp ny information eller att radera eller uppdatera gammal information vid ändringar. Det normala i ett XP-projekt är att minimera mängden dokumentation och i stället förlita sig till muntlig kommunikation. En stor webbplats kan tyckas motverka denna princip. Vår erfarenhet är att sajten till största delen innehåller material eller länkar till material som publicerats av tredje part, och inte blir föråldrad under projektets gång. Den enda större tekniska information som fanns om vår egen produkt var automatgenerad dokumentation 5 om de klasser ingick i programmet. Denna uppdaterades ofta för att inte vilseleda. 6 Programvaran För att driva Wikisidan behövde vi hitta en lämplig programvara. Det första vi undersökte var UseModWiki. Detta program är en modul till Webbservern Apache, som kör en helt och hållet filsystemsbaserad revisionshantering. Denna visade sig dock bara stödja en viss typ av uppmärkning av länkar mellan uppslagsord, nämligen såkallad CamelScript, vilket innebär att ord skrivs ihop så att SakerSomÄrLänkarTillAndraUppslagsord skrivs samman på detta vis. I engelskan är detta naturligt eftersom det används i en hel del varumärken och liknande, och kan eventuellt tolkas som en rörelse mot att skriva samman ord på det vis som är naturligt i svenska språket. Emellertid blir detta sammanskrivande onaturligt i svenskan eftersom vi redan av hävd skriver samman ord, och att skriva ett ord som schlagerfestivalarrangör som SchlagerFestivalArrangör ger ett stolpigt och onaturligt språkflöde som påminner om särskrivning. Därför var vi tvungna att finna en programvara med stöd för ett naturligt svenskt ordflöde. De stora svenska Wikisajterna av encyklopedisk karaktär: Susning.nu och svenska Wikipedia, har ett sådant system, och valet föll på svenska Wikipedias webbscript skrivet i skriptspråket PHP. 6 Dessa hade båda stöd för ordlänkar i form av [[dubbla hakparenteser]] vilket fungerar bra med svenska uppslagsfraser där man vill kunna använda mellanslag och små bokstäver i uppslagsord. 6.1 Installation och driftsättning Wikipedias PHP-skript finns tillgängligt under licensen GNU GPL 7 och eftersom detta ständigt utvecklas fick koden checkas ut från projektets CVS-repository. 8 En svensk översättning hade då nyligen tillkommit, och vi slapp på det viset att själva översätta texten i programmet till svenska. 5 Verktyget JavaDoc användes, http://java.sun.com/j2se/javadoc/ 6 PHP använder nedåt naturligtvis webbservergränssnittet CGI, Common Gateway Interface, en de factostandard från NCSA, se http://hoohoo.ncsa.uiuc.edu/cgi/interface.html 7 GNU General Public License, se http://www.gnu.org/licenses/gpl.html 8 programvaran återfinns på http://www.wikipedia.org/wiki/wikipedia:software 5

Figur 3: Skiss av webbsystemet där Wikin driftsattes. För att kunna använda programmet krävs tre saker: En dator med webbserver med stöd för skriptspråket PHP i en eller annan form. En databasmotor (DBMS) av typen MySQL och möjlighet att skapa databaser på denna. Tillgång till en skrivbar filarea på denna server, om man önskar stöd för att ladda upp bilder och liknande. Eftersom institutionen för datavetenskap hade begränsad möjlighet att stödja och administrera en sådan miljö valde vi att istället driftsätta Wikin hos Datorföreningen vid Lunds Universitet och Lunds Tekniska Högskola. Här fick vi tillgång till en webbserver i form av en Sun 450 med 4 processorer och stort arbetsminne, webbservern Apache samt databassystemet MySQL och en filarea. Bara databasskapandet krävde administrativa behörigheter på maskinen, själva programvaran och filarean kunde placeras i ett vanligt användarkonto på maskinen. På MySQL-sidan skapades ett konto med namnet cs0310 och en tom databas med samma namn. Till användarkontot knöts ett visst lösenord. Databasen måste sedan initialiseras med vissa fördefinierade tabeller och därtill hörande nycklar och index, vilket automatiserats av Wikipedia i form av ett SQL-skript. 9 Efter att detta skript körts och PHP-filerna placerats i en egen katalog var Wikisajten klar att användas. Ett schema över uppställningen visas i figur 3. 6.2 Behörighetssystem Vissa experiment företogs för att testa om ett behörighetssystem kunde användas för att begränsa tillgången till Wikisajten från hela världen. Det visade sig möjligt att sätta upp en lokal begränsning för den katalog där PHP-filerna låg med htpasswd, en behörighetslösning av samma typ som Unix password-system. På detta vis kunde man, om man så önskade, 9 För en introduktion till relationsdatabaser se Ullman-Widom, A First Course in Database Systems. 6

kopiera användarnas namn och lösenord från skolans Unixsystem och använda dessa för inloggning i Wikin. Det var också möjligt att kryptera denna förbindelse med SSL. Att använda personlig inloggning medför även andra fördelar: i den befintliga programvaran kan man sätta sig som övervakare på en viss artikel, och få en lista över senaste ändringar i de artiklar där man antecknat sig som övervakare. På så vis kan man lätt bevaka sitt eget intresseområde. Man kan även tänka sig att utöka denna funktionalitet med möjligheten att få e-post om ändringar i samma ögonblick som de sker. Vi valde emellertid att inte aktivera någon sådan säkerhetslösning: det bedömdes inte som sannolikt att någon utomstående skulle ha intresse av att sabotera vår Wiki, och ur spionagesynpunkt var vårt projekt inte heller särskilt intressant. Adressen till Wikin var heller inte allmänt känd, och även om detta inte är någon garant för säkerhet över huvud taget, så minskar det i varje fall risken att någon hamnar i Wikin utan anledning, så länge denna inte lokaliseras av exempelvis sökrobotar. I andra sammahang kan man tänka sig att informationen är i större behov av integritetsoch tillgänglighetsskydd. Exempelvis skyddas ofta ett företags interna nätverk, intranet från tillgång utifrån med brandvägg, men även internt kan tillgången behöva begränsas. En viss säkerställd spårbarhet beträffande olika ändringar kan också behövas. I sådana fall kan en tvingande inloggningsprocedur med personliga konton såsom beskrivits ovan komma att behövas. Det skall tilläggas att i vårt fall kunde användarna identifiera sig genom att skapa ett konto i Wikin med personlig inloggning och eventuellt ett lösenord om de ville försäkra sig om att ingen annan gjorde ändringar i deras namn. Om inget användarkonto skapades märktes ändringar istället med användarnas IP-nummer. I de stora Wikipedierna används denna begränsade behörighetskontroll för att temporärt eller permanent spärra IP-nummer till användare som stör den dagliga driften, såsom sabotörer. 7 Traditionell dokumentationsprocess visavi Wiki Många företag tillämpar webbaserad dokumentation av organisation, projektstrukturer, medarbetarprofiler, interna och externa tjänster osv. Flödet vid sådana dokumentationsprocedurer brukar vara något i denna stil: Medarbetaren beslutar sig för, eller beordras att upprätta ett visst dokument. Medarbetaren checkar ut ett dokumentnummer för detta ändamål. Dokumentnummersystemet är ofta anpassat för att tillåta multipla revisioner av ett och samma dokument. Innan ett dokument officiellt publicerats används ofta ett prepublikationssuffix eller liknande som indikator på att dokumentet inte är godkänt för bred publicering ens internt. Medarbetaren reviderar dokumentet ett antal gånger och sprider förhandsversionen internt inom sin arbetsgrupp för granskning. Någon medarbetare signerar dokumentet som granskat. Medarbetarens närmast överordnade avgör när dokumentet är moget för publikation. Dokumentet signeras av närmast överordnad och tilldelas ett verkligt dokumentnummer. Dokumentet kan sedan revideras iterativt, med förhandsversionscykler före varje slutgiltig publikation. 7

Om dokumentet skall publiceras i en intern webbserver tillkommer för varje revision att dokumentet antingen av medarbetaren själv, eller en av arbetsgivaren utsedd webbredaktör konverterar dokumentet till ett standardiserat format såsom PDF eller HTML och genomför själva publiceringen. Processen ovan kan naturligtvis automatiseras i större eller mindre grad med hjälp av datorsystem, men har ofta detta komplexa flöde, som till sin form påminner om arbetet vid en vetenskaplig tidskrift eller en tidningsredaktion. Man behöver inte vara speciellt verserad för att se sambandet mellan ovanstående publiceringsflöde och de tunga processer som finns inom PERT, WBS eller RUP. 10 För lättviktsprocesser är detta flöde något främmande, och en mer direkt publicering är naturlig. Här passar Wikins direkta flöde som hand i handske. Om olika projektmodeller används inom samma företag eller institution kan avskärmade Wiki-sajter användas för de team som använder agila processer. Wikin tillåter på ett naturligt vis gemensamt ägarskap (engelska: common ownership) till dokumentation, kontinuerlig revision och delar inte utvecklargruppen i editorer och andra. Istället för att knyta rollen som dokumentatör till en viss fysisk person delas den av alla med tillgång till Wikin, och ett visst uppdrag (engelska: story) som rör dokumentation kan tilldelas vem som helst inom gruppen. Korta iterationscykler kan användas även för dokumentation, och det är enkelt att på impuls kvickt ändra något man kommer på, eller att ställa en fråga i anslutning till en viss webbsida. Liksom med andra elektroniska publiceringssystem har Wikin den fördelen att geografiskt eller organisatoriskt distribuerat arbete förenklas, delar av programmeringsteamet kan sitta på olika orter. Detta är dock inte direkt förenligt med XP-praktiken. 8 Tänkbara utökningar i programvaran Emedan vi använt ett ganska enkelt och rudimentärt PHP-skript från Wikipedia har vi under arbetet och genom spontan reflektion upptäckt såväl svagheter som möjliga tillägg som skulle kunna göras i programvaran, samt användningsområden som ligger utanför den nuvarande programvarans användningsområde. De flesta är relativt simpla och skulle kunna utföras av vem som helst med erfoderliga kunskaper i skriptspråket Zend 11 som används av PHP. Detta är för övrigt närbesläktat med exempelvis BASH, AWK, Perl och liknande språk. Push-Wiki eller One-Way-Wiki en Wiki kan vara editerbar enbart från insidan av ett projekt alla som deltar i projektet kan editera via nätverks- eller kontosbegränsningar, men utomstående kan bara läsa informationen och får heller inte tillgång till editeringsfunktioner. Eventuellt kan frågor och annoteringar göras av utomstående, på samma vis som i PHP-manualen, medan direkta ändringar utförs endast av projektmedlemmar. Detta kan också vara lämpligt med tanke på upphovsrättsliga komplikationer ändringar i en text tillhör normalt den som gjort ändringarna om inget annat sagts. Om bara projektmedlemmar kan ändra vet man att dokumentationen tillhör projektmedlemmarna. Bred uppladdningskapacitet Wikipediaskriptet stödjer bara uppladdning av bilder och enklare ljudfiler. Detta är lämpligt för Wikipediaprojektet, men i ett bredare sammanhang kan alla möjliga filtyper behöva bifogas en Wikisida, till exempel patchar och filreleaser. 10 Se vidare om projektstyrningsmodeller på http://susning.nu/projektstyrningsmodell 11 Zend är egentligen namnet på det språk och alfabet som används i zoroastrismens heliga skrift Avesta. 8

Integration med andra programvaror man kan vilja använda sin Wiki för felspårning (bug tracking) 12 förändringshantering (application management, change management) med checklistor, regressionstestförfarande och liknande. Här duger den befintliga Wikitekniken långt, men projektmedlemmar kan behöva sätta deadlines och liknande som förenas med påminnelser om uppdraget inte utförs. Grening och release all problematik som förknippas med vanlig konfigurationsstyrning är tillämplig även på dokumentation ur detta perspektiv. Emedan Word-dokument och liknande inte gärna medger grening och mergning pga sin proprietära karaktär och därmed följande brist på programmatiskt gränssnitt, finns inga sådana hinder för det enkla textinnehållet i en Wiki. Man kan eventuellt tänka sig att lagra texten för en Wiki i CVS eller liknande istället för en databas som i dagsläget. Vid release kan man vilja ta en ögonblicksbild av Wikin för layout och publicering i tryckt form. Vad man däremot inte bör göra är att försöka tvinga in Wikin i befintliga processflöden, genom att exempelvis påtvinga granskning och godkänning av varje ändring i Wikin. Detta skall hellre utföras som speciella granskningsuppdrag (stories) där någon, gärna någon utomstående, läser igenom och försöker använda och förstå dokumentationen. 9 Slutsatser I stort har Wiki-användandet fungerat bra. Det har blivit en naturlig samlingsplats för intern dokumentation och kommunikation inom utvecklarteamet. Användarna ändrade gärna på befintliga sidor, men större strukturella förändringar, så som uppdelningar, sammanslagningar etc. skedde mer sällan. Samma fenomen återfanns även i utvecklingsarbetet, där programmerarna gärna höll sig till att ändra i befintliga klasser, men mindre gärna refaktoriserade och skapade nya klasser när så behövdes. Det är möjligt att detta skulle kunna lösas med speciella Wiki-stories. Fler likheter med utvecklingsarbetet kunde märkas. De programmerare som var mest engagerade i utvecklingsarbetet av programmet, var också de som utnyttjade webbplatsen mest, både för att läsa och för att lägga upp ny information. Vi har funnit att programvaran som användes är flexibel och lätt kan anpassas för olika specifika behov, samt visat på några möjliga sådana utvecklingsvägar. 10 Tack till... Tack till Lars Aronsson för idén. programmerarna i grupp CS0310 i kursen Programvaruutveckling i grupp 13 på Lunds Tekniska Högskola, våren 2003. Datorföreningen vid Lunds Universitet och Lunds Tekniska Högskola som tillhandahöll servern för WikiWiki-sajten. 12 Såsom i defektspårningssystem som Bugzilla, se http://www.bugzilla.org/ 13 http://www.cs.lth.se/education/lth/eda260 9

11 Referenser http://aronsson.se/wikipaper.html - Lars Aronssons uppsats om Wiki-sajter. http://susning.nu/wiki - Var är Wiki? http://susning.nu/wiki-programvara - Programvara för Wiki-drift. http://wikipedia.org/wiki/wikiwiki - Wikipedias uppslagssida om WikiWiki. http://extremeprogramming.org - Lättillgängligt om XP. http://xprogramming.org - Ambitiös sajt om XP med bland andra Ron Jeffries. R. Jeffries, A. Anderson, C. Hendrickson: Extreme Programming Installed. Addison-Wesley, 2001. 10