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.
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.
Hi Darren,
ReplyDeleteIn my point of view, the software documentation is an important part of software development and we are provided a good opportunity to practice both according to the study of CS2101 and CS2103T. Although the workload is heavy to implement the software and do the documentation at the same time, we are also benefited during the process, such as we gained skills to manage time more efficiently and we are equipped with stronger programming skills in a short time.
In addition, I think we still need to do the documentation for our own coding components. If we just make one person to dedicate to the documentation, that person cannot contribute to project implementation and also needs to spend extra time understanding other group members' codes which will significantly slow down the project progress.
This comment has been removed by the author.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteHi Darren
ReplyDeleteI believe it is a strategic move by NUS to let us take on a communication and technical module at the same time. The coursework from these two modules mimic real life software development. In this way, we get to experience the documentation and presentation aspect of software development too! This is not something that a normal computer science student will go through!
In addition, I find that for the documentation part, we have to take care of the content, the format and language at the same time! This take up a lot of our time but it also help us develop practical skill sets such as decision making, organization and communication! This is actually good as students had previously complained that NUS mostly focuses more on the theory than the practical aspect of education.