Sprint #1 - Making the Software Design Document
Product: CMS API
Sprint #1: June 10 - June 14 June 28
Scrum Board: Link
Deliverable: Software Design Document
Goals:
- Have a comprehensive Software Design Document prepared for the project - COMPLETED
- Have a high spec wireframes and user flow diagrams/journeys made for the Admin console - PARTIALLY COMPLETED
- Have a high level overview of the software architecture - COMPLETED
Method/Metrics:
The goal has been met once I’ve written up and published the design document and wireframes for the project. The goal is also to have the remaining sprints also already planned out.
Daily Scrums
Monday [06/10/2019]
Objectives Completed:
- Gained a more comprehensive description of what content will appear on what pages and a general overview of the navigation
- Made rough descriptions of user types and objects
- Poked around through wordpress to gain a better understanding of other existing popular CMS alternatives
Sprint #1 - Daily Scrum #01
Tuesday [06/11/2019]
Objectives Completed:
- decided to create wireframes and mockups using AdobeXD
- expanded on views and functions available for admin type Users
Sprint #1 - Daily Scrum #02
Wednesday [06/12/2019]
Objectives Completed:
- completed an AdobeXD wireframe of the side navigation and header
- decided on using Bookshelf.js for the project ORM
Sprint #1 - Daily Scrum #03
Thursday [06/13/2019]
Objectives Completed:
- n/a
Sprint #1 - Daily Scrum #04
Friday [06/14/2019]
Objectives Completed:
- investigated different software architectures and decided to base the project on microservices
- researched more information on designing and creating RESTful and GraphQL API's
Sprint #1 - Daily Scrum #05
Saturday [06/15/2019]
Objectives Completed:
- investigated the Business Rules concept and decided on just focusing on a system for Roles and Permissions
- Decided on creating an API Gateway to handle interprocess communication
Sprint #1 - Daily Scrum #06
Sunday [06/16/2019]
Objectives Completed:
- investigated and tried to figure out how deployment and installation for other contributers would work
Sprint #1 - Daily Scrum #07
Monday [06/17/2019]
Objectives Completed:
- discussed how to host client sites alongside the server
- discussed what the major sections of the SDD will be and split up the project into microservices
- started to dicsuss the data design, mostly in regards to GraphQL
Sprint #1 - Daily Scrum #08
Tuesday [06/18/2019]
Objectives Completed:
- defined what the API resources will be
- investigated and decided on creating an RBAC system for user permissions
Sprint #1 - Daily Scrum #09
Wednesday [06/19/2019]
Objectives Completed:
- started typing up the Software Design Document
- decided on where and how to store references for Project metadata
Sprint #1 - Daily Scrum #10
Thursday [06/20/2019]
Objectives Completed:
- continued working on the design document
- created outline and table of contents for the sdd
Sprint #1 - Daily Scrum #11
Friday [06/21/2019]
Objectives Completed:
- created a more comprehensive outline for the software architecture portion of the software design document
- created architecture chart/graph using the LucidCharts webapp
Sprint #1 - Daily Scrum #12
Saturday [06/22/2019]
Objectives Completed:
- added a 'design considerations' section for different parts of the sdd
- started writing the API Design/Reference portion of the sdd
- created data design chart/graph for the content management service using the LucidCharts webapp
Sprint #1 - Daily Scrum #13
Sunday [06/23/2019]
Objectives Completed:
- continued working on the architecture portion of the sdd
Sprint #1 - Daily Scrum #14
Monday [06/24/2019]
Objectives Completed:
- finished the introduction and architecture portions of the software design document
Sprint #1 - Daily Scrum #15
Tuesday [06/25/2019]
Objectives Completed:
- created data design chart/graph for the user and roles service using the LucidCharts webapp
- discussed and finalized authentication flow through the microservice architecture
- researched more information on RESTful API design including the resources and design process
Sprint #1 - Daily Scrum #16
Wednesday [06/26/2019]
Objectives Completed:
- determined URL endpoints for the API resources and methods
- finished the Data and API design portions of the software design document
Sprint #1 - Daily Scrum #17
Thursday [06/27/2019]
Objectives Completed:
- finished the interface design portion of the software design document
Sprint #1 - Daily Scrum #18
Friday [06/28/2019]
Objectives Completed:
- completed the first version of the Software Design Document
- completed first Scrum Sprint, but still need to write up and format summary and reports
Sprint #1 - Daily Scrum #19
Sprint Review
What went well?
- Since this was my first sprint, I don’t feel too strongly that I did anything that well. Creating a daily routine of creating a new Google Doc to write down notes and tasks did help me stay organized and motivated each day, although it made searching for previous notes a little less convenient (more on that later).
- I did an alright job of realizing I had trouble focusing from home at my desk, and trying to head outside to cafes for a change of environemnt which actually helped me regain focus.
What didn’t go well?
- I found it difficult to self-motivate and stay focused for longer periods of time. After completing a small milestone or portion of work, I found it all too easy to take a break or seek a distraction. I also found it especially difficult to simply stay home and work at my home desk, since it’s not a dedicated place for ONLY work.
I felt also felt reluctant from a lifestyle of only working from my desk at home, and constantly decided to leave my apartment for air or a change of environment. Coming back from breaks, I found it difficult to also manage and prepare meals and cleaning up afterwards.
A possible solution is to purchase or create a work timer and decide on set intervals at which I should stay focused for. (Maybe 2 hour working periods with an hour break in between.) - Apart from my lack of focus, I believe I also misjudged the amount of work required to do everything listed on my sprint agenda. As an excuse though, I still believe the work I set out to do was doable had I been at least more attentive and focused. BUT, if I’m working with new technologies and I’m doing assignments I have no experience doing yet, I should allow myself a bit more time to do more research and figure out the proper and efficient way of handling tasks. For example, I wasn’t prepared for the amount of research I need to do before writing out the document, and even then I’m still doing additional research as I’m still writing the document.
- I gave up on tasks I didn’t feel ready or prepared to do yet, maybe because I was still too worried about the next few tasks I needed to do? Specifically worried about the wireframing, I’m not quite sure why I stopped short of completing them. It was either because I felt too lazy to go through every page? Did I feel it was unnecessary? Or maybe it’s because I still didn’t know enough about the project to finish creating the wireframes. Arguably, creating well designed and aesthetic websites is a skill I don’t have enough experience in.
- I’m constantly rehashing and rethinking things I’ve already done. I’m not sure if I’m just double checking everything is fine, or if I’m doing things to feel productive. I should consider creating a consolidated page of notes rather than restricting everything to daily notes and referencing only when I need it.
At the end of each day, I definitely should just rehash or copy and paste everything I’ve finalized or done into one singular document. I should make it a point to not have to reference and sift around daily notes for information, and rather just that one single page resource. Let’s call tentatively call it a cheat sheet. Before segueing too far, rehashing things is fine as long as I’m at least learning or figuring out something new from it.
What to do next time?
- Actually block out and dedicate a set time and amount of time to ONLY do work. Considering making a personal work clock or log the hours I spend being busy and doing work.
- Actually block out facebook and other distracting websites when trying to focus on work.
- I need to be able to switch tasks when I feel like I’m getting blocked for other certain tasks. It might be too mentally straining to work on the same task for too long periods of time.
- Create and maintain a consolidated page of notes rather than creating a new document of notes for each day.