Het begin van een hopelijk succesvol softwareproject

Door pinna_be op zaterdag 4 januari 2014 00:10 - Reacties (14)
Categorie: Project, Views: 6.929

Inleiding Wie is de schrijver?
Hey,

Ik ben een student Informatica met een voorliefde voor wiskunde. Ik studeer momenteel aan de universiteit te Antwerpen (3de Bachelor) en heb een enorm tekort aan plezierige uitdagingen.

De studies zijn erg interessant, maar het eerste enthousiasme begint wat te vervliegen. In het begin dat ik leerde programmeren schreef ik programmatje's die priemgetallen genereren, grafieken plotten, en zelfs 3d-afbeeldingen konden plotten aan de hand van eigengeschreven configuratiefiles met belichting en al.

Echter de laatste tijd krijgen we steeds minder voldoeninggevende opdrachten en neigen we meer naar de theoretische kant toe. Al wat we programmeren zijn zaken zoals numerieke algoritmes, snelle programma's om software engineering technieken op te testen, implementatie van kleine gedistribueerde fileservers, .... Allemaal dingen die bijzonder leuk en interessant zijn, maar geen van deze dingen kan mijn honger naar voldoening stillen. Zelfs voor het Bacheloreindwerk moeten we gewoon software die reeds bestaat aanpassen en vervolledigen.

Vandaar kwam het in mij op om een project te starten met enkele vrienden, het opensource te maken, te doen wat we willen. Vrijheid. Voldoening. Plezier.

zoektocht naar een project wat gaan we nu eigenlijk doen?
Nu is het niet makkelijk om een project te starten, aangezien je eerst en vooral een leuk idee nodig hebt. Graag had ik iets wiskundig gestart, omwille van mijn voorliefde hiervoor en later zou ik ook het liefst in de wetenschappelijke sector willen werken. Het idee mocht ook niet al meermaals geÔmplementeerd zijn, dit zou immers gewoon "het wiel heruitvinden" zijn, en dat wil niemand toch?

Uiteindelijk gaan we toch een wiel heruitvinden. We gaan een "numerieke library" ontwikkelen (voor c++) en hopen ons te kunnen onderscheiden door features aan te bieden die weinig anderen aanbieden.

reden keuze waarom gaan we het doen
Hoe dan ook zijn we van mening dat het project de moeite waard is, al was het maar omdat we het contact verbeteren met de theoretische wiskundigen op de campus en zo nieuwe mensen kunnen leren kennen of dat meer wiskundig inzicht vergaren of zelfs omdat we zo misschien wel een mooi project op onze cv kunnen zetten. Bovendien moesten we tijdens wetenschapelijk programmeren maken voor de goede, maar gebruiksonvriendelijke library GSL.

De software die we maken moet buiten eficient dan ook vooral gebruiksvriendelijk zijn. Hieronder verstaan we dat onze software gebruikt moet kunnen worden door ingenieurs, biologen, ... zonder al te veel kennis te moeten hebben van de programmeertaal waarin onze library wordt aangesproken.

Ook richten we ons op de Informaticastudent van morgen. Het plan is om alles uitgebreid te documenteren en wiskundig te onderbouwen. Wiskunde-onderwijs in het middelbaar zakt immers aan een constant tempo in niveau, en velen hebben hierdoor moeite met de korte verwoordingen die professoren soms gebruiken om iets uit te leggen.

aanpak eerste "ontwerpfase" IdeeŽn, we hebben ideeŽn nodig
Ook gaan we het project deftig aanpakken, we willen er met een 9-tal mensen aan werken in onze vrije tijd en van zodra het project opgestart is zullen we wellicht ook andere informatici aantrekken die mee willen werken aan het project. We gaan hier de standaard software technieken gebruiken, de nodige requirements ontwikkelen etcetera.

Momenteel zitten we in de fase waar we bespreken welke features we willen. Zo willen we al gauw matlabachtige functionaliteit bieden met vectoren en matrices, willen we exacte arithmetiek ondersteunen, willen we een op matlab gebaseerde syntax ondersteunen in een live interpreter die goed integreert in c++. Op termijn maken we misschien zelfs een precompiler, die op voorhand statische optimalisaties uitvoert. Deze ideeŽn zijn er maar enkelen en we kunnen er nog veel gebruiken.

We zijn op zoek naar nog veel meer ideeŽn, geen idee te veel, dus als je iets weet, stuur een DM om laat een reactie achter, geen idee is te gek.

Na de examens ( !!! blijft uiteraard belangrijker!!! ) gaan we goed bekijken welke ideeŽn we willen implementeren in een eerste versie, gaan we hier requirements en use cases uit formuleren, gaan we beslissen welke licensie we willen gebruiken, welke tools we gaan gebruiken voor ontwikkeling en management. Het wordt allemaal een beetje aftasten, en we kunnen hier alle input gebruiken die we maar kunnen krijgen, we hebben hier uiteindelijk slechts een theoretische kennis over.

over de blog zelf
De reden waarom ik deze blog schrijf is omdat ik voor mezelf wilde bijhouden hoe het ontwikkelt, kwestie van misschien ooit anderen te kunnen helpen een project op te starten en te kunnen leren of ik het bij een volgend project anders zou aanpakken. Zodoende de vraag: is het interessant genoeg om een blog met de ontwikkelingen on line te plaatsen?
Voor mij persoonlijk wel, ik hoop alvast op nuttige feedback en dat anderen in de toekomst misschien wel mijn blogs kunnen gebruiken als rode draad of hulp om zelf een project te starten (of dat ze zien hoe het niet moet :p ).

Offtopic, alvast mijn excuses voor mijn wellicht gebrekkig taalgebruik in mijn blog, dit is mijn eerste blog: suggesties zijn altijd welkom via DM, de comments zou ik liever ontopic houden.