IS480 Team wiki: 2010T1 Cowabunga Final Wiki
Contents
Project Progress Summary
The project WORMS is successfully completed and deployed on a server. All the modules that our group planned to include for WORMS are all fully functioning. Once the client is satisfied with the system, the necessary hardware and software would be purchased and our group will deploy this system officially on the client's server.
Project Highlights:
What unexpected events occurred and how were they handled?
- Warehouse Grid Layout from Client Delayed
- Problem: Client confused what we needed and gave us the architectural floor plan of the cold storage warehouse.
- Solution: One of our member, Jackson, specially went down to collect the correct grid layout information with the client.
- Exception Cases for Location Assignment for Incoming Goods
- Problem: There were many new possible case scenarios that we identified when we were programming the warehouse optimization module.
- Solution: Arrange an urgent meeting with the client to clarify the actions to be taken on such scenarios so that WORMS is able to cater to their needs and requirements
- Technical Difficulties faced with using Actionscript to create our Warehouse Gridding
- Problem: We faced issue with trying to create an instance and thus despite getting the actionscript to work, we were unable to create it to be like how we want and need it to work.
- Solution: We always had a contingency plan to use buttons instead if actionscript fails. As such, buttons were used and we still maintain the UI that we aimed to achieve previously.
- Database Design kept changing in order to handle the exception cases
- Problem: Our first database design was tightly coupled. However, due to the new exception cases that we identified in the midst of our project, there was a need to constantly change the database fields to better manage the exceptions. This was a tedious process as it affects another module's codes.
- Solution: We came together as a team to design the database such that there are tables specially created for the optimization modules (e.g. ProductAnalyOtpim Table, Daily Log) which can be changed easily without affecting the basic inventory tables.
Project Challenges:
Describe areas of the project that were particularly difficult and how they were dealt with, whether successfully or not. Again, a few sentences are enough. If there are no challenges, remove this section.
- Business Decisions Automation
- In order for our system to be able to work like a human brain, we had to be able to handle the every single possible scenario. This made the coding very tedious, but is still successfully implemented nonetheless as we worked with the client closely to analyse all the possible scenarios.
- Information Collection
- This was difficult because most of the product details are in the cold storage and it was difficult to stay in the wareouse for long periods due to the extremely low temperature (-17 degress celsius).
- In addition, to map the warehouse gridding out, we also had to move in and out of the cold storage due to the unbearable temperature. This factor reduced our data collection efficiency but there was no workaround way. The only thing we did to be able to stay in the warehouse longer was to enter with winter clothing.
- Language Barrier with Warehouse Personnel
- Warehouse Personnel is not proficient in English and thus, sometimes we had problems understanding the warehouse operations from him.
- This problem was solved as we usually meet the Warehouse Personnel when the Proprietor is around. Therefore he sometimes explain to us more clearly.
- Oracle Database
- The Oracle database was unable to handle the large transaction of data and thus kept giving us exception issues. As such we switched over to using SQL Database and the problem was solved.
Project Achievements:
- Everyone played a part in the coding process even though some of us were technically weaker.
- One of the biggest achievement, which is also the biggest challenge, was that we manage to handle all possible case scenarios (exceptions) identified by the client. We also took a step further to analyse other possible cases even though the chances of happening are low. This makes our system highly competent for any possible scenarios.
- Previously, our project was commented to be a very basic inventory system. However, through the team's hard work and ideas contribution, we manage to come up with a technically innovative system that manages not only the inventory but also the warehouse operations.
- As our clients were less technically inclined, we felt that we have managed to achieve a UI that is claimed to be very user friendly by our clients. Our clients love the big fonts and the easy navigation. They also love the system as it was highly similar to how they work, except that previously it was paper-formed but now it is in the electronic form.
- The clients are receptive towards the system and thus, affirm that we manage to buy our clients with our system. They are also very satisfied with what we delivered as the end product as their expectations were much lower. Our team is glad to have exceeded the expectations and bring satisfaction to the client.
Project Management
The following is an overview of our project timeline.
Project Schedule (Plan Vs Actual):
During the midterm, we encountered 2 delays due to the warehouse grid layout collection and the sudden surge of exceptions cases to handle. Nonetheless, after our midterm, all progress went smoothly as planned and the remaining 2 iterations, iteration 5 and iteration 6, were both completed on time.
We have specially created a page to keep track of our project's schedule updates from the start of the project till the end. This page highlights the changes made after acceptance, and also after midterm. A consolidated table updates the planned and actual date of completion. This table helps us to clearly keep track if an iteration has been fully complete or partially completed.
Go to: Project Schedule Page
Project Metrics:
As our project has a lot of focus in buying our clients in to use our product, it was important for us to ensure that the system's interface is well-like by the users. As such, we placed alot of emphasis on the client's and users' feedback to continuously improve our product so that it caters to them. We're glad we've managed to do so with the help of a UAT testing metric to help us to constantly improve our system. More details on how testing is done can be found in the following link:
UAT Testing Results and Metric Page
Technical Complexity:
Warehouse Algorithm Exceptions
As much as the team can program, the exceptions cases are of the highest complexity that the team faces as cases like warehouse worker forget to swap goods or even insisting on placing a good in a particular location have to been recorded. Certain exceptions like changes in spaces in warehouse or even last minute changes in inventory arrival have to be considered. As there are too many possible exceptions, this will require more add-ons during the implementation within the business and through the operations to ensure that exceptions are properly caught.
Warehouse Grid and Swap Algorithm
This is another technical complexity in our project as it requires the team to think how to translate the business process into a computer algorithm based on whatever current knowledge we have. To ensure accuracy in maximization and optimization of inventory within the client's warehouse, the team have to factor in the different conditions and exceptions that will occur. The video below will illustrate how the algorithm is dervived. The challenge here is to create the best algorithm to fit the business requirements.
- Integrations of modules and parts
- Database Designs and Limitations
- Warehouse Interface Design Overview
- Flex 4 with Java
View: Technical Algorithm Video
Quality of product
To ensure the quality of our product, we placed alot of emphasize on testing our system and have also created necessary documents to help ensure that the team has a clear view how the system work. These documents helped to iron out any miscommunication during the development phase.
In order for our Warehouse Optimization Layer to be of high quality, we are in constant contact with our Client to faciliate the handling of exception cases. The ability of our system to handle all kinds of scenarios ensure that the system will be a quality one that can always handle any situations in a tactful manner to give the best suggestions to the warehouse personnel.
As for the Resource Management Layer, we also keep track of a backlog in our database to ensure that the inflow and outflow figures will always match the inventory level. This is where careful design of the database comes into view as changes in inventory level due to inflow and outflow (transfer request) in all related lines and the figures should always tally and be updated accordingly in the database tables. For example, the existence of transfer request lines allow changes to be made at line level so that the admin staff do not need to resubmit a new order. With our database design, we ensure that such changes made will be updated in all the affected tables such as the total quantity of the transfer request form and so on.
Project Deliverables:
The following table are the artifacts that our group has produced throughout the coursework.
Stage | Specification | Modules |
Project Management | Minutes | Cowabunga Group Meeting Minutes |
Metrics | Schedule Metrics, UAT Metrics | |
Requirements | Story cards | Chee Song Business Process Storyboard |
Surveys | Understanding Chee Song Questionaire | |
Project Overview | Cowabunga Project Idea Overview | |
Analysis | Use case | Use Case Diagram |
System Sequence Diagram | System Sequence Diagram | |
To Be Workflow | Inflow, Outflow | |
Warehouse Decisions | Algorithm for Inventory Placement in Warehouse | |
Conception Shots of WORMS | Conception Shots | |
Design | Class Diagram | WORMS Class Diagram (To be upload after JJ done) |
Logical Diagram | WORMS Logical Diagram, WORMS 3NF | |
Database Design | Database Design, Data Dictionary | |
Warehouse Layout | Warehouse Grid Layout | |
Testing | Internal Test plan | Internal UAT |
Internal Test plan | UAT Documents with Clients, UAT Metric Survey | |
Handover | Manuals | WORMS User Manual |
Code | WORMS Codes | |
Deployment Diagram | Deployment Diagram |
Quality:
Non-Functional
- Relatively Easy To Use (Based on UAT, easily learned, and very intuitive design)
- The application will be available to users not only at work but also at home with proper authentication
- It is scalable enough if more WorkStations are to be added the processing power increase for the alogirthm and easily configured
- It is also very much possible to separate the database from the server and add another server to just handle the database if required
- It is also possible to add another database server (slave) and create a backup mechanism and also a fail-over
- If the company acquire more warehouse it is easy to modify but just adding rows to the database
- If more factors need to be considered in the algorithm, adding layers and linking to the formula will suffice, but with more factors comes a new drawback that is the complexity of the algorithm thus it is harder to maintain without proper documentation.
Deployment:
The Application is Deployed using two deployment methods:
- Off-Peak Period
- Peak Period
The reason for this is to reduce to cost and make use of the current available resources available and the only investment required is an additional server to handle Off-Peak Period.
View: Deployment Diagram
Testing:
To ensure that WORMS is a high quality system, testing within WORMs is done at two levels, mainly
- Internal Testing
- Client UAT (with Client Satisfaction)
From the testing, our team created a metric that aims to chart the team’s progress in two manner:
- We fulfill at least 95% of the business requirements set out by our client .
- Team will fulfil 80% of testing done internally.
The following diagram is a visual workflow representation of our Testing Process.
After every UAT done with Client, the team will do a client satisfaction survey with the client.
Testing in a Glance
- No of Internal Testing: 53 Internal Tests
- No of UAT with Client : 4 + 1 Tests(Final)
Benefits
1. Ensure all business requirements, practice are fulfilled by our system
2. Seek for greater client satisfaction of our collaboration
3. Visual guide that flags out easy breakable cases.
4. Gauge our client’s satisfaction with our service.
Detailed Testing Process Here: Project Testing Page
Reflection
Team's Overall Reflection:
Key lessons learned – indicating where the team improved, or would do things differently next time. You may refer to the learning outcome summary in your proposal. A very short checklist style will suffice. It would be very convincing if the knowledge is share at the wiki knowledge base and linked here.
Learning Outcomes
Hard Skills
- Adobe Flex Skills (Knowledge Base Contribution)
- Printing Functions using Flex (Knowledge Base Contribution)
- Database designing to cater to our project requirements
- Different methods available to do gridding for warehouse layout.
- Refreshing Dashboards within intervals
Soft Skills
- Always prepare alternatives to fall back on so that difficulties faced when handling technically challenging modules will not impede the schedule.
- Facilitate discussion with clients by providing agenda beforehand so that clients could prepare for the discussion.
- Using change management request forms to handle changes in an orderly manner to reduce the impact on every team member’s development.
- Better understanding of Proper Warehousing Techniques
- Critical Thinking and Analysis Skills to Propose Appropraite Solutions for our Clients
- Automate Business Decision Making using Mathematical Algorithms
- Minimize Possible Impacts Caused by Changes
- Designing Simple and Easy-to-Use Interface
- Increased Competency in Handling User;s Resistance to Changes
Possible Improvements
- There should be a tracking list of what each individual have done each day. This will help everyone get a clearer view of the project status and reduce unnecessary need to meet up to check the status. For example, integration can be done immediately once a module have been completed.
- Constantly check on one another progress and immediately step in to help any members who are stuck so as to prevent possible delays.
- Always send reminders to clients to ensure that deadlines are met.
- Good communication are important with our clients so as to efficiently collect data that is required. Provide examples of what is need (e.g. Grid Layout) so that Client knows what we want. Prevent wasted effort of client.
Team's Individual Reflection
Jackson Loh's Reflection:
During this journey of IS480, I learn that it is very important to manage the scope and planning the completion of the function or module. Understanding the team's strength and weakness and allocating the task to the best candidate. We have to define clearly which are critical tasks and which were not; taking the necessary actions so as to not affect the schedule and the progress of the team.
At the beginning, it was not easy to understand the algorithm and the complex exceptions. We have to be very meticulous and take into consideration all requirements stated by the client. I had an unique experience working with the team knowing each and everyone greatly, I could sense the determination towards completing our "Baby". I believe that this is one of the project that would benefit me as I understand much more about operations management. This is how Business and Information Technology intertwine and bind to make companies work much efficient and effective.
Danny Seow's Reflection:
The key driver of our system is the facilitation of proper warehousing methods. Considering that our client is a frozen food storage company, there are various special consideration (also challenges) that we have to deal with such as, product's sensitivity rate to temperature change and grid's maximum carton capacity, much of these real life scenarios are not taught in class room setting, so there were many twitching of our knowledge to solve a very real problem.
Although we are taught many warehouse optimization methods, we have to drastically twitch them to fit our business client's current operation. One of our major limitation and also challenge is to IMPROVE their operation efficiency with minimal impact on their current operation methods! So many a times, we feel like we are being creativity and thinking outside of the box, while still being restricted by another bigger box (limitation).
The next difficult step is thinking in a holistic manner, because of how tightly knitted our algorithm is, we have to consider how each change (to deal with different exception) would drastically affect the overall warehouse planning. It feels like i am pulling a single string in a spider web, where every other parts are dependent on one particular part. Because of this, solving exception cases becomes more difficult and requires deep understanding of impact and causes.
Ng Kiang Pin's Reflection:
Being the Business Subject Matter Expert in this project, I went through alot of thought processes to decide the algorithms for the necessary warehouse operations. I've learnt alot about warehousing techniques and have become much more competent in converting business processes into IT methods.
One of the biggest difficulty i faced is the handling of various exception cases. A human brain is flexible to handle all kinds of scenarios when it happens, however, a system will be unable to handle extreme exception cases if we do not specify any algorithms to handle them. As such, to automate business decisions, we have to analyse every single possible exceptions so that our system has a way to handle it. This is one of the toughest and most tedious part of our project as we aim to make our system to be as good as, if not even better, than how a human brain can think. These thought processes has trained me to be better in both critical thinking and analysis skills.
Saiful's Reflection:
As the Team's System Analyst very often I have to see the "Big" Picture; What will make the System work best and what will not. Sometimes it is not an easy choice to make especially if we are already in the later development stage but it needs to be done. I minimize the risk by going to the extra mile to make the codes as flexible as possible to allow easy for deployment. Knowing 100% how the system works, and how the components interact with each other, allows me to identify possible point where the system will fail thus i can always find a solution for it.
I manage to learn more about the Flex technology, its strengths and weaknesses. How to manage the server to ensure higher up-time. Proper usage of Apache SVN Server. But more importantly, is when integrating pieces of the codes together, with all the teams contribution can be a really tough, especially with so many different coding styles, sometimes comments does not help. How I overcome this is by going line by line in the codes (few thousands of them) very meticulously and understanding the thinking process of individual coder.
But all in all, I am glad that i have a great team, that willing to go beyond and endure all challenges that come.
Lex Seetoh's Reflection:
Bevan Tan's Reflection:
This FYP was indeed a very memorable and insightful journey for me. As once will describe, this FYP is one that merges both technicalities of the business world with integrate of technology. What I saw was how a traditional family business is transformed with manual activities is empowered through technology with benefits like automation, ease of usage and accuracy. This FYP proves one point that technology and business are dependent for each other to have benefits. For me, I played the role of doing up the interface related matters for this FYP as well as conducting testing for this project. I feel that these two aspects are related as without testing, there is no improvement for interface. Without interface, there is nothing for the client to test. For interface building, as simple as one can say I want to have something easy for users to use. It might not be the case most of the time as what one find simple, the others might not. Thus it requires a lot of time to study, research and test what users really find is easy to use. Another aspect of interface design is needs and wants, often we ourselves cannot define this spectrum but will require testing to know what users really needs and want. Through this two aspect, I been expose to challenges like how to display warehouse overview and have experiment with methods like actionscripts and flash animation as well as flex. Apart from this, the challenges I face for testing is how to bring clients to understand system, balancing between client requirements and team work. I will like to personally thank the Jackson for coordinating meet up with clients as well as Saiful,Lex,Danny and Kiang Pin for any assistance through out the project. You guys really rocks this project.
Team's Sponsor Comment:
Sometimes, the client writes a report to feedback on the system; this sponsor report can be included or linked from here.