Neste generasjon Prosjektportalen

Nå oppgraderer vi Prosjektportalen. Tarjei forklarer hvorfor, hva, hvor og når! TLDR: Hopp ned til “Nye Prosjektportalen” om du vil hoppe over historie og bakgrunn.

Begynnelsen

Forsommeren 2014 mottok Puzzlepart en forespørsel fra KommIT og Asker kommune om å levere et tilbud på en samhandlingsløsning som skulle baseres på Prosjektveiviseren og realiseres i SharePoint. Løsningen måtte kunne installeres i både SharePoint 2013 og SharePoint Online (Office 365), og skulle være åpent tilgjengelig og følge prinsippene for åpen kildekode. Sommeren 2014 implementerte vi kodenavn “Glittertind”, eller Prosjektportalen som løsningen ble mer kjent som. Rett over sommeren la vi ut første versjon av prosjektportalen på GitHub. Siden den gang er Prosjektportalen lastet ned 500 ganger, og er installert hos mange kommuner, fylkeskommuner, offentlige og private bedrifter.

Drivere for endring

Vi gjorde en del arkitekturvalg på den tiden, som jeg skrev noe om i August 2014: Tackling the challenges of repeatable deployments to SharePoint Online and on-premises. Sandkasseløsninger var en etablert måte for å gjøre tilpasninger av SharePoint. For å kunne installere både i skyen og på bakken brukte vi CSOM, og vi valgte da å lage våre egen installasjonsplattform, Sherpa, som vi også la ut som åpen kildekode. Sherpa og sandkasseløsninger dekket godt våre behov, og fungerer for så vidt brukbart den dag i dag. Verktøyene vi valgte har dog noen klare begrensninger som vi etter hvert fikk erfart ettersom Prosjektportalen ble mer og mer populær, og tilpasninger ble etterspurt.

Allerede i 2015 kom Microsoft ut og sa at sandkasseløsninger med kode ikke lenger ville være støttet i SharePoint Online, noe de senere håndhevet i 2016. Det var ikke noe problem for oss siden vi ikke hadde kode i løsningen vår, men det var etter hvert likevel tydelig at sandkassearkitekturen hadde sine ulemper. Etter hvert som vi gjorde tilpasninger så vi etter hvert en klar begrensning med sandkasseløsninger: Det var ikke mulig å gjøre tilpasninger på prosjektområde-malen uten å miste muligheten for å kunne oppgradere standard-pakken senere. For å gjøre endringer på områdemalen måtte en bygge en ny versjon av sandkasseløsningen. For å gjøre dette måtte en duplisere hele prosjektportalen-løsningen, gjøre endringer og deretter installere den nye pakken over den gamle. Hver kunde havnet da på sin egen grein som ikke enkelt kunne få forbedringer fra standardløsningen på et senere tidspunkt. I nyere tid har Microsoft kommet ut og anbefalt alternative måter for å gjøre tilpasninger av SharePoint.

Vi lagde Sherpa-verktøyet for installasjon av Prosjektportalen og andre SharePoint-tilpasninger. På daværende tidspunkt fantes det ikke noe rammeverk eller verktøy som gjorde tilsvarende. Selv om Sherpa fungerte godt som installasjonsverktøy, sier det seg selv at det ble mye kode som måtte vedlikeholdes av oss, uten at det egentlig ga noe merverdi – det var kun en måte å få Prosjektportalen-løsningen inn i SharePoint på. Flere andre leverandører og kunder lagde også sine egne rammeverk, med mer eller mindre samme funksjonalitet. Heldigvis startet Microsoft i 2015 et eget åpent community-initiativ for å installere tilpasninger til SharePoint. Samlebegrepet for dette initiativet fikk navnet Office Patterns and Practices – eller Office PnP på kortform. Enkelte framoverlente kunder har også merket seg anbefalingene fra Microsoft, og Universitetet i Agder har sammen med Asker kommune vært med på å finansiere den tekniske omskrivingen av Prosjektportalen, noe vi setter meget stor pris på!

Utviklerverktøyene har beveget seg milevis siden 2014. For tre år siden var JavaScript-rammeverk ikke like utbredt som de er i dag. Ukjent (i alle fall for oss) var også npm , gulp og webpack. TypeScript og LESS brukte vi heller ikke i Prosjektportalen. Alle disse er verktøy vi tar som selvfølge i dag, og måten vi jobber på har forandret seg mye. Det er nesten slutt på dagene der vi sitter i Visual Studio og kompilerer kode. I gammel løsning manglet vi også en god måte å få klienter til å laste nye versjoner av JavaScript og CSS etter at endringer ble gjort, uten at brukere selv måtte tvinge en ny innlasting av filer som browseren hadde cacha.

Nye Prosjektportalen

Den nye versjonen av Prosjektportalen håndterer tilpasninger, installasjon og utviklerhistorien på en mye bedre måte. Vi har nå gått over til å bruke Office PnP Provisioning Schema sammen med Office PnP PowerShell for å installere tilpasningene. Utvikling, versjonering og pakketering av løsningen håndteres nå med gulp. Spesialkomponenter utvikles med TypeScript og React og bundles med webpack. Vi bruker node package manger (npm) for å inkludere tredjepartsbiblioteker. Vi utnytter etablerte rammeverk for å gjøre tilpasninger i SharePoint, spesielt SharePoint Patterns and Practices JavaScript Core Library (PnP-Js-Core) for å hente data fra SharePoint og Office UI Fabric for komponenter, ikoner og stilsetting av løsningen. Gjenbruk av gode, etablerte rammeverk gjør at vi kan fokusere mer på funksjonalitet og mindre på implementasjon. Til sammen har den nye Prosjektportalen fått en moderne, fleksibel og solid utviklingsplattform.

