• No results found

Conclusies Open source

In document Java open source portaal (pagina 32-37)

7. Resultaten

8.2. Conclusies Open source

Dit project heeft zich geheel afgespeeld binnen open source systemen, hierdoor is er een extra paragraaf opgenomen omdat dit een zeer belangrijke rol gespeeld heeft tijdens het project. Deze paragraaf richt zich op de voordelen, nadelen en problemen die zich tijdens dit project voorgedaan hebben met betrekking tot open source.

8.2.1. Voordelen

De voordelen die ik heb ondervonden tijdens het project zijn hieronder vermeld met een korte uitleg waarom dat ik het als voordeel zie.

Gratis probeerversies

Eén van de grootste voordelen van open source is wel dat er vrijwel altijd een gratis versie beschikbaar is. Dit kan zijn voor een bepaald aantal dagen maar ook een wat minder goede en stabiele versie. Hierdoor kan het pakket voordat er eventueel kosten gemaakt worden voor een licentie of support contract goed bekeken worden of het pakket geschikt is voor een bepaalde situatie.

Veel voorbeelden

Doordat van de meeste pakketten de broncode inzichtelijk is, kan iedereen aanpassingen en uitbreidingen maken op het standaard pakket. Vaak worden deze aanpassingen met andere gedeeld zodat ook zij er gebruik van kunnen maken. Hierdoor zijn er voor de meeste open source pakketten veel voorbeelden beschikbaar die ook weer gebruikt kunnen worden om andere aanpassingen van af te leiden.

Pagina 33 van 40

Snel resultaat

Door gebruik te maken van een open source pakket hoeft een project niet vanaf de grond af opgebouwd te worden, dit bespaart veel tijd die aan andere dingen besteed kan worden. Doordat het een bestaand werkend pakket is, is er vaak al snel resultaat zichtbaar zodat dit bijvoorbeeld getoond kan worden aan een klant.

Uitbreidbaarheid

Door het open source karakter van de pakketten is een pakket meestal gemakkelijk uit te breiden, er vanuit gaande dat de broncode inzichtelijk is. Dit komt omdat er precies gekeken kan worden hoe het pakket werkt en wat er precies gebeurt. Op deze gebeurtenissen kan mogelijk ingehaakt worden zodat de eigen functionaliteiten uitgevoerd kunnen worden.

8.2.2. Nadelen

Tijdens het project zijn er ook nadelen van het gebruik van open source pakketten aan het licht gekomen; deze nadelen staan hieronder opgesomd.

Afhankelijkheid

Bij veel open source pakketten is er geen tot weinig ondersteuning vanuit de ontwikkelaar. Om dit op to lossen neemt de community dit vaak over waardoor je afhankelijk bent van de ondersteuning die de community kan bieden. Wanneer er gebruik wordt gemaakt van een pakket met een kleine community, dan kan het probleem ontstaan dat de ondersteuning niet optimaal is.

Onduidelijke ondersteuning community

Wanneer de community om ondersteuning gevraagd wordt, kan het gebeuren dat de reactie onduidelijk is. Dit kan vele oorzaken hebben zoals: miscommunicatie, slecht taalgebruik of onduidelijkheid over het probleem. Een bijkomend probleem is dat ook andere hun probleem erbij kunnen zetten waardoor het mogelijk de focus verliest.

Andermans code

Wanneer er aanpassingen aan de code van een open source systeem gedaan worden heb je altijd te maken met de code van iemand anders. Het is mogelijk dat deze code niet goed is gedocumenteerd, waardoor deze onduidelijk wordt; het kost dan veel tijd om precies te begrijpen wat er gebeurt.

Verschillende programmeerstijlen

Bij Open source pakketten en/of uitbreidingen hierop is vaak te zien dat er vele verschillende programmeurs aan gewerkt hebben, doordat de verschillende programmeerstijlen goed zichtbaar zijn. Wanneer hiermee gewerkt dient te worden dan is dit niet een optimale situatie; vaak is het tijdrovend om te wennen aan de verschillende stijlen.

