During my MSc project I was attempting to work out how I could invoke remote method invocations on a program written in Java from another particular program written in SML (a functional programming language). The problem was trying to establish what would be the best way to get the two programs to communicate.
The key to gathering the relevant information was to be systematic. The first phase was to try and establish if there were any standard ways that may allow for two programs to communicate in the way that I needed. I knew from my previous reading that the Java language provided for remote method invocations with Java RMI. This was used as a starting point for research.
Further information was gathered through whatever means available like the Internet and books that focused on communication technologies. I had to assess the also the possibility of having to hand write the communication between the two programs that I had.
How did you analyse the data collected?
The focus in the analysis of the data collected was to make a decision on which was the best route for solving the problem that I had. The important factors that were important to my needs software needs were clearly established. I needed the communication problem to be solved in the simplest way possible and cater for my exact needs. For example, I disregarded using Java RMI because it was Java specific whereas I needed something that worked with programs in different languages. Further, I could not use the CORBA technology since it would not support the SML language and it seemed that it would overcomplicate matters.
What was the outcome?
I decided that none of the standard mechanisms that I researched were appropriate to my very specific problem. The solution was thus to write the communication process by hand. This way it would not only be specifically designed to do exactly what I needed it to do but it would also turn out to be a lot simpler.
Through the systematic and analytical approach I was able to provide a mechanism that allowed a program written in SML invoke methods on a Java program that existed in a remote location.
Q2 think of an occasion when you were required to explain something technical or complicated to a person or group who lacked relevant knowledge on the subject.
Who was your audience and what information did you need to explain?
My audience was fellow students in my MSc IT course who were struggling their Java programming. I needed to explain some of the fundamental concepts of the language that they did not grasp. This included things like how methods and classes are used and the motivation behind them such as how they vastly simplify programming.
What difficulties did you get experience in getting your thoughts across?
The main difficulty that I had was that they were not naturally interested in the subject that I was teaching them about. Simply telling them facts was never work in getting the message across. I had to be as imaginative as possible and try and draw as many diagrams as possible or come up with some real-life analogies that they could relate to, and thus arouse an interest in what I was saying.
How did you know that you had got your message across?
The key was to try and get them to interact with me as much as possible. This way I was in a better position to gauge that they had understood what I had. I asked them for example to repeat back to me something that we had just gone over or ask them a specific question. Moreover, I was able to set them some simple programming exercises and see if they were comfortable or if I had missed anything out.
Q3 Tell us about a particularly effective team you have worked in
What was your role?
I was the team leader in a Software Engineering group of six people. My role was to co-ordinate weekly group meetings and try and get everyone to agree in which direction the group project ought to go.
How did you work with other people in the team?
The project was substantial and thus members of the team had to work on different parts of the project at the same time for optimum efficiency. Thus, excellent communication critical in the team effort. I had to make sure that ever member was very clear of the overall aim of the project and also keep a firm grasp on what each person was doing individually. This way I could make sure that everyone’s individual work would fit in with everyone else’s efforts overall. This way we could escape inconsistency in our final draft design.
How did you contribute to making the team successful and what was the end result?
I was able to measure very swiftly which group members were good at which tasks. Thus I was able to help ration out and organise the weekly tasks appropriately. Whenever, someone was unsure about an area that I had knowledge I was always ready try and explain.
By utilising my communication skills I was able to motivate the other team members so that we kept working hard until the final deadline. I was able in part to lead by example. I tried to keep as confidant as possible and meet the weekly deadlines that were set. I made sure that everyone shared my belief that we would complete the project with excellent results. When difficult decisions had to be made, I appeared as certain in the choices as possible so that my confidence in them would filter over to the other team members.