Saturday, 24 March 2012

blog #3, Reflection on Project Development


During the short 12 weeks that we have for this semester, I am glad to work with a fantastic team comprising of Darren Gavin, Zhang Xi and Faizan Abid for the CS2103T project.  Throughout this project, we have gained valuable technical skills in designing and implementing a software system. We have also acquired essential soft skills, such as communication and problem solving techniques, which is necessary when working in a team.  In the following paragraphs, I shall dicuss the lessons learnt during the development of the project. They include the preparation, project management and communication aspect of the project.

Preparation
Before embarking on a project, it is imperative to prepare and plan for the processes required to achieve the project goals. Change management is one of the most important processes in project development but it is often neglected. Change management seeks to introduce and approve changes to the project in a formal manner. In this way, it minimizes the impacts on the project and avoids distraction.

In this project, I have learnt the importance of change management the hard way. For example, in the early stage of the development, we have failed to include proper change management procedures into our workflow. As a result, I unwittingly undid changes made by Zhang Xi and Darren Gavin when I modified the code databases without consulting the team first.

Thereafter, we developed a system of early and continual evaluation, so that new additions of codes could be assessed and compared, at the earliest possible moment. This gave the opportunity for members to learn from each other and for changes to be validated against the project specification. I would recommend every software project team to include this step into their process workflow as it lowers the chances of mistakes when changes are introduced to the project.

Project Management
For the project management aspect of the software system, I have realized the significance of implementing a project in phases. Our team faced a manpower crunch in the early stage of the project. After consultation, we decided to break the project into phases and to concentrate all our effort into one phase at a time. This reduced the chances of our team spreading the resources too thin. This also allowed our group to review our progress at the end of each phase, and make the changes accordingly for the next phase. I would advocate teams with limited resources to go with this approach as it maximize productivity.

In addition, we also put in place a well-structured and documented agenda of meetings and internal deadlines. I feel that it is useful as it provided a clear framework in which issues could be monitored and debated, decisions made and communicated, in an effective manner.

Communication
To ensure effective communication, we employed a wide variety of communication methods for project discussion and information dissemination. These methods,include regular project meetings, facebook group and NUS email system. I believe this approach has helped our group to establish trust and create a conducive environment where innovative ideas are born.  

In conclusion, I have reflected on my experience for CS2103T project. I have detailed down the aspect of the project that worked well and also what we would do differently if we were to do a similar project in the future. 

3 comments:

  1. Hi Qin Chuan,
    I appreciate everyone's effort in the project when we faced the manpower issue and we achieved the impossible in the past 12 weeks. I agree that we managed our project in an efficient and effective way by breaking the project into several phrases. This is also a good learning point for me to apply to my future projects. However, in the aspect of communication, there are a lot of things that we need to improve on. For example, after the weekly meeting, we did not update our own daily progress to the whole team so that sometimes we did duplicate work.

    In short, we have a good starting point to develop a full software from nothing and I hope we all can create better products in the future.

    ReplyDelete
  2. Hi Qin Chuan,

    It is undoubtedly true that our team has met into different obstacles during these 12 weeks of the project implementation. However despite all these difficulties, we have managed to complete most of the tasking required of this project. Hence, this goes to show that our team has managed to achieve a feat beyond our very own capabilities. The lessons that we have managed to learn from our obstacles has proven to be useful to the entire team and because of these lessons, we were able obtain valuable learning points that would help us significantly in our future software project implementations.

    ReplyDelete
  3. Hi Zhang Xi and Darren

    It is true that we have a lot more to learn. However i think we did quite a good job as this is our first in-depth project we attempted during our NUS life. Furthermore, we were all strangers when we first started and do not understand each other.

    However as time pass, we have grown to accommodate and trust each other. I believe that is the crux to our relative success in the project. We trust each other ability to complete task in time. If there was no trust, one single person will attempt to do everything by himself/herself and not delegate work to other team members. This would delay the project progress significantly.

    In addition, as we trust each other,we dared to suggest features that are innovative but difficult in nature as we believed our team mates have the wills and abilities to complete it. This approach has won us praises from project tutor, who commented that our software feature are unique!

    My personal thought: With trust and determination, nothing is impossible!

    ReplyDelete