Reflection – Mind Mapping

Challenge:

I am a junior Electrical and Electronics Engineering student. Also, I double major in

Computer Engineering. During my summer internship, I was asked to work on a huge project

that contains large code blocks and performs some operations on a web server. I had to

refactor the main class in this software program. However, this class is the most important

one in the project because it manages all information about the customers of a company. I

needed to transform this software class into a modular form. So, people could work on it

easily. The code was composed of 3541 lines and it was hard to understand. Also, its methods

were so complicated and untidy. I wanted to fix this class, but since there were long code

blocks, it was hard to distinguish all blocks’ functionality. Also, all methods were dependent

on each other, and I needed to keep that order. It was a huge project and hard to visualize

without having a plan.

Selection:

I thought that if I had a clear and neat map that shows the functionalities and dependencies of

the methods used in the program, it would be much easier to see and implement things that I

wanted to do. Therefore, I use the mind mapping tool during my design thinking process.

Application:

Approximately there were 120 methods in this project. They were used for different

purposes. For instance, 40 of them were used to create a new customer profile, 40 of them

were used to create an account for a customer, 20 of them were used to find the details of the

customer, and 20 of them were used to update a customer’s profile. All of these methods

were written in a single file. Therefore, programmers had difficulty when they were trying to

find a method that they look for. They had to go over all 120 methods and find their desired

method. There was not any distinction between these methods, so there is not an easy way to

find a specific one.

I read all of these methods’ codes and decide for what purposes this method was used. Then,

I realized that there were four main types of methods: creating a customer profile, creating an

account, getting customers’ details, and updating customers’ profiles. Therefore, it was

logical to create a mind map with these categories. Mind mapping was good to use in this

case because there also were some dependencies between these methods. By using the mind

mapping tool for design thinking, I created a scheme to design the steps of my project. I

visualized the whole program by constructing a map with the relationships between the

methods.

Insight:

Thanks to the mind mapping method, I created a concrete representation of my software

program. I can see which methods are used for what purposes, and which methods are

dependent on another method. In this way, I can look at the program as a whole. This brings

me a chance to design a new refactored version of the program effectively. I can see the steps

that I should follow to reach a robust program. Looking at a code of 3000 lines is hard to

understand but seeing the whole program in a logical map makes the situation easier.

Approach:

My tool was an effective one for my challenge. It was enough to design a project step by step.

I could see the outcomes of my project clearly. However, maybe I can use the learning launch

tool for this project. This is because I needed to see the results and getting feedback on what I

have done. Therefore, the learning launch tool could be also useful for this challenge.

