Software Engineering II

09 Dec 2022

The beginning of fall semester 2022 was filled with much hope, because I am finally able to take an ICS class on campus and in person. Due covid pandemic, all of my uh experience so far has been online, and I was excited to finally meet and work with my peers in person and to apply the skills I learned from my previous software engineering classes. Being an advanced course, we were expected to work with a client, The DOE (department of education), to create an application that will assist their legal department in tracking legislative bills, create testimonies and documents and other features that will aid them in the legislative process. Having learned this gave me considerable apprehension and trepidation as those were features I have not learned to make. I had a few sets of skills I was comfortable with implementing, which were mostly creating intuitive and appealing user interfaces, having them work is still a skill I have yet to master. However I figured, this is the best way to push myself to learn, through trial and error.

Team Alahele

The early stages of team and application development were the most enjoyable for me. There were a few hiccups, such as miscommunications amongst my colleagues but it was all immediately mediated, chucked up as growing pains. I was grouped with six other talented developers who had their own unique skills to contribute to the group. I thoroughly enjoyed having to relearn javascript, only having picked it up two semesters ago for software development I. I was still fairly familiar with the language, although I had wished that I tinkered with it beforehand. I took advantage of React Bootstrap to the fullest extent, a free open-source CSS framework, which was effortlessly more aesthetically appealing and easier to use than React. With Bootstrap I was able to build hidden sidebars and dynamic tabbed interfaces quite easily.

Peer Reviews

Identifying problems within our codes was essential to producing a high quality product. Thus one of the essential practices I’ve learned in this course was the IDPM review process. Reviews from my peers provided me with an analytic status of my code and how my code performs against “best practices” in architecture, design, Javascript, Meteor, React, testing and UI. It gave valuable insight into the gaps of my understanding and provided me with ways to improve them. Besides reviews on my codes, reviewing and reading the reviews of the work of my colleagues was equally useful in understanding the preferred methods and practices in creating our project. I wished that we had more time to work on each stage of this review process as this was my first introduction to IDPM reviews. The material given was invaluable, however I prefer more opportunities to practice this process as I felt it had shown a light on my inadequacies that needed to be improved.

Industrial Strength Meteor

The learning curve in familiarizing myself with the new template, built to handle a huge and intricate project as ours, was very slow and laborious. I had wished that this was my only course this semester, I definitely needed more time to exclusively focus on this subject alone. Thus it took me a couple of weeks to finally understand what was required to have all the features to be functionable. In my earlier stages of learning the template, examples were crucial to understanding which files were needed, especially to create a collection. And in my attempt, I used other projects to compare and contrast how things work and what was possible. Sufficiently understanding the methods to create a collection culminated to my proudest achievement to date in this course, creating the testimony collection. Creating methods to add to the collection came pretty naturally afterwards, the most challenging part was finding a way to fetch and display data from the collection. A feat I have not yet found the answers to. Having only produced this much, I feel that I have more work to do to be able to produce anything functionable. There’s nothing worse than an application that’s all aesthetics and no function.

The Client

Clients feedback was crucial in the customization of the application and in maintaining expectations. Figuring out what worked and what didn’t, which features to include or exclude was clarified in every customer meeting. I had initially thought that the tasks given were beyond my current skills, but little by little as our project grew and with things eventually coming together, I came away thinking that with enough time, research and practice, I am able to meet client expectations.

Takeaways

Overall the state of our project at the end of the semester was lacking and barely passable. We were told in the beginning that a project as enormous as this was impossible to complete in just a few months. Although our results have left me unsatisfied, the experiences I gained are essential in grasping which skill sets are needed for me to be able to work in a professional environment.