IS480 Team wiki: 2010T1 OOLaLa Final
- 1 Project Progress Summary
- 2 Project Management
- 3 Quality of product
- 4 Reflection
Project Progress Summary
Rigorous work took place to enhance and further improve the entire SMS Application since the Mid-Term Presentation. A series of User Acceptance Test was conducted on various groups of people (Student & Working Adults), which will further elaborated at the Quality of Product section. In addition, with the results obtained and analyzed, further work and improvements were implemented to ensure that we deliver a robust system by the end of our project, which we have officially completed.
- Software Alignment to Business Needs
Event Management tools and IT solutions are in abundance in our current society. Gaps and misalignment between current business and these solutions are tremendous. In this project, we address limitations of the current methodology of Event Management.
- Usability Issue
The implementations of a user-friendly, easy-to-use system that can be efficiently utilized by any people from differing backgrounds deem to be easier said than done. Numerous heuristic tests to gather perspective on the established interface were tedious and time-consuming. Usage of tooltip, other visual studio tools and backend processing tools such as timer and threading enhanced the user interface. Intuitive Message allows end users to use the application without the usage of any user manuals.
- Usability Issues
After gathering feedbacks and results from our Heuristic tests, we recognized the need of improving our existing user interface based on the feedback given by our testers and sponsors. Usage of many usability features and tools coupled with usage of intutitive terminology and message enhances the usability and simplicity of our application.
- Ensuring a Fully Functional Working System
Data inconsistency present with the usage of XML document and inconsistent file paths deters the end user from using the developed application appropriately. We are challenged to find the root source of the problem and standardize the variables that are compatible with all end user’s computers.
- Resolving Shortcomings of Various External Libraries’ Tools
The external library used for the generation of any event attendance list as a PDF document which posed major problems for the team. The library’s method was not able to print the pie chart properly due to its shortcoming. As a result, conversion of the pie chart as a bitmap is necessary.
- Compatibility with Various Operating System
Different operating system configures the serial ports for GSM modem connection differently. Initial programming codes used to open the specific port connected to the GSM modem did not work on older Windows Operating System. Thus, vigorous research and testings were done to identify the exact problem to seek for an alternative solution, which requires timeout codes to be implemented in order to resolve the compatibility issue with older Windows Operating System.
- Compatibility with Various GSM Modems
With only two GSM modem models given by the sponsor for the development of this application, we faced issues, such as, making the application compatible with other GSM modem models. However, due to budget constraints and having only one of the two modem available in the market, we are challenged to find alternative solutions to reduce the risk of compatibility problems with other GSM modem models not made available to us. With the subscription of wireless plans with M1, we were able to gather commonly a used GSM model, HuaWei Modem, for testing. Therefore, this helps to reduce the probability of compatibility issues occurring in commonly used GSM modems.
- SMS Application used at an Event Organized by Sponsor
To provide our sponsor with a real-life experience on the responsiveness of the SMS Application, we did a test on an event that our sponsor had organized.
- Bringing Commonly used Technologies to a New Experience
Who knew SMS could be used to create an event and consolidate attendance for it? Leveraging on commonly used technologies that had been available since Short Messaging Service (SMS) existed; we have brought the capability of SMS towards a newer user experience, with enhanced usability.
- Creation of Events can be done Intuitively On-The-GO
We managed to change the workflow for creation of events On-The-GO from a long set of syntax to a workflow that can be done intuitively now! This new workflow makes creation of events so much easier and interactive than before.
Project Schedule (Plan Vs Actual):
During each iteration,
the following is carried out:
- Sketch and brainstorm the design and requirements of the functions that is to be implemented before coding it.
- After integration of new functions, review and test the whole application(including functions previously implemented).
- Record progress details and update PM documents.
The graph below illustrates an overview of our iteration progress. During the 1st milestone, which is from iteration 1-4, our group deviated from the estimated schedule as we have allocated too much time for functions that were easily done up. Meanwhile, functions that we presumed could be easily implemented took us longer than expected and that delayed our schedule as can be seen in iteration 4.
From the mistake learnt in milestone 1, we adjusted our project schedule and subsequent iterations (5-9) in milestone 2 and 3 became more consistent.
However, we were severely delayed in milestone 4 due to other project commitments and deadlines. We chose to do away with some additional functions that were least important to the sponsor and also increased our working hours to finish the functions on time.
Data Collected: Schedule Metric Measurement Data
The graph shows the emotional state of every member based on a set of questionnaire answered weekly. As can be seen, the metric ratings of some members fluctuates greatly while some are more consistent. In iterations 7 and 8, ratings of member were generally low, some even fall below the average of 4. This is due to several midterm projects and tight deadlines that we need to abide to. We adjusted our project schedule and kept meetings as short and productive as possible.
Project/ Technical Complexity:
We basically did not encounter much technical complexity when programming our entire application. So, we changed our focus of complexity to ensure better usability in our SMS Application, such as its heuristics.
- User Experience
To enhance user experience, we implemented our SMS Application in a simple, user-friendly and efficient manner. Numerous discussions and brainstorming sessions took place to ensure that we deliver a smart and interactive SMS Application that could easily understand different user’s entries and data.
Since the Proposal Acceptance Presentation and during the Mid-Term Presentation, technical issues surrounding the processing time of our SMS Application arouse. Because upon a desktop application user logs onto our SMS Application, he/ she had to wait for approximately 10-15 seconds before he is logged on. Such long waiting times does not provide any benefits for the desktop application user as he/ she stares at the frozen screen for 10-15 seconds, which is simply a waste of time. Thus, since then, we had explored on various multi-threading methods that allows speedy log in. And a resolution found to this technical issue was by incorporating a background thread or, otherwise, a time-out functionality, which was incorporated in the Send SMS functionality too.
- Managing Multiple Interactions
To allow multiple users to create events On-The-GO, we had to enhance our SMS Application to be robust enough to allow multiple users to interact at the same time. Furthermore to ensure every user who creates events On-The-GO is recognized, our SMS Application had to be smart enough to know the last session of the user and prompt of any unfinished session.
An important part in ensuring good usability throughout our SMS Application is to ensure good drawn-out logic of the application, and functionality. This is important to predict human behavior and all other alternative inputs (or SMS sent) by the mobile users. An example of such prediction includes the different date format specified by every mobile user: Such as 24 Nov 2010, 24 November 2010, 24/11/2010, 24-11-2010 and 24.11.2010.
Because various other library files and functionalities were created and done concurrently with all other basic and additional functionalities, we had to ensure that integrating with different solutions was done successfully. Furthermore, our logic had to be robust enough to ensure stability of our SMS Application.
Quality of product
|Project Management||Our Meeting Minutes|
|Requirements||Software Alignment to Business Needs|
|Analysis||Use Case Diagram|
|System Sequence Diagram|
|Testing||View Our Final Test plan(Excel File)|
Mantis Bug Tracking
- User Interface
- Adopting Model View Controller (MVC) concept in our programming codes
At the early stage of our programming stage, we realized the importance of maintaining a healthy structure and adhering to a certain standard. We have decided to adopt MVC concept and the enabled us to reuse codes and also ease in making changes.
Our SMS Application is coded using Microsoft Visual Studio 2010 which makes deployment a breeze.
- To install the SMS Application just click on the executable (.exe) file which will extract the required files into a folder.
- To run the SMS Application simply click on the SMS Application shortcut found on the Desktop after installation.
- The 1st round of testing will be done internally
There will be 2 pair of programmers doing the application, while the other member will be assign to be the observer. The role of the observer is to get update with the functionalities' status of that particular week and when a functionality is completed, the observer will proceed to test the functions and at the same time come up with the test plan and report any bugs found. The reporting of bugs can be done through Mantis Bug Tracker and the observer is also able to assign a programmer to solve the bug.
- The 2nd round of testing will be done by the sponsor
Every couple of weeks, we will deliver a working application to the sponsor. He will do the testing and inform us of any bugs found. Besides that he will also give us comments about the user interface for us to improve on.
- The 3rd round of testing will be done externally
We contacted our friends to test our application for bugs and usability which consist of a mixture of SIS and Non-SIS students.
- User Acceptance Testing in week 10
Sample size: 15
Total bugs discovered: 10
8 were user interface bugs
2 were functionalities bugs
We approached different users such as parents, students and working adults to test our application based on the test plan created by the observer. While conducting the test plan, we will be with the user to guide them and also to record any bugs found in the process.
- Key Lessons Learnt
Learning unfamiliar programming languages from scratch, understanding our project sponsor’s requirements and conveying our action plans to our project supervisor were quite challenging at times. Not only did we learn and become better project managers and programmers, we have acquired other soft skills through this fabulous project experience.
The following are the key lessons learnt:
|Understanding User's Behavior and Patterns|
Developing a real world application requires us to constantly collect data and inputs from the end users. Observing the way they use our application and the collection of their experience have exposed us to the mentality and understanding of the different interactions performed by end users.These interactions and observations have allowed us to think and understand the different user behaviors and patterns. Thereby, catering to these differences to achieve usability and simplicity.
Learning to Integrate Existing Technologies|
With usage of existing technologies and libraries provided on the web, we have learnt to integrate it by modifying the configurations. For efficient usage of each library's methods, we have learnt to identify the required parameters and sequence of activities that has to be done for successful execution of a desired method even when the documentation of the library is poorly done. |
Managing Sponsor's Expectations|
Additonal business requirements are always initiated by our sponsor. Though so, we learn to prioritize each task based on its importance and value to the sponsor. In efforts of aligning the software specifically to the sponsor's needs, we learn the importance of using a user sign off specifying all functionality that scheduled to be delivered at the iteration phase. |
Effective Handover of Functions|
With pair programming arrangements and constant handover of functions to another pair of programmers at each iteration, we learnt to keep each other updated regarding the current status of each functionality and the improvements that are required to be made at each team meeeting that we have. |
|Initially, our meeting were usually too interactive where everyone is fighting to get their inputs heard from everyone else. This situation worsened across the initiation phases which created many confusions and unheard thoughts. In resolution of this persisting problem, we learnt to respect one another and never interrupt each other when somebody is speaking.|
|View Video:|| Team Member's Key LOMS|
|Go to:||Detailed Explanation of our Learning Outcomes|
Brendon Png Lee Hong Reflection:
This has been a rewarding experience and is indeed a highlight of my learning journey in SIS. We started out initially not knowing what we do not know. We have no idea what are the skill sets we need to equip ourselves with and everything about the project isn't that clear. From there, we progressed to realizing what we do not know and started to learn the ropes. We did our own research, studied the best practices and available solutions and constantly seek advice from our project supervisor.
In this project, my involvement was the role of the Project Manager (PM). This role does sound quite powerful. However, with great power comes great responsibility. Basically, the PM has to be responsible for the team dynamics, project requirements, making sure we're on schedule and especially in making decision for many things such as overtime (OT), adjusting our project scope and even deciding on a location to meet. Additionally, whenever there is a challenge faced in programming, the PM would have to gather the team's opinions and make an informed decision in overcoming the situation.
Overall, I've learnt that every project has learning opportunities and it takes a team effort to produce a project with good project management. Every role has a part to play within the project team.
Woo Kai Ling Reflection:
Developing a real world application has brought me to another level of understanding and appreciation for current available tools available on Visual Studio, business processes and workflows. Given the role and responsibility of a design analyst and programmer within the team, I am constantly challenged to learn and implement new and interesting features that will bring business value to our sponsor and potential end users. In the process of structuring an efficient business logic flow, I have improved my reasoning and cognitive skills. In addition, I learnt new business logics, skills in utilizing tools and techniques available in various IDEs and external libraries available on the web. It is only during this project that I really appreciates the usage of external libraries and the guidance provided on forums such as StackOverFlow, SMSLib, and CodeProject communities. Reusability of external implementation and resolution provided on these external libraries and communities have facilitated easier maintenance of codes and implementation of new features. As these libraries focus on providing the fundamental principles and features, I acknowledge the various constraints and utilized additional codes and logics to overcome each shortcoming. Though I wasn’t the project manager, this project has allowed me to practice adequate project management skills and time management skills. Though it might seem dry and all theoretical, it helped to provide our team with better manageability, adaptability and definitely, earn us recognition for best IS480 Project Management. In summary, I treasure this experience tremendously and gratefully thank you, my supportive team mates and supervisor, for this awesome project experience!
Lur May Yee Reflection:
Through this project, I’ve benefited and learned a lot from my group mates that were technically competent and were selfless in sharing and imparting their knowledge. I’ve become proficient in using the Visual Studio (VS) 2010 IDE especially in solving conflicted files. The properties settings bar in VS also enabled me to create a holistic user interface with just simple navigation tools. I’m tasked with handling and conducting testing of the functions such as UAT and gathered feedbacks that could better enhance our existing system. Any bugs found were also logged into Mantis, our bug tracker, to facilitate the assigning and debugging of bugs. Lastly, I learned that in order for a team to function efficiently, understanding each other’s differences and covering each other’s back is very important. There might be overlapping roles that required help from other members and I’m proud to say that each and every one of my teammates was ready to lend their helping hand. Indeed, I’ve gained so much from this course, but I believe my best take-away is the one of having fun. Fun should be one of the several achievements that a team strives for. For if all else fails, you know that the fun memories are there to stay. And with these fun memories come new friendships that I believe is here to last for a long time.
Alan Tan Beng Heng Reflection:
IS480 is truly an exciting journey for me, besides burning the midnight oil to get work done I have learn that it is often hard to stick with the initial requirement that we had from our sponsor as he will always request more functions to be added. To resolve this there is a need to constantly communicate and justify what can and cannot be done within this short period. Sometimes there is some miscommunication between us and the sponsor such as how the function should work because we are used to view from a programmer's perspective and not from a user's perspective therefore it's always good to have something clear and understandable draft out such as a user sign off form. One of the main challengers I faced was solving the bugs in the application. Initially we often had to ask one another on how to reproduce the bug and sometimes we even forgot where is the bug however with Mantis Bug Tracker, bugs were more easily and efficiently tracked. As a whole, I'm glad that we overcome the challengers and had an enjoyable time together!
Goh Shu Qing Maybelline Reflection:
As a programmer, my greatest takeaways were not on how complex our SMS Application was programmed, it was in the area of decreasing miscommunication. Messages brought across from a team member to another member may, or many a times, be interpreted incorrectly conceptually in certain contexts. In such a case, drawings and diagrams, elaborations and in-depth explanations of what was supposed to be brought across took mostly 60% of the meeting time. It was evidently seen as time-consuming, and we had chose to keep such conversations out of the team’s meeting, but only to be discussed within the parties who did not understand what was misunderstood. Well, this was only experienced at the beginning of our entire project. Over time, this issue gradually became a minute problem as we got to get along better with one another. The 3/4 of the year 2010 we spent together for this project had been an overwhelming experience filled with fun and joy, amidst the stress and pressure. I will continue to keep these memorable experience throughout all other projects in my future.