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.