Stap 3, bepaal de stappen
Welke stappen moet je allemaal nemen om het project af te ronden?
Om te kunnen bepalen hoeveel tijd iets kost en wanneer het klaar is, helpt het om je project in stappen op te delen.
Opdracht
Stel je moet een CRUD maken voor, -laten we zeggen een te-laat-kom-system. Dus je wilt bijhouden van alle werknemers hoe laat ze binnenkomen 's morgens. Het systeem moet responsief zijn en op een mobiel device draaien. Je gaat dit in Yii maken. Houd er rekening mee dat in Yii een CRUD systeem vrij snel kan genereren (dus zonder code te tikken).
Je moet het invoeren van de te laat meldingen zo eenvoudig mogelijk maken en gebruik maken van drop downs om in zo min mogelijk aantal handelingen een te laat melding te maken.
Wat schat je hoeveel tijd dat kost. Denk hier even over na en probeer in te schatten hoeveel tijd dit kost. Heb je een aantal uren in je hoofd, schrijf dit op en ga dan verder.
Laten we nu het volgende eens bekijken.
- Overleg met opdracht gever wat er precies moet worden vastgelegd in de database.
- database opzetten met PHPMyAdmin voor het te laat kom systeem met de tabellen te laat voor de tijden en een tabel waarin alle werknemers staan.
- Installeren nieuw Yii project
- Maken model met de Yii model-generator.
- Maken CRUD met de Yii model-generator.
- Aanpassen 4 CRUD schermen voor te laat meldingen.
- Aanpassen 4 CRUD schermen voor het registreren van medewerkers.
- Te laat meldingenscherm aanpassen voor eenvoudige invoer (dropdrowns en dergelijke).
- Testen op laptop.
- Testen op mobiel.
- Laten zien en opdracht gever.
- Laatste wijzigingen maken.
Zet nu bij elk van deze taken een aantal uren, tel deze op en kijk hoeveel je afwijkt van de eerste schatting?
Vraag: wat is je conclusie?
We hebben het bijvoorbeeld al eerder gehad over een styleguide. Het maken van een styleguide is een stap, het overleggen met de klant of je project leider en het laten goedkeuren van je style guide ook.
Zie het zo, jouw baas, klant of projectleider denkt dat een website maken in een paar uurtjes klaar is. "Zo moeilijk is het toch niet met ChatGPT", zegt hij de hele dag. Maar jij weet dat je soms uren bezig bent met een klein stom foutje. Of dat je phpmyadmin weer eens de geest geeft en je alle opnieuw moet installeren.
Dus jij moet zo goed mogelijk uitleggen wat je allemaal moet doen zodat je voldoende tijd krijgt om alles te doen.Dat betekent dus dat je je project zo goed mogelijk moet gaan verdelen in hele kleine stapjes.
Dus niet
"Planning maken, ontwerp maken, overleggen, bouwen en testen, klaar."
en ook niet
"computer opstarten, muis aansluiten, VCS opstarten, code openen, ....."
Maar iets ertussenin, bijvoorbeeld:
- Opdracht doorlezen, bepalen of ik alle begrijp en vragen opschrijven.
- Requirements / eisen opschrijven en bepalen of er nog vragen of onduidelijkheden zijn.
- Opdracht met opdrachtgever doornemen.
- Database ontwerp (ERD) maken en in ontwikkelomgeving plaatsen.
- Ontwerp maken van User Interface. Maak style guide met plaatjes
- Overleg ontwerp met opdrachtgever.
- Maak eventuele aanpassingen aan het ontwerp.
- Bepaal welke schermen er moeten worden gemaakt, beschrijf deze allemaal.
Geef ook enkele voorbeelden van hoe een scherm er uit komt te zien. - Bepaal of er extra functionaliteiten in een scherm zitten. Bijvoorbeeld bij datum invoer een datum widget, of het kunnen sorteren van een overzicht. Deze functionaliteiten kosten extra tijd en worden daarom apart genoemd.
- Bepaal per scherm (of bij grote applicaties kan je schermen ook groeperen) hoeveel tijd het kost om dit te maken en te testen.
- Als alles klaar is, dan testplan maken.
- Testen uitvoeren volgens testplan.
- Aanpassingen maken (nav testen) of dingen die tijdens het ontwikkelen naar boven zijn gekomen.
- Opleveren.
- Eventueel nog een paar laatste wijzigingen nav oplevering.
- Factuur versturen :)
Opdracht
Maak nu zelf een stappenplan van de Laravel Stock applicatie die je vorig jaar hebt gemaakt.
Eis
- Zorg dat je minimaal 10 stappen benoemd.
- Ten minste de helft van de stappen zijn specifiek. Dat betekent dat deze stappen niet voor een ander willekeurig project zouden kunnen gelden.
Voorbeelden
Opzetten database |
Niet specifiek |
Opzetten database met de tabellen inkoop_order, factuur, klant en order_boek. |
Specifiek, geldt niet voor een ander project. |
Maken loginscherm |
Niet specifiek |
Maak login dat is gekoppeld aan Canvas waarbij gebruikers dan kunnen aanloggen met hun schoolaccount. |
Specifiek |
Inleveren
Stappenplan van de Laravel Stock applicatie die je vorig jaar hebt gemaakt in PDF.