Skip to content

Post Mortem

Jonas Erixon edited this page Apr 3, 2018 · 1 revision

Post Mortem

Titel

DJ Wannabe (Jonas Erixon 2017/-06-07)

Abstrakt

Denna rapport handlar om mitt projekt som jag utvecklat under en 10-veckors period där jag använder mig av mina erfarenheter från tidigare kurser på Linnéuniversitet. Projektet har utvecklats med en SCRUM-liknande utvecklingsprocess. Projektet är en musikapplikation där man kan skapa musik utifrån redan gjorda ljudsamples. Applikationen är skriven i Javascript och använder sig av Web Audio API:t för all ljudhantering.


Inledning och bakgrund

Syfte/Mål

Syftet med mitt projekt var att, med hjälp av all kunskap jag fått ta del av och lärt mig under året som varit på Linnéuniversitet, skulle skapa en musikapplikation av något slag i JavaScript.

Idéen till att skapa just en musikapplikation kom från en gammal app till Sony Ericsson mobiltelefonerna vid namnet MusicDJ. Där kunde man skapa egna låtar med hjälp av färdiga ljudsamples som fanns i ett bibliotek och sedan spara ner dom som en ljudfil.

Så målet med min app var egentligen att utveckla vidare med den grundidéen i baktanken men att göra det hela lite mer ”DJ” aktigt av det hela med att kunna spela in låten i realtid och även lägga till diverse ljudeffekter på kanalerna under inspelning. Jag ville också att användaren ska kunna ha friheten under sitt musikskapande med drag & drop logik vid hantering av alla ljudsamples.

Tekniker som används

Appen är skriven i Javascript där jag valt att använda mig av jQuery för att på ett enkelt sätt implementera drag & drop funktionalitet till alla ljudsamples när man ska hantera dom i kanalerna. Och jag använde mig av Web Audio API:t för all ljudhantering. Browserify användes för att göra det möjligt för mig att dela upp koden i separata moduler så gott det går.

Arbetssätt

I projektets början så skapade jag min Projektvision innehållandes baskraven och min Product Backlog, så att jag snabbt och enkelt kan få en bild av vad det är jag ska arbeta med de kommande veckorna och vilka tekniker jag kan tänkas behöva använda.

Därefter så började jag arbeta iterativt med Sprintar som pågår 1 vecka med ett gruppmöte med en handledare där vi diskuterat om föregående sprint och även planeringen för kommande vecka. Jag har samtidigt versionshanterat mitt projekt genom att använda mig av GitHub.


Positiva erfarenheter

Det som jag upplevt som positivt under projektets gång är att arbeta i iterationer. Jag brukar annars ha väldigt lätt för att bli överväldigad av allt som måste göras i ett projekt men det har förhindrats till stor del av att göra upp en plan för varje vecka. Jag tycker också att utvecklingsprocessen går ut på att beta av en lista med alla krav som finns i Product Backlogen.

Handledartillfället var också till stor hjälp vid tips för dokumentation. Men även att bara berätta om vad man gjort och saker som planeras att göras under iterationen kan lösa vissa problem eller komma på nya idéer.

Under de första veckorna av projektets gång så använde jag mig av ett npm paket vid namn HowlerJS som mer eller mindre är en abstrakt version av Web Audio API:t. Men allt eftersom jag fördjupade mig i det paketet så insåg jag att jag borde ta tillfället i akt att ta tillfället i akt och använda mig rent av endast Web Audio API:t. Så det är en positiv erfarenhet tycker jag.

Jag är också glad över att fått möjligheten att jobba med ett valfritt projekt så att jag fick chansen att testa på, för mig, nya tekniker som Web Audio API:t.

Jag kommer definitivt att använda mig av en liknande utvecklingsprocess då jag tycker att den känns väldigt effektiv.

Negativa erfarenheter

Jag var, särskilt under de första veckorna, väldigt dålig på att planera min tid för veckan och att skatta tiden för särskilda moment.

Jag gjorde också en hel del så kallade ”fullösningar” i början för att jag snabbt ville se result på projektet. Det visade sig däremot, uppenbarligen, vara ett mycket dåligt sätt att utveckla på då det väldigt lätt blir fullösning på fullösning. Till slut så upptäckte jag att jag var så illa tvungen att omstrukturera koden och då gick väldigt många timmar ner bara på att ändra strukturen mitt under en sprint som oftast var tänkt för implementation av funktionalitet. Men det är något som jag tar lärdom och förmodligen kommer att ha med mig till framtida projekt.


Sammanfattning

Efter att ha arbetat med min applikation nu under den här perioden har jag lärt mig en hel del om utvecklingsprocessen och hur pass viktigt det kan vara att använda sig av liknande metoder.

Jag känner att jag ändå är nöjd med hur applikationen blev i slutändan, även om den inte är särskilt originell. Jag kommer ihåg att när jag satt och funderade på baskraven att jag inte hade någon aning om hur det här skulle sluta. Men det slutade med att jag lärt mig en hel del om ljudhantering i Javascript och att arbeta med SCRUM.

Clone this wiki locally