Saturday, 24 March 2012

Blog #3 - Reflection on Project Development


It has been many weeks since I had began on this long journey of the CS2103T Software Project Development. During this journey, I have faced difficulties at the the phases, Implementation and Documentation, and through these phases, I have managed to pick up many learning points which will help me in future software project implementations. In this post, I will be listing out the learning points that I have been able to pick up from the two phases, Implementation and Documentation, and how each of them can help me in future software implementations. 

Firstly, I realized that having to do both implementation and documentation of a software concurrently is not a simple task. This is because implementation itself will take a considerable amount of time and this somehow hindered my documentation progress of the modules which I had developed. Hence, I often had problems trying to make sure that my documentation is extensive enough to fit my implementations. This lesson has taught me that there are two options to take when it comes to such a case. One option is to balance the amount of effort and time put into implementation and documentation such that I must be able to implement the software modules to a certain extent and then document them in the remaining amount of time. The other option is to determine who should take up the role of solely documentation of  the software and its implementations so that the rest can just concentrate on the implementation without having to pause in between the various module implementations. These two ideas which I manage to derive after my experience is able to help me significantly for future software implementations. This is because I think that either one of the ideas will be able to help one to maximize their time to complete the requirements for both software implementation and documentation.


Secondly, during the Documentation phase, I realize that for a software project implementation, there are many things to document on and there were many times that I was very unsure on what should be documented so that the software documentation would be sufficient enough for its readers to comprehend the internal structure and processes of the software easily. This experience, in my opinion, would be the hardest thing in any software implementation. This is because it is easy to implement a software but to translate both the internal structure and its processes perfectly is often very complex and difficult. Hence, from this experience, I have learned that to do up a software documentation that is simple to understand and yet informative, I have to prioritize what is important and obviously place myself into the shoes or position of a reader and try to comprehend the contents of my documentation. This method of prioritization of information is able to aid in the success of future software implementations.


In conclusion, this CS2103T Software Project has taught me many lessons worth learning from. This is because in the past, during my days in the polytechnic, I have worked on projects that were either on software documentation or implementation, but never both components in the same project. Therefore, this project has allowed me to gain a valuable experience that will be useful for me in future software implementations.





Saturday, 18 February 2012

Blog#2 - Reflection on CS2103T Project

In every culture, team or organization, the problem of not being able to understand one another arises from the fact that two individuals in the process of communication tends to misunderstand one another due to their different perspectives on an issue. This problem is considered detrimental to any project team as it will cause the team members to deviate from their original purposes.

As such, it has been three weeks since our team's first meeting for the CS2103T Project. During these three weeks, our team had many meetings that were often had long debates on a certain issue. For example, the desktop utility that we are supposed to develop that is be able help an NUS student manage and track the various planning and execution processes when they organize an event. Therefore, the utility must be able to save all the events organized by a student and the changes made to any event plans. In order to realize this, our team had decided to use the concept of object serialization that is able to store the state of the various objects created when the utility is closed. Initially, I thought that everyone in the team knew the true intent of this concept. However, during one point of the discussion on this concept, I realized that I could not seem to understand what both Zhang Xi and Qin Chuan were trying to explain to me.

In such a situation, I kept trying to re-explain my idea of using object serialization but the issue still remained stagnant and that made all three of us even more confused. After much discussion, we finally understood why we had problems understanding each other. This problem was basically the different perspectives all three of us had about the use of object serialization. Both Qin Chuan and Zhang Xi thought that whenever a user of the utility makes changes to their data, we would need use the idea of object serialization to save the changes immediately, however that's not the case as we would only need to do so once the application has been closed. 

This experience has led me to ponder on whether did we try to synchronize on our idea or concept of using object serialization for the implementation of this utility. Evidently, we have not and I think in future discussions or meetings, we should do our best to make sure that our thoughts and perspectives are not interpreted differently among one another. Also, we should also bear in mind that no matter how long each debate may take, we should always ask ourselves what is our purpose here and how can we achieve the ultimate goals of this project.

In conclusion, I feel that in a team every team member should be able to synchronize their thoughts and ideas so that the smooth implementation of the project can be achieved. Having said so, I really do hope all three of us will be able to avoid such situations in the future and continue to reach our goal of completing this project with a great satisfaction.

Friday, 27 January 2012

Blog#1 - Communication and Team Behaviour

In my perspective, I perceive communication as a process which allows an individual to share, transmit or even pass on information, knowledge, and experiences to other parties involved in the circle of communication. In addition, individuals within are able to know more about each other and at the same time learn from one another to the point that everyone can leverage on one another's knowledge or capabilities.

However, in order for communication to be considered successful or pleasant for those involved in it, the behaviour or attitude of the involved individuals must be correct and positive. In short, successful communication can only be achieved when those involved are clear on what they are trying to attain at the end of the process.

In light of this, our group had a couple of meetings over the past three weeks. These meetings were focused on the various tasking that we had to complete. Among all the meetings that our group had, there was one that was very fulfilling and this meeting was also the first meeting that we had for our CS2103T - Software Engineering Project. The reason why I have stated so is because I personally feel that having not known both of my group mates (Zhang Xi and Qin Chuan) before until I took up this module and having to work together on a project that requires great teamwork and commitment, pulling off such a feat would not be easy due to a lack of understanding of one another. However to my surprise both of them were very friendly and open to ideas that were brought out on the table for discussion.

Both Zhang Xi and Qin Chuan were very engaged in our discussions during this particular meeting, they were very quick in their response to my suggestions and in these responses, there were times that they were able to highlight certain important areas of the project requirements in which I had overlooked. This showed their level of positiveness during this meeting where the essence of a successful communication was basically thriving and this also agrees with what I had mentioned earlier about how communication can be considered successful if those involved have the right and positive attitude.

In conclusion, my experience throughout the meetings that we have had in the past three weeks were really pleasant as I was able to once again experience working with people who were very interested and committed to what they were working on. Also, I feel very contented and grateful that I have such great team members. This is because in the past, especially during the time when I was still studying in a polytechnic, I often had members in my team that failed in terms of commitment, trust and responsibility. I look forward to have a wonderful working experience with both Zhang Xi and Qin Chuan as we continue to move on in this module and hopefully from the teachings of this module, we would be able to achieve our goals for our projects.