Ett av målene med omskrivingen var å støtte tilpasninger på en mer dynamisk måte. Vi vil at standardpakken ikke skal modifiseres ved ulike tilpasninger, men at en heller lager egne pakker som installeres etter at standardpakken er installert. Standardfilene bør heller ikke overskrives av senere tilpasningspakker, slik at det alltid er mulig å oppgradere standardpakken. Tilpasninger på innholdstyper, utseende og porteføljenivå kan dermed implementeres som en PnP-pakke. Tilpasninger på prosjektområdemalen har vi bygget støtte for i rammeverket som oppretter prosjekter, og denne tillater å legge inn filer som definerer lister, webparts og sider. Disse filene kan selvfølgelig også implementeres som en PnP-pakke og installeres for seg selv. Det vil da være naturlig å dele disse pnp-pakkene i Prosjektportalen-området på GitHub, og vi håper at flere kunder og leverandører ønsker å bidra med slike tilpasninger.

I nye Prosjektportalen vil det også være mer fokus på Gevinstrealisering. Vestfold fylkeskommune, Telemark fylkeskommune, Østre-Toten kommune og Oslo kommune har gått sammen for å legge til rette for bedre gevinstrealisering i Prosjektportalen basert på Gevinstkokeboka fra KommIT. Puzzlepart har implementert dette i den nye versjonen av Prosjektportalen. Den nye versjonen inkludere flere lister og støttefunksjonalitet som vi håper underbygger og forbedrer gevinstrealiseringsprosessen.

I et parallelt prosjekt for Helse-Midt Norge har vi forbedret statusrapportering i deres versjon av Prosjektportalen, og vi tar med oss deler av dette inn i den nye versjonen. Hvert prosjektrom vil derfor ha en egen statusrapport-side som viser de viktigste rapporteringsfeltene for prosjektet, og gir også annen innsikt i hvordan det går med prosjektet. I en senere versjon ønsker vi å inkludere mer funksjonalitet i denne statusrapport-siden.

Om oppgradering

Da dette er en fullstendig teknisk omskriving av Prosjektportalen legger vi ikke opp til at gammel installasjon kan oppgraderes. Dette ville også ha motarbeidet litt av grunnen til omskrivingen – å bli kvitt avhengigheter til sandkasseløsningen og feature-rammeverket. Dersom en ønsker å ta med gamle prosjekter anbefaler vi å gjøre en ny installasjon på en ny områdesamling, opprette de samme prosjektene i den nye områdesamling, og så migrere over innhold som er ønskelig å ta med videre. Selvsagt vil en da ikke få en fullverdig oppgradering, men sannsynligvis vil denne tilnærming være god nok for de fleste. En annen mulighet er å beholde de gamle prosjektene som de ligger i dag, og lage nye prosjekter i den nye områdesamlingen, og så vise prosjektene fra gammel og ny løsning i samme portefølje. Vi har brukt samme ID og interne navn på termer, innholdstyper og felter, slik at migrering av data skal gå så enkelt som mulig. Vi kan selvfølgelig bistå kunder som ønsker hjelp til dette.

Åpenhet og deling

Prosjektportalen skal fortsatt være åpen og gratis. Den nye prosjektportalen vil en finne i Puzzleparts GitHub-repository. Vi ønsker også å være enda mer åpne rundt hvilken funksjonalitet vi til enhver tid jobber med, og dette løser vi ved å bruke GitHub issues. Issuene kan kobles til en milepæl som kan ha fått en dato. Dersom en ser på issuene som ligger der nå, er alle koblet til en milepæl, der den viktigste er versjon 1.0, som vil være første gang vi legger ut en release som er åpen for alle. Vi håper at brukere av Prosjektportalen kan rapportere bugs og endringsønsker rett i GitHub, for å hjelpe oss å forbedre løsningen enda bedre.

Jeg ønsker også å påpeke at Prosjektportalen deles fritt som åpen kildekode, og distribueres ikke som er produkt i klassisk forstand. Feil og mangler vil forekomme, og “barnesykdommer” er å forvente. For å kunne bedre bistå bedrifter som ønsker å få feil rettet raskt, oppgraderinger av prosjektportalen når det kommer nye versjonen, hjelp til utrulling og opplæring, samt tilgang på spesialistkompetanse på løsningen tilbyr vi en vedlikeholdsavtale for Prosjektportalen. Dersom dette er av interesse kan vi kontaktes på prosjektportalen@puzzlepart.com.

Tidslinjen for neste generasjon Prosjektportalen

I skrivende stund er vi i en fase der vi tester og gjør mindre funksjonelle forbedringer. Tidslinjen for Prosjektportalen er som følger:

  • Mai 2017; Installasjon og testing hos utvalgte kunder.
  • Juni 2017; Versjon 1.0.0 av Prosjektportalen legges på GitHub.
  • August 2017; Versjon 1.1.0 av Prosjektportalen legges på GitHub, med forbedringer basert på tilbakemeldinger fra første versjon.
  • August/september 2017; Vi inviterer til “Slippfest” for den nye Prosjektportalen, åpent for alle. Mer info kommer.

Vi er glad for å nærme oss lansering av neste generasjon Prosjektportalen, og vi er veldig spent på mottakelsen.

Spørsmål, ris og ros tas imot med stor takk, og kan rettes til prosjektportalen@puzzlepart.com.

 

By | 2017-06-09T11:44:16+00:00 May 5th, 2017|

About the Author: