Assignment 1A Reflection 1

Principles of sustainability to create viable systems

For the first couple of weeks into my 12-week internship at iOn Sport, a company specialising in sports software, I was charged with low priority tasks which included researching new software stack technologies and changing user interface code on the live web application. This was my first time working for a software technology company and it was a daunting experience editing code that would affect the way the business would run.

My supervisor recalled our first interview which explored my worries of having little to no technical experiences in real software systems. He explained that giving me low priority tasks allowed him and me to test how I would fare with managing and completing tasks that are relativity easy before giving me bigger tasks. This method allowed me to go at my own pace and take as much time I needed to complete these tasks. It’s was a relief to find a company to help students like myself providing a safe learning environment on the job without being too intrusive by micromanaging my tasks every hour.

For the company to create a viable software solution, I was given smaller tasks for a few couple of weeks until I gained enough confidence to be an autonomous building code. Gaining this valuable skill allowed makes creating software sustainable as it provides assurance to the supervisor that I am happy and competent to complete a task to a standard that is acceptable without being constantly checked about my progress.

This became clearer when I was handed my first big task which took till the end of my internship to complete. Programming in this instance was a combination of trial and error, and a lot of googling. This brute force way of trying everything required a lot of perseverance and eventually took a toll on me when I reach one of the many roadblocks. Getting stuck at coding is an inevitable outcome that always happens. My supervisor told me, ‘if it doesn’t work, there’s always another way’. This concept of problem-solving stuck with me as creating viable systems requires code that doesn’t break. However, it slowly became not sustainable doing trial and error when I would spend hours to days to solve a simple problem. Being utterly confused, hitting roadblock after roadblock became tiring and weakened my moral to continue some days.

My supervisor saw that I had made no progress in the last couple of hours he suggested approaching the problem using abstraction. He explained that I would need to break the task into higher levels until its simplest form. By approaching the problem line by line, this method allowed me to keep track of what approaches I have already tried and pinpoint the problematic code and solve it. This demonstrated in order to sustainability create viable software systems I must be able to micromanage by tasks in an organised way that will allow make code the fastest and most deployable way.

In the future, I will aim to develop my micro-organisation skills by using abstraction to be able to explain my tasks at the highest level. This will allow me to look at problems at a new perspective. At university, I will apply this skill in hopes it will help me focus and complete assignments and tasks effectively and efficiently.