8.2.3. Problemen

De problemen waarmee het project in aanraking is gekomen met betrekking tot open source staan hieronder vermeld. Deze problemen waren lastig te traceren en hebben voor vertraging gezorgd, waardoor de betreffende activiteiten langer duurden dan gepland.

Missende bestanden

Pagina 34 van 40

meeste gevallen zonder modificatie gebruikt worden binnen het portaal. Echter wanneer de projecten ingeladen werden in een ontwikkelomgeving, gaf de compiler van het programma vele foutmeldingen; deze foutmeldingen werden veroorzaakt door missende bestanden, vaak in de vorm van bibliotheken. Deze bibliotheken worden niet opgenomen in het project omdat er vanuit gegaan wordt dat deze al standaard op de server aanwezig zijn. Na het importeren van de gevraagde bibliotheken waren de fouten opgelost.

Lastige configuratie

De configuratie van het Liferay portaal geschied door middel van zowel bestanden als

instellingen in de gegevensbronnen. Hierdoor is het vaak een zoektocht naar de juiste locatie, tevens is de documentatie hierover niet altijd duidelijk, waardoor ook de daadwerkelijke instellingen problemen met zich meebrengen. Een bijkomend probleem is dat er gebruik gemaakt wordt van verschillende configuratie bestanden op verschillende locaties; hierbij is overschrijving ook mogelijk. Dit alles resulteert in het probleem dat het juist configureren van het portaal veel tijd in beslag neemt.

Aangepaste installatie

Liferay is beschikbaar als bundel samen met een voorgeïnstalleerde tomcat server. Deze

installatie is helemaal aangepast op Liferay, waardoor er standaard functies zijn uitgeschakeld of aangepast zijn. Een voorbeeld van een functie die handig is tijdens een ontwikkeltraject is de log functie. De log functie was ingesteld op het laagste niveau en voor sommige delen zelfs

helemaal uitgeschakeld. Hierdoor konden fouten moeilijk onderscheiden en opgespoord worden, waardoor er zelfs in de kleinste fouten veel tijd ging zitten. Na veel speurwerk is het gelukt om de log functie van de server op een hoger niveau in te stellen, waardoor de problemen gemakkelijker opgespoord konden worden.

8.3. Project evaluatie

In deze paragraaf is er een evaluatie over het totale project opgenomen; hierbij wordt ingegaan op het vooronderzoek, de ontwikkelfase en het resultaat daarvan. Tot slot van deze paragraaf en dit hoofdstuk is er nog een zelfreflectie op basis van competenties opgenomen.

8.3.1. Vooronderzoek

Het vooronderzoek inclusief de pakket selectie is achteraf niet helemaal perfect verlopen. Hoewel in een overleg vooraf de nadruk van de opdracht op de ontwikkelfase gelegd is, vind ik dat het

vooronderzoek beter had gekund. Zo had de valkuil met betrekking tot de selectie voorkomen moeten worden, echter is er voor de gemakkelijke weg gekozen.

De voorkeur voor de twee pakketten vanuit de organisatie had in overweging genomen moeten worden en had niet zoveel impact mogen hebben op de keuze in de voorselectie. In de fase van longlist naar shortlist zijn er hierdoor te weinig andere opties bekeken. De twee pakketten die de voorkeur kregen voldoen aan de eisen die zijn opgesteld aan de hand van SharePoint, er hadden echter meer pakketten getest moeten worden om een volwaardige selectie te kunnen maken. Afgezien van deze gemaakte fout is er naar mijn mening wel een goede keuze gemaakt om Liferay als portaal te gebruiken, omdat het een goed product is met veel standaard mogelijkheden en het ziet er degelijk uit.

Pagina 35 van 40

