IS480 Team wiki: 2011T1 Team Brownie Points
- 1 All about Brownie Points ★
- 2 Project Overview ★
- 3 System Overview ★
- 4 Project Management ★
- 5 Product ★
- 6 Project Summary ★
- 7 Reflection ★
- 8 Resources & References ★
- 9 Wiki Pages★
All about Brownie Points ★
- Aung Thu Wann - Project Manager
- Set project objectives, goals and milestones.
- Plan the project by determining the deadlines and responsibilities of team members.
- Initiate and schedule the project meetings.
- Ensure the team is on the right track and can deliver the functional requirements on time with optimal quality.
- Chew Lee Chen - Co-developer & Database Administrator
- Design, implement, maintain and repair the database of the client.
- Monitor and improve the performance and capacity of the database.
- Control the permissions and rights to the database users.
- Lynn Tan Min-li - Lead tester & Assistant project manager
- Optimize the quality of the deliverables
- Develop and run test cases to ensure that the system is robust.
- Keep track of the team's deadlines and milestones to ensure that the team is on the track.
- Update the progress of the team on Team's IS480 Wiki page.
- Convey the project deliverables with proper documentation, together with the Project Manager.
- Ma Myat Noe Mon - Lead Developer
- Determine the overview architecture of the project on application level.
- Design and code the functional requirements.
- Oversee the work done by co-developers.
- Work closely with testers for the debugging process and quality assurance.
- Su Myat Mon - Co-Developer
- Develop both Front-End and Back-End Components
- Assist the lead developer in developing the functional requirements.
- Interchange the roles of driver and navigator with lead developer and other co-developer.
Project Overview ★
Buy1Give1 is a global social enterprise that was founded in Australia in 2007 and is now headquartered in Singapore. B1G1 gives businesses the power to change life by connecting their products and services to over 600 projects from 28 countries. It supports, inspires and educates businesses globally.
As B1G1 becomes more established and well-know in the business worlds, more and more businesses have signed up with B1G1. With 600+ businesses listed as its clients, B1G1 has lost track of each client's connection level with B1G1. In order to fulfill the goal of nurturing giving culture in businesses, B1G1 needs to keep track of its businesses and stay close to them. Currently, B1G1 has no easy and practical way to understand the connection level of the business clients which ultimately leads to misinformed decisions regarding the communication channels and modes required for the clients.
Communicare is a highly customized, automated Communication and User Management System which will keep track of the users "connectivity" status at a macro level so that B1G1 can make more informed decision in regards to its different users. It will also streamline the communication process of B1G1 by automating the business process of email and report delivery. The messages sent out from Communicare Emailer Feature will also be tracked and analysed to help the B1G1 personnel in the decision making process which will ultimately help increase the connectivity.
Our main objective is to monitor and help increase the connectivity of the businesses with B1G1.
Our main project aims are:
- Provide B1G1 with intuitive measures of the businesses’ connectivity level on both micro and macro level
- Streamline and improve the current manual communication process of B1G1 by automating and personalizing the communication flow
Module 1: Connectivity Monitor
This Connectivity Monitor will keep track of various communication channels between the business and the company (such as phone calls, emails, site visits), and the giving behavior of the business which will ultimately be contributed to the business’s connectivity level.
It will allow the B1G1 admin to filter and see various connectivity statuses by company, by industry or by country and help him/her make informed decision. (For example, if the admin realizes that the connectivity level in Australia is very low, he can arrange Paul, CEO of B1G1, to give a B1G1 tour in Australia and he will even know which companies to target during this tour).
The Connectivity Monitor will also present the consolidated information of each individual company so that B1G1 personnel can apply more informed and appropriate giving encouragement actions for each specific business.
Module 2: Auto Emailer
B1G1 has a defined communication flow which requires certain communication messages to deliver to certain users at the right time. Currently this process is being done manually (or) being done by a COMS software which cannot target to the appropriate users' needs. Communicare handles this problem by automating the business process of message delivery to the users and make the process flexible enough that the admin have complete control over the process without having to spend a lot of time and energy on it.
Moreover, the messages sent out from the Communicare Intelligence will contain additional information provider such as "Did You Know" Facts or information inquirer such as "Polls".
Please see here for the complete business flow of B1G1 external communication.
This module is broken down into five separate sub-modules.
Module 2.1: Backend Email Scripts
Module 2.2: Email Triggers Settings
Module 2.3: Polls and "Did You Know" Facts Settings
Module 2.4: UserGroups Settings
Module 2.5: Upcoming Communication Schedule
Module 3: Communication Response Tracker
Communicare will be monitoring the emails sent out from its AutoEmailer system so as to analyze the effectiveness of Communicare Emailer system and how this system affects the connectivity and giving behavior of the users.
This module is broken down into two sub-modules.
Module 3.1: Rates Analysis (such as Email Open Rate, Poll Response Rate, Unsubscribe Rate)
Module 3.2: Response Action Analysis (such as Poll Answer Analysis, Giving Response Analysis)
Module 4: User Management Communicare comes up with this user management dashboard where admin can view the overall connectivity and important information of the company with a connectivity monitor and a trend chart and freely view and edit the user profiles.
- Usage of cron in the automation of communication flow
- Integration of Fusion charts with PHP to develop a highly intuitive connectivity model
- Connectivity tracking features with live data.
- Mobile-compatible email messages.
MySQL Query Browser
PHP: Pear Package
PHP: Pear Package
Files and Documents Sharing
SMS and Phone Calls
System Overview ★
- Connectivity Monitor/Dashboard
- Auto-Emailer Feature
- Email Triggers Dashboard
- Polls Dashboard
- DYK Dashboard
- Usergroup Dashboard
- Communication Response Monitor
- User Management Platform
Use Case Diagram
Before Acceptance: Storyboard V1
After Acceptance: Revised Storyboard
Project Management ★
Overview of Project Schedules
Click here for the detailed schedule breakdown.
|1. Technical Risks|
|Risk Statement||Risk Rating||Mitigation Strategy||Impact||Likelihood|
Learning Risks and Complexity of Technology used
Gap in Real and Tested Performance
|2. Schedule Risks|
|Risk Statement||Risk Rating||Mitigation Strategy||Impact||Likelihood|
Schedule Planned vs. Actual Risks
Member's Schedule Conflicts
|3. Scope Risks|
|Risk Statement||Risk Rating||Mitigation Strategy||Impact||Likelihood|
Business Requirement Changes
Please refer to Project Meetings for details regarding team's meetings.
|Task||Projected Start Date||Projected End Date||Projected Duration (Days)||Actual Start Date||Actual End Date||Actual Duration (Days)||Score Metric|
(Actual Duration/Projected Duration)*100%
|Define team name||29/5/2011||29/5/2011||1||29/5/2011||29/5/2011||1||100%|
|Define team logo||29/5/2011||29/5/2011||1||29/5/2011||29/5/2011||1||100%|
|Define house rules||29/5/2011||29/5/2011||1||29/5/2011||29/5/2011||1||100%|
|Create Prototype Images||10/6/2011||15/6/2011||6||11/6/2011||12/6/2011||2||33%|
|Total Average of Team Members||A||B||C||D||E|
|Total Team Average||(A+B+C+D+E)/5||Action Taken|
Click here for the tracking of happiness metric
- Our main delivered product is the completed and deployed web application "Communicare", which can enhance the daily business of B1G1. Other deliverables include a comprehensive user manual for the B1G1 administrator and the zipped file of our codes.
- Deployment: http://www.buy1give1.info/Communicare/
- Below is the summary table of project deliverables.
|Project Management||Minutes||Meeting Records and Minutes|
|Metrics||Schedule Metric, Happiness Metric|
|Analysis||Use case||Use Case Diagram|
|System Architecture Diagram||System Architecture Diagram|
|Screen Shots||Communicare System|
|Testing||Test Plan, UAT2 Final Results,UAT3 Final Results,Final Testing Page|
|Handover||User Manual||User Manual|
|Code||Client FTP Server, Deployed Project|
Comparison of main features from Acceptance and Midterm stage
- We worked closely with our client and our supervisor who have been very supportive and constantly give constructive feedbacks to see improvements in our project scope as well as features and usability. The change from one phase to another was drastic and it consumed a significant amount of time debugging and improving the functionalities as well as usability aspects.
Below are the notable features that had been improved throughout the project duration from acceptance stage to final stage.
Stability: Our maximum email output from our system is 500 emails. We had tried sending this from the live deployed server to test its stability and there are no known issues.
Performance: Although there are slower server-side oriented and query-heavy modules, we have configured so that they will be efficient enough for clients' needs. Please see Technical Complexity No.1 and 3 for more information of this configuration.
Usability: Various usability tests with participants including students from SMU, IT professionals and B1G1 board members are carried out towards the end of the project to ensure the usability of the system for all types of users.
Maintainability: We will be documenting a developer's guide and be ready to help if necessary for B1G1 to maintain the system.
Our finished system is deployed here at: Communicare note: We are not able to give out the log in information due to confidentiality issue.
- From start to finish, we conducted 3 UAT and after UAT 3, continuous testing each time a change was made.
Please see Test Plan for the test plan.
UAT 2 (20.09.2011 - 27.09.2011)
- In UAT2, we at first encountered difficulty in getting the client to consent to having other people test the system due to confidentiality reasons but we expressed that we would not be getting sufficient feedback to make it a better system with only testing done by the client. So after much persuasion, we got the client to consent to having 20 SMU students and IT Professionals test the basic functions that would not allow them to view customer data and trends and statistics.
- We made UAT2 to be task-based because we assumed that most people will not read the user manual first before using the system so we wanted to make sure it was very user-friendly. We used Quantitative (Average time taken in min, Number of Clicks taken, Difficulty Ranking (1-least, 5-most) & Qualitative measures (Areas of Difficulty, How we can make this better) in UAT 2 to gain as much feedback as possible and track the duration and number of clicks it would take to complete each task.
- Usability Testing: In UAT 2, we personally observed Ms. Masami test the usability of our system. We provided tasks for her to complete without reading the user manual and monitored how long and how easily she was able to complete the tasks. We also incorporated the changes based on her feedback and the difficulty she encountered in completing the tasks. Of the 13 tasks that we set for her, she was able to complete 5 with difficulty ( Difficulty ranking of 3 and more out of 5 - highest) and 8 reasonably easily (Difficulty ranking less than 3).
- Testing: We did testing on all devices to make sure that it's compatible with all devices. We did testing on Mac, Android, iPhone, Windows and Outlook which is the most problematic so we included a new link that will take the user to a new browser to get around the Outlook problem.
- Functionality Testing: We talked to the client and planned the testing so that we can test on the real server and test it in existing capacity. We also discussed the risks of testing on the real server with the client. Therefore we made the decision to test during time zones in the UK and Australia over the weekend when there was less user traffic from existing customers so that even if the system crashed the impact would be minimized. It was difficult to coordinate this as the time zones in the UK are Australia are 7 hours apart and the UK is 7 hours behind Singapore.
- For the actual results file for UAT 2, please see the following link: UAT2 Final Results
- We conducted UAT3 with 10 members of the B1G1 board at their board room at Raffles Place.
- Again, we used Quantitative (Average Time taken, Average number of clicks, Difficulty ranking (1 - least, 5 - most) and Qualitative (Areas of Difficulty, How we can make this better) Measures.
- On the whole, UAT3 results were much better than UAT2 results. The difficulty ranking dropped significantly, the average time and number of clicks taken was also reduced.
- For the actual results file for UAT 3, please see the following link: UAT3 Final Results
- More elaboration can be found on our final wiki at Final Wiki
UAT 2 VS UAT 3
- Due to the quantitative measures used in both UAT 2 and UAT 3, we were able to benchmark the Email Trigger and Poll functions to measure how much impact our adjustments from UAT 2 had. The following graphs show the difference in Average time taken in minutes, Average Number of clicks and Difficulty Ranking to complete the task. As you can see, the results in these 3 categories have improved significantly.
Project Summary ★
- We brainstormed and increased our connectivity functions to include a Control Panel; its function was to serve as a Connectivity Monitor – At a glance, the Control Panel presents the Users that are not connected, the Users’ Giving Growth and Businesses’ & Users’ Continuity. Zooming in, B1G1 personnel can simply click on the users displayed to bring up all of the users' details such as contact number, past giving projects, giving impact, B1G1's last contact with the user, email open rate. Upon viewing this, B1G1 personnel can then easily connect with users via Communicare’s web SMS service or any other method and log this easily in the user's details so that the data is updated centrally for the next person to view.
- We also expanded the Trends and statistics function – Its purpose is to allow B1G1 to filter and trend the connectivity of different groups of users according to Country, Industry, Membership type etc, over specified periods of time. This allows B1G1 to compare and analyze giving trend for different users. We also came up with an idea that allows B1G1 personnel to compare the trends and charts across categories. For instance, to compare the giving trends and statistics of Category A users: from Accounting industry in Australia, whose last giving date was less than 1 year ago; to Category B users: from Finance industry in Australia, whose last giving date was less than 1 year ago; to Category C users: from IT industry in Australia whose last giving date was less than 1 year ago; all the client has to do is replicate the filter panel many times while changing the Industry (or other) variable and many charts that show the trends across the Australian industries will be shown in the same page!
- We also expanded our AutoEmailer function - While previously its purpose was to send automated emails to users, we have ensured that the email and report content is now very customized and personalized and that the emails are automatically sent to the right users at the right time designed to encourage giving behavior, for instance, we made sure the emails would be sent according to different timezones in different countries. We then implemented monitoring for tracking and follow up purposes - once sent out, these messages are tracked and their statistics such as click through rate are analyzed to facilitate decision making process. We also used Bitly as discussed later, to track the location and timing of the emails opened.
Close communication with client
- We worked closely with the client. meeting in person at least once every one to two weeks, and communicating via email and Skype nearly every day. Doing so allowed us to discuss changes and seek the client's opinion and obtain continual input and feedback. We also made sure that we made sure to deploy the system by 3rd November 2011, which is 3 weeks before our final presentation, so that we would be able to see ready to use by 20th November 2011, one week before our final presentation. In addition, we came up with a more efficient way of communicating with the client - instead of the system sending weekly messages, we created a report that would be sent to the B1G1 administrator that would highlight the changes that need to be taken.
- We were constantly challenged by the change in scope of our project and addition of new features which were never thought of including during the acceptance stage. This meant we had to finish more work within a shorter period of time than expected. Refining the new features also took a lot of time as we had to brainstorm how to make them more functional and user-friendly for the client. We mitigated this by having more discussion during our meetings and brainstorming and preparing fully before each meeting so that we could generate better ideas together.
- We also faced difficulty in predicting the schedule and time allocation for the newly added functions as these were not planned for at acceptance. This made it necessary to adjust and update our schedule frequently and this got more difficult as the term progressed and our workload got heavier. We mitigated this issue by asking expert opinion on the members who had prior experience working on such functions in other projects (e.g., Visual Analytics).
- Successful tracking of email responses: We were able to track and measure the email responses from users so that we could measure their connectivity to B1G1 and thus highlight to B1G1 if it needed to take action to encourage greater giving behavior.
- Familiarized ourselves with complex drupal database structure: Our project uses Drupal database and its structure was inherently complex and took a lot of time to understand, especially since B1G1's database was very messy as well. After much effort and time, we were able to familiarize ourselves with the structure to build our system.
- More accurate forecast in time allocation for known tasks: We gained experience in scheduling and planning the duration of tasks based on complexity. Initially we were too optimistic and planned too short durations but we soon learnt to be more realistic and give careful thought to details so that we would not have to keep pushing back tasks if we fell behind.
- Managed to work closely with a client in a real business scenario: We communicated very closely with our client and met every week in person and skyped or emailed nearly every day to obtain constant feedback so that we could make our system better. We kept her aware of what we were doing and made sure she was very involved in each development. As the system would be used in a real life business scenario for B1G1, it made it all the more important to us to make it as good as possible.
Please see the Learning Outcomes.
As a team we learnt the following:
- Project management skills – How to plan and adjust our schedules to meet changing requirements, mitigate risks, use team metrics to improve the quality of our work and 3 UAT to constantly make the system more user friendly.
- Communication skills - How to manage client expectations, communicate well within the team, demonstrate our learning process, challenges and how we overcame them to supervisors.
- Teamwork - How to overcome conflict and leverage each other’s strengths to create synergy to value add to our project.
- Technical skills- How to architect our databases, user interface and emailer system to go above and beyond meeting the current needs of the client by allowing for future expansion and scalability.
Aung Thu Wann:
- As a project manager, it is very important to have a clear communication while working with the team members, clients and supervisor. Our team had gone through several changes in the project scope and it is the best if we can communicate efficiently. By efficient communication, it means that we must have a clear and open communication to achieve success. We cannot make assumptions and always good to double confirm. Our usage of social media, for instance, Facebook secret group feature, helped a lot.
- There can be unforseen changes and clashes in the schedule even if we plan carefully from the beginning. For instance, the school's new policy on Deepavali holiday made cancellation of classes and shifts in the presentations, subsequently followed up a series of schedule clashes. Thus, it is important for the team to always have small buffer times in every week to cover up the delay in schedule in the even that such clashes occur.
- It is very important that one handles the workload effectively and not to bring non-FYP related work or mind to the FYP table of meetings or group work. There were times when I experienced conglomerated workload from projects, studies and CCA commitments. However, I had to constantly keep in mind that having many commitments is never an excuse to work less on FYP.
- From the experience of 4 months of course work and a whole summer of preparation, I learned a lot in areas of both technical aspects of the project and personal development by dealing with the business client in a real world situation.
- If I can go back to the beginning (inception stage) of our project, I would effectively communicate with my team members and spend time to learn from them.
Chew Lee Chen:
- As a developer, the greatest take away is learning that while it is important that the functionality works, but perhaps, it is MORE important for the system to be user friendly and aesthetically pleasing to the eyes. The clients probably do not mind having one less function, if the rest looks professional and easy to work with. As in real life, look matters. For a system with poor user interface and poor aesthetic, people will judge it to be inferior and of lower performance than what it actually can do.
- Working with client makes me realized that communication between different parties is vital. After all, client is not developer and could not foresee what they really want, until they see the system and feedback on it. As such, I realized that even though we accomplished what the client had wanted initially, client would have a change of mind and decide to make amendment. Without proper communication, the system will always fall short of expectation.
Lynn Tan Min-li:
- As lead tester, I learnt that the client usually has confidentiality issues as the client will not want the company data exposed to other people but that we should not let this stop us from looking for ways to improve the system. For instance, in our UAT 2, after much negotiation with the client, we were able to test functions without exposing company data, with 20 SMU students and IT professionals.
- As a lead tester, I also learnt that when the test form is detailed and requires thought from the people testing the system, it is important to sit down with them and request each time that they fill in all the answers to your questions and put thought behind it. Otherwise, they are prone to leaving blanks or not giving much thought to answers when there are many questions.
- I also realized the importance of communicating a lot within the team and with our supervisor and client. This helped us to generate better ideas and obtain more feedback.
- As assistant PM, I learnt the importance of documentation so you can track progress and use that to set the agenda for each meeting so that everyone can come prepared and plan ahead so the project can be finished on time.
Ma Myat Noe Mon:
- As a developer, I had learned how to deliver not only the expected but far and improved systems to the clients within the expected time limits. Client communication is also quite important especially when the project is like ours and the clients end up being the users.
- Usability of the actual user might be different from the developer's perspective. During various stages of UATs, I had realized that what I had thought the optimal way doesn't necessarily translate into what is the best for the users and you should always get more opinions and suggestions on how to improve your systems.
- Technically, I had learned in terms of both programming skills and system architecture design skills. One thing I noticed is the need to constantly review your original system architecture throughout the whole project duration and revise as necessary. This kind of architecture management is what we couldn't have learned in a normal school project with stable scope.
- Team management is also quite challenging because trying to sorting out team problems and resolving conflicts among the team can be quite delicate to handle and you should always be prepared to talk the problem out rather than hiding it and hoping it will go away.
- All in all, I would say that, without having to attend a single class, I had learned a lot of technical, project-related and people skills from FYP.
Su Myat Mon:
- I have learnt that it is important for the team to be clear with the project scope and clients' requirements. To do so, the team, especially those who will be implementing the functionalities, should work very closely with the client since beginning. Only then, the team will have better picture of what kind of system client wants and can save time on implementing extra functionalities that are beyond client's requirements and satisfaction.
- Moreover, it is important for the developers to leave a buffer time before the actual delivery date (have to get all the functionalities done before the ). Since no one can forsee what kind of risks are likely to occur before the deadline, the team, especially the developers, should be ready to overcome any risk faced if they have enough buffer time before deadline.
- After all, for me, FYP experience is my first-time working with real client and has taught me a lot about the difference between school projects and the real-life projects, where more complex business logics, larger impacts of the system, etc. are involved.
"Communicare is a system developed by the team Brownie Points to enhance our organisation's activities. It allows us to communicate with our users in much more personal ways. It also gives us new understanding of the complex data generated by our existing systems. And finally, it gives us the ability to take effective actions - simply and immediately.
It's been a challenging project for the team since we have a complex data structure and a very unique operation model. But the team has been very open and willing to take on more challenges. And because of that, we now have something that is way beyond out initial expectation.
We really look forward to using this system each and everyday to monitor our progress and create more giving." - Masami Sato, Founder, Buy1Give1
Resources & References ★
PHP PEAR Package
We choose to use PHP PEAR Package because it offers more ease and flexibility for us to develop mailing function, which is one of the PHP PEAR Package's supports.
Please see detailed tutorials here.
We use CK Editor to get the rich editor features in our web forms.
We have shared details about CK Editor here at Knowledge Base.
We integrate our product with FusionCharts since it can provide add values such as better data visualization and quality to our product.
We have also shared more about FusionCharts and its configuration settings here at Knowledge Base.