Me, But Better (at least in Software Engineering)

12 May 2022

“Maybe it’s because of COVID?” I’ve asked myself this for months whenever I doubted if pursuing a CS degree was the right fit. Completing ICS 314 confirmed that even if it doesn’t feel like the right fit, I am capable of getting better at it. Working on the final project with a few of my classmates really brought everything full circle. For a little over a month, utilizing everything we learned throughout the semester was a true testament to the significant amount of things I’ve learned and how I’ve grown into enjoying the journey of software engineering.

Copy-Paste, But Better

copy paste photo Never in my life has copy-paste been encouraged until this class. In other classes, copy-paste is seen as plagiarism and an obstruction to your own education. Software engineering proved that copy-pasting code is one of the best skills you can have and should use.

Open source code is public code that anyone has access to. It helps developers learn, refine their own skills, and discover new implementations they never thought were possible. Using open source code also emphasized that people are our greatest assets. It created a community that strives for delivering and sharing quality code, faster. Some argue that it stunts the creative growth of new developers, but I personally think it helps create a community that concentrates on producing its best work without being distracted by a reputation or ego.

Having access to all of the final projects across every section was extremely helpful. Creatively, it helped my group choose what we did want, and did not want, and how to mold some aspects to better fit our project. Practically, it made understanding the coding easier because each project had a homepage describing what each page did. Sometimes groups would approach the same functions differently and that was a learning opportunity in disguise.

Group Projects, But Better

superman and kryptonite photo Group projects, especially in college, have the worst reputation. I used to think that group projects never work because there is always an imbalance of work amongst members. The only way I knew how to do a group project was to split the work equally among every member and be lucky enough that you get into a cooperative group.

After being introduced to Issue Driven Project Management (IDPM), I realized that splitting the work equally and expecting equal contribution is not the only way to organize a group project. With IDPM, tasks are distributed based on strengths and weaknesses, rather than by quantity. We used this in our final project and I was amazed at how much work we were able to get done. Members were able to choose the issues they felt most comfortable with and I noticed that issues were being completed faster. Since we always knew there would be at least one member who is insightful about some part of the project, other members safely explored out of their comfort zone by taking on tasks they were originally weaker at. Personally, I struggled with understanding how to do testing and avoided it in milestone 2. At some point, I felt uncomfortable with my incompetence, so I chose the issue related to testing. Even if I couldn’t complete it, my teammate was there to help me learn and point out the holes in my understanding. I failed a bunch and didn’t understand everything, but it’s not common to be practicing a skill with low stakes on something high at stake, like the final project. Using IDPM crushed the expectation of “knowing everything” and, instead, promoted teamwork, efficiency, and trust.

But don’t misinterpret my experience. IDPM and other project management structures can’t solve every problem with group projects. Going through those struggles is the best way to learn. Learning how to work with others and share responsibilities in ways that are best for the goal of the project is a skill that will be used in every field of work. We never truly never do anything alone and working in a team is inevitable way to improve as a software developer.

Commiting to Moving Forward

I did not expect to learn so much about everything in a single software engineering course! My journey of learning is just the beginning and with the experiences I’ve learned here, I am very confident in myself to make the most out of college, my career, and my life.