Uit het vooronderzoek kan geconcludeerd worden dat het over het geheel genomen een goed resultaat heeft geleverd; maar dit had ook verkeerd kunnen uitpakken, waardoor er veel tijd verloren zou zijn gegaan. Deze tijd had dan tijdens de ontwikkelfase ingehaald moeten worden en dit was deze fase niet ten goede gekomen. Uit deze situatie heb ik geleerd dat er nooit voor de gemakkelijke keuze gegaan moet worden, maar dat er wel degelijk een goede argumentatie achter moet zitten.

8.3.2. Ontwikkeling

De ontwikkelfase van het project heeft langer op zich laten wachten dan gepland; dit kwam door de uitloop van de businesscase implementatie en nog enkele andere technische problemen. Uiteindelijk toen er duidelijkheid was welke functionaliteiten zelf ontwikkeld dienden te worden, verliep alles zoals gepland. Het opstellen van de documenten en de bijbehorende modellen verliep zonder problemen waarna de ontwikkelomgeving voor de dag kon komen om de ontwerpen om te zetten in een werkend product. Dit is achteraf toch wat meer werk geweest dan vooraf ingeschat was, maar ik vind dat het eindresultaat van de portlet er netjes uit ziet en dat dit een goed voorbeeld is van de mogelijkheden die portlets bieden.

Tijdens het ontwikkelen zijn er veel zaken aan bod gekomen waarmee ik voorheen vrijwel nooit gewerkt heb: portlets en het hibernate framework zijn hier een goed voorbeeld van. Hiervoor heb ik me eerst moeten inwerken en inlezen in de materie voordat ik er daadwerkelijk iets mee kon bouwen.

Ik vond het een leuke ervaring om in een geheel nieuwe omgeving iets te ontwikkelen met voor mij vrijwel onbekende technieken. Door het gebruik van deze technieken heb ik mijn kennis kunnen vergroten en heb ik ervaring op kunnen doen met nieuwe standaarden en frameworks.

Pagina 36 van 40

9. Zelfreflectie

Dit hoofdstuk is een zelfreflectie waarin per competentiegroep een korte evaluatie is opgenomen. Tevens zijn een drietal individuele competenties eruit gehaald waaraan ik extra aandacht wilde besteden tijdens het project; deze individuele competenties zijn in het oriëntatieverslag benoemd.

9.1. Samenwerken

Samenwerken met ander mensen op de werkvloer is in mijn ogen heel belangrijk in een werksituatie, tevens moet er ruimte zijn voor eigen initiatief maar ook voor kritiek en feedback. In de eerste weken van het project was er minimaal contact met andere medewerkers, omdat in deze fase veel

gedocumenteerd moest worden. Later in het project kwam dit vaker voor, omdat er meer interesse voor het product kwam en er verschillende zaken geregeld moesten worden.

De persoon waarmee ik veel contact heb gehad omtrent het project is de leider van het Java ontwikkelteam en tegelijk opdrachtgever. Met betrekking tot dit samenwerkingsverband kan ik concluderen dat het altijd vlot verliep en dat er ruimte was voor ideeën van beide kanten. Ik deed iedere week verslag van mijn werkzaamheden van die week, dit was een goed controlemoment en hierin was er altijd ruimte voor vragen en feedback.

9.2. Communiceren

Het is belangrijk om met andere te communiceren om zo feedback te krijgen over de manier van werken en de ideeën over een bepaald onderwerp. Tijdens het project hebben er zich verschillende situaties voorgedaan waarin gecommuniceerd moest worden op verschillende niveaus. Zo kon ik in een overleg met mijn begeleider meer technische kanten van het portaal belichten en met iemand van de sales afdeling wordt het gesprek dan meer gericht op de functionaliteiten in het algemeen. Eens in de maand deed ik tijdens het Java teamoverleg ook verslag aan het gehele Javateam om ook hen op de hoogte te stellen van mijn vorderingen. Hierin vertelde ik over de voortgang van het project en wat er in de daarop volgende tijd op de planning stond. Ook konden ze vragen stellen met betrekking tot het project en het product.

