I developed this skill further by working with technologies that I had not worked with before. And by creating small test projects for these technologies.
For example, I created a small project that proved the concept of MQTT as a viable technology for live communication in the project.
Similarly, I tested out WebRTC by creating two small projects and Making them communicate and initiate a live call. This was then integrated into the main project that I was working with. But then encountered a problem with iOS integration. To test WebRTC on iOS I then created small projects to test different ways of getting WebRTC to work with iOS. I finally got it working with a native iOS build of WebRTC.
Due to the nature of the projects I was working on, there are a lot of moving parts in each project. Also, all of the projects work together as a whole as a bigger machine. So to explain the big picture and small picture required a skill I had not fully developed.
I learned on the job that effectively communicating the technicalities of the project is a very important part of the development process. I quickly learned to use analogies and to draw out the higher level system architecture to explain the process effectively.
Prior to the work term I had a problem with procrastination. I did get the work done on time. I just waited for a while to do so. During the work term I followed a system to lessen and lessen my procrastination.
The procrastination was mostly due to online distractions. Because my work on the computer, and I have to be online by nature of my work, I had to find a way to focus on my work. As my work increased, I worked hard to ignore and resist the temptation of the online world. This eventually became easier and easier to resist. And now I have less of a problem with distractions.