Postmortem – Creature Feature

Overview

Creature feature was a project focused on learning how to plan, implement, and utilize; Spatial Graphs, Pathfinding, and AI. Unfortunately my project fell apart in the first two areas, but I learned a lot about my own personal processes from it, leading to better project development down the line.

Planning

The project suffered from over complication of systems caused by planning issues.

Context: My overconfidence with the concepts that where core to the project. I tend to pick up on concepts quickly as they are described, allowing me to fall into the the pitfalls in my knowledge. This caused issues during the implementation phase, most of the systems required checks and direct references to other systems, that I did not asses. There was not enough attention to detail of how and why systems would need to communicate.

I would like to blame this problem on inexperience. It is true that this did play a role in the problem but the largest cause was negligence. I enjoy the act of writing code, it is exciting and interesting. Leading me to abandon documentation earlier than would be beneficial in most situations.

To better manage these in the future; I need to lean into the excitement of design, and stay my hand until I have a plan.(he he I did not even plan for that to rhyme..) Also need to plan better communication between my systems, as that is an area that I want to be a keystone of my personal skill set. Abstraction is such a powerful thing in OOP. It is like negative space in an image, one class not knowing about another should be a deliberate decision, not a side effect other parts of the design.

Implementation

The code suffered from trying to patch what would have been quicker and better if refactored. These issues extend from the planning issues but are not inherently caused by it.

The context: The time for this project felt more limited than it actually was and the Project was covering new complicated areas that I am inexperienced in.

A lot of the systems being implemented were things that I had not personally a tried before. As a result a lot of it was key for key tutorial copy. This is one thing I feel justified in blaming my inexperience. Spacial Graph Generation and Pathfinding are two very complicated subjects.

Things to be aware of moving forward; These systems specifically are things that will take some time to learn properly, and even then I know are areas that I do not natively “get” requiring a more rigorous play by play planning for reliable implementation in the future. Additionally, If I want to learn something quicker and better I should make multiple quick passes at its implementation, testing as I go.

Conclusion

I still have a lot to learn but I honestly feel that I this project helped me to grasp just how important it is when learning something new and complicated. Do the thing multiple times, in a short period of time. Get familiar with the concept in its implementation. Poke, prod, and test it. Additionally, abstraction and the conscious decision as to why two system do not interact.

Advertisements

Post Mortem – Bytesize

This project was not the best way to start, but I can say that I learned a lot about my work ethic coming out of a break.

Case 1

Lack of work hours resulted in lack of total work.

For the first two weeks(the timeframe of the Bytesize project) Outside of class I only completed about 3.5h outside of class. I believe this was caused by a combination of two main factors. The first being that I still feel like I do not have the necessary skills to be where I am today. A feeling that I have lucked my way through and have no right to be here. This is frustrating as I know that it is not true. As I have a lot of respect for my past and current facilitators. And I do not believe they would have let me progress to this point if they did not think I was capable. The second factor. Is that I did not feel that I entirely knew what to do with the project, but did not make more of an effort to reach out to my facilitator for guidance. That is on me, and requires me to be more proactive.

I have already begun to mitigate some of these. In that I have gotten some feedback for research tasks to motivate me to work. As researching is something that in the past has helped me get into a work mindset. Might be worthwhile for me to plan the start of each day to cover a short research topic. And to do with the skills garbage, I just need to have more faith in myself. And break things down until I feel that I am able to complete them. In the 5 minutes to midnight class, the facilitator covered a great way to approach tasks. By breaking them down, the same way that I have done in the past but in a more aggressively systematic way. This is something I feel will be beneficial and easy to implement upfront.

Case 2

Learning through Implementation.

One big thing that I have really clued into during this project is that I learn best through implementation. But it’s not that simple. I need to understand what I am implementing at least in its most basic form. This is not really a revolutionary revelation. As it is the basis for how this course is structured. In the past lots of my work has been a result of “just get it done” this has not been the best way to actually learn from my work. As a lot of the implementation has been other peoples solutions hacked together, to make it work. Now these solutions have worked but the real issue is that I have not truly understood as to why the solutions have worked. So I plan to make a stronger effort to dive in further to how all the little bits and pieces work.

Take Away’s

Short term: Start the day with some quick research for motivation. Systematically dismantle the task at hand until it is in its smallest parts. Make an effort to understand each of the parts.

Long term: I plan to keep tracking my progress and reflect after each project on how I went about implementing the solutions to the problems of past projects.