# Individual Recording Almost done y'all. You just need to record a video of yourself speaking about the questions within the "Team" section of the [demo](https://www2.cs.duke.edu/courses/compsci308/current/assign/04_final/part5.php)page. Try recording with zoom so we cah get a more consistent quality and let me not have to learn how to deal with different resolutions lol. When you're done recording your video, upload it here: https://drive.google.com/drive/u/1/folders/1B--xZfKr20JJhWlg_TvSNF3fpBWJ63qQ lmk if the link doesn't work, I gave share access to the same gmails we used yesterday. Here are the questions you should answer: ### Scrum > Individually, share one thing each person learned from using the Agile/Scrum process to manage the project. Oliver, could you also answer the question in addition: >contrast the completed project with where you planned it to be in your initial Wireframe and the initial planned priorities and Sprints with the reality of when things were implemented ### Time Line There are 2 questions, we all have to answer both. 1. > How each person was involved or learned about it later Talk about how you responded to ~~each of the events~~ I think we should only talk about one, in the interest of time, listed on the [time line](#Time-line-information) 2. > Individually, share one thing each person learned from trying to manage a large project yourselves. ### Culture > Individually, share one thing each person learned about creating a positive team culture. I'll answer this in addition: >describe specific things the team actively worked to improve on during the project ### Team Contract > Individually, share one thing each person learned about how to communicate and solve problems collectively, especially ways to handle negative team situations. Robert could you also answer: > revisit your Team Contract to assess what parts of the contract are still useful and what parts need to be updated (or if something new needs to be added) ## Time line information Talk about how you responded to each of these. You can use some of the stuff I wrote down about each if you would like 1. Lost a teammate Earlier on in the process, after the first demo, one of our teammates couldn't continue with us. We were fortunate to have that happen earlier on so that we could reorganize the project to suit that. 2. API Redesign After we lost our teammate, the person assigned to work on his portion of the project got very nice ideas on designing ways for the internal backend API to interact. We were already fairly set on the API design we had before, but decided to go ahead and make the change. This required a lot of work on the part of creating the change (moving from data and logic in one class to separate). This required a lot of explanation for the entire team because this would alter a lot of the internal backend APIs. Overall, however, this made the job of updating the state of objects much easier since we had classes that could update each game object based on the data that they tracked for that object. (for example an object that is supposed to fire a gun with a specific bullet type can do so in a potent way. 3. Engineering classes 4 people on this team are taking project based engineering courses, and this meant that a lot of us ended up having our time split between finishing an ECE project and this one, especially towards the end of the second sprint. To accomadate for this and the increased business we started meeting more frequently for shorter intervals. Some of us would meet in the morning for an hour and some of us at night and we'd try to keep topics focused so people could continue doing what they needed to for other courses also. 4. Obscure bugs The day of the second sprint presentation we wanted to add on one more feature which should've taken no more than 5 minutes to hook together. Because we heavily use reflection, strings become a very critical part of the code and source for bugs. We had one particular issue in which everytime we tried to instantiate a class through reflection its type kept showing up as the base or super class instead of the subclass which had the needed data. We worked from 10AM to around 2PM trying to figure out where the problem might have lied. This required every teammember since we were walking through the code entirely to try and find whether problem area was in how collision events were triggered, how systems accessed data, how we used reflection. It all came down to us missing an 8 letter word before the base class (abstract). Because we didn't declare a class as abstract it did not through the necessary errors when we instantiated it directly using reflection. We had already gone 10 pages deep into learning about type erasure and compiler technology before finding out the simple, statuc solution to our bug. Being able to debug things such as this as a team was very critical as we all needed to bring our understanding of how our specific parts were implemented in order to efficiently assess where problems may lie.