I cannot express the value of communication in the workplace, especially when working on a continuous-integration, continuous-delivery platform. With that said, there are many modes of communication with my mentors, supervisors and colleagues. We have a scrum meeting everyday to talk about issues, roadblocks and successes as well as opened many modes of communication through email, slack and even have plenty of documentation online on Confluence and other helpful online resources. It has definitely made the transition into interning at my company much easier.
In terms of how I communicate with my mentors, I have found it more useful to email and chat through slack since my mentors are usually busy with their own tasks. It gives them the chance to respond quickly and whenever they can as opposed to me going up to them and interrupting.
Continuing on the previous week’s work, I was attempting to get the builds of the two projects that I was working on to work together. Since I had made changes to both projects where one project depended on classes of the other, I had to make sure everything was correct then build the depended-on build first. This was frustrating as I had to keep making changes to the code because of previous tests that would fail because the test fixture was incorrect or did not have the correct values that I included in my tests. At some points, I had to completely restructure the tests to work using HTTP requests as opposed to directly interacting with the UI. Furthermore, I had to work with the SQL databases to insert values to create users on the system instead of creating users through UI code. This allowed me to see how enterprise database systems worked and the amount of layers that go through building such complex systems.
Being able to work with the many layers of the enterprise application my company builds allows me to see how complex such systems are and why it isn’t a one-man job. Many facets have to go into creating these applications like the object-oriented design and even system-level designs and architecture that is seldom taught at school. Of course, it has been frustrating trying to understand all of this, but I feel like it’s helping me gain a better understanding on the importance of system architecture and principles taught in core software engineering courses like 110.