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. 

Friday, 17 February 2012

Blog Post #2



Project management involves coordinating various aspects of a project in order to bring forth a positive result. Some of the aspects of project management that are particularly challenging are quality, manpower and scheduling. One notable example of project delays due to time mismanagement is the 2004-2006 Wembley Stadium project in London (Guardian, 2006).  After a few weeks into the CS2103T project, I believe that our team has met with a challenge (time management) similar to the example quoted. I feel that there are two main contributing factors to it, namely the underestimation of time needed and the setting of over-ambitious goals.

Firstly, as this is the first time we are undertaking a full-fledged software engineering project, we are unfamiliar with some of the tasks needed to be carried out. This causes our team to underestimate the amount of time needed to implement the various milestones of the project. For example, we assumed that we have sufficient time to complete the necessary subsystems by week eight. However, we are oblivious to the fact that we also have to carry out comprehensive testing on top of studying for our mid-semester tests.

Secondly, our team had initially set some over-ambitious goals that require a breakthrough to be made. For example, we had designed certain features that require complex algorithms to be developed. Thus we had to commit more resources to ensure the necessary algorithms were completed. As a result, other deliverable components of the project were neglected. This adds stress and demotivation to our team as the first deadline of the project is nearing.

Our team understands that we will miss deadlines and lose credibility if improper time management continues. Therefore our team has researched into proper scheduling and tactical time management techniques and came up with the following recommendations:

Step 1
Our team has to remove unnecessary components that were not part of the project scope. This is done so by breaking down  all the deliverable components  into activities and review them in full details. This procedure is needed to identify redundant, difficult-to-understand elements that take a long time to solve. The details of each activity may include:

-  Required actions to complete the project scope
 Required resources and skills
-  Required hours of duration for activities
  Known risks
-    Outputs of the work
-     Descriptions of the work packages
-     Supporting details

Step 2
After our team has reviewed the project scope, the team has to include time buffers into the new schedule to allow for project management administration, meetings, assurance testing, and the developing of supporting documentations. These factors may significantly reduce the time that we had for other modules. However our team finds it to be a worthwhile trade-off for the successful completion of the project.

In conclusion, I have gone through the factors that contribute to the time management challenge that we face and the possible solutions that we will adopt to ensure the successful completion of the CS2103T project.


Reference


Guardian, (2006), Row Break Out Over Wembley Delay. Retreived from  http://www.guardian.co.uk/uk/2006/mar/31/football.wembleystadium

Wednesday, 18 January 2012

Post 1: Communication during team meeting



According to Miller (1978), interpersonal communication arises when two or more individuals are in close proxmity, able to provide immediate feedbacks and utilize multiple personal senses. I feel that it is an apt description but will like to extend on its definition. I feel interpersonal communication, in addition, encompasses active listening and usage of written words and non-verbal elements to initiate, define and harmonize a relationship. It is more than a one time off courtesy behavior toward a salesman which we will never expect to see again. 


This definition suits the context of CS2101/CS2103T module where we are supposed to form a healthy working relationship with team members so as to develop a software project. Furthermore, if mastered well, it can help us in climbing the corporate ladder in the near future.

We had our first project meeting last Friday. The team exhibited good interpersonal communication skills which helped to create an effective team meeting. This aid in building enthusiasm and generating commitment for the project. As a result, i believe the group effort will accomplish more than what individuals can create alone (Salazar, 1996). The following shall details some of the interpersonal communications and team behaviors that transpired during the meeting.

Firstly, the team leader (darren-gavin) had done a fantastic job in faciliating the meeting. He led us through the various agendas, which were set beforehand, and assisted in keeping group members focused and productive. He did that by ensuring that every group members, regardless of quiet or dominant personality, had individual “stage time” to express their opinions and views about the project.

Secondly, we had done some research related to the project prior to the meeting. This preparation ensured that the meeting would go smoothly without having the need to start on a blank state. However we can share those supporting materials 24 hours/48 hours before the meeting. This is so that everyone will have some background information of what other group members will be presenting during the meeting and thus do not have to review those information on the spot.

Lastly, we had some disagreement over certain specification of the project. This occurred due to the ambiguous terms used in the project proposal. We debated over the issue objectively and did not resort to personal criticism. In the end, we agreed on an approach through democratic means (voting). As the meeting ended, the team leader further restated the decisions and actions that were agreed on, so as to prevent possible future dispute.

Furthermore, i will like to discuss on the issue of intercultural communication. This is an issue that we have to thread carefully. This is because our group comprises of members of disparate cultures (two Singaporean, one Chinese and one Pakistani). This may give rise to conflicts due to different perceptions across different cultures. I suggest we can hold team bonding activities so as to know each other better.

In conclusion, i will like to emphasize on the importance of effective communication and team dynamic in our project team. Every member of the team is dependent on all other team members. This is because in our project, resources (manpower) are limited and datelines are tight. If one member of the team break down and is unable to deliver, the group will not be able to achieve its stated goal.


References:

MILLER, G. R. (1978), The Current Status of Theory and  Research in Interpersonal Communication.

SALAZAR, A. J. (1996), Ambiguity and Communication Effects on Small Group. Decision-Making Performance.