9.3. Projectmatig werken

Projectmatig werken is een van de meest op de proef gestelde competenties tijdens het project. In situaties waar het project heel groot of nog onduidelijk is, is het van belang dat er projectmatig gewerkt wordt. Dit houdt onder andere in dat het project in fasen verdeeld wordt, zodat iedere fase een bepaalde tijd krijgt. Een voorbeeld hiervan is het testen van Liferay en Alfresco, hiervoor had ik voor beide pakketten een bepaalde tijd uitgetrokken. In die tijd had ik ten doel gesteld om het pakket zo goed mogelijk onder de knie te krijgen; wanneer dit niet lukte was het niet gebruiksvriendelijk genoeg.

Een ander voorbeeld van projectmatig werken is het maken van een planning; in het

oriëntatieverslag had ik ook aangegeven dat ik hieraan extra aandacht wilde besteden. Achteraf kan ik concluderen dat de planning die ik gemaakt had niet geheel correct was met betrekking tot het onderzoek en de ontwikkeling. Dit heeft mede te maken met het feit dat de opdracht veranderd is waardoor er andere activiteiten gedaan moesten worden. Wat betreft de planning van de

documenten die gemaakt moesten worden heb ik me er goed aan gehouden, zo ben ik naar mijn idee steeds mooi op tijd klaar geweest met de documenten en het inleveren ervan.

Pagina 37 van 40

9.4. Analyseren en oordeelsvorming

Vooral in de eerste fasen van het project zijn de competenties uit deze groep aan de orde geweest, zo moesten er verschillende pakketten bekeken en beoordeeld worden. Deze pakketten moesten op waarde geschat worden om zo tot een goede keuze te komen.

Later in het project, in de ontwikkelingsfase, zijn er vele bronnen geraadpleegd om bepaalde technische zaken op te zoeken. Ook deze bronnen moesten op de juiste waarde worden geschat, omdat er vaak vele verschillende mogelijkheden gepresenteerd worden.

In deze competentiegroep wilde ik extra aandacht besteden aan het schriftelijk verslag uitbrengen van het analyseproces. Om aan deze competentie te werken heb ik tijdens de pakketselectie een rapport gemaakt waarin de keuze voor Liferay verklaard wordt op basis van de opgestelde eisen. Ik denk dat het rapport duidelijk is en dat het een goed beeld geeft van het analyseproces.

9.5. Leren en ontwikkelen

Tijdens een project zoals deze, waarin je te maken krijgt met een geheel onbekende situatie, zijn er vele leermomenten. Zo was het hele open source karakter van software nieuw voor mij en wist ik niet wat ik hiervan moest verwachten. Achteraf heb ik beter inzicht gekregen in hoe een dergelijk pakket in elkaar zit en wat er allemaal bij komt kijken. Ook heb ik geleerd dat er meerdere soorten open source pakketten zijn.

In het begin van het project was ik al snel de weg kwijt omdat ik door de bomen het bos niet meer zag. Uiteindelijk door alles op een rijtje te zetten ben ik uit deze situatie gekomen en heb ik hiervan geleerd altijd een overzicht van taken bij te houden. Ik heb ook veel geleerd met betrekking tot portlets; hoewel dit standaard Java code is was ik gebonden aan de JSR168 standaard. Hierover moest ik documentatie zoeken en daarna de standaard aanhouden.

Ook in deze competentiegroep had ik in het oriëntatieverslag een competentie naar voren gehaald. Dit was het geloven in eigen capaciteiten in een afstudeersituatie. De voornaamste reden waarom ik deze eruit gehaald had was dat ik bij de start van het project in een vrij onbekende wereld stapte: niet alleen open source was nieuw, maar ook mijn kennis over JSP was weggezakt. Dit moest dus in de eerste weken van het project weer opgefrist worden.

In document Java open source portaal (pagina 32-37)

GERELATEERDE DOCUMENTEN