IS480 Team wiki: AUSTIN Final Wiki
- 1 Project Overview
- 2 Project Management
- 3 Quality of Product
- 4 Reflection
Since 30 August 2011, our team has gone through all the milestones and has successfully deployed our solution for use by the client. The team has completed:
1. Web Application
2. Windows Basic/Monitor Service
3. Windows Verifier Service
4. Windows Publisher
5. User Testing with ESPN staffs
6. Documentation for ESPN
During the entire project execution,there were some unexpected events or changes which forced the team be proactive and implement alternative solutions as below:
|1||Promotion of Person-In-Charge||Due to the promotion of the person-in-charge and increased workload, the team has to re-schedule our weekly meetings with the client and cater to his change in job scope in order for the project to be deployed successfully and to update the client progressively on the project in obtaining his feedback and any need for changes or improvements.|
|2||Change in project requirements||As the project progresses, there are a couple of major changes that include the addition of new features that is important to ensure a smooth video uploading process by the end-users. Since the schedule has been planned earlier based on the initial requirements, the team has to re-schedule and re-priortise the tasks after the addition to ensure that the major features and tasks are completed first before proceeding to the minor tasks based on the client's timeline.|
|3||Several deployments due to environmental and coordination factors||Due to the difference in environmental factors from the client's workplace, the team has faced major difficulties for successful deployment as planned earlier in the schedule. These environmental factors have greatly affected the entire deployment process as since the team was not informed of the different factors, the team has to change the environmental factors from the initial stage and seek help and guidance from our supervisor,Prof Kyong, due to the steep learning curve that requires immediate action. Thankfully, with the help of Prof Kyong and Google, the team has managed to deployed the solution successfully after several attempts.|
As the end-product of this solution is a real-life deployment that is to be used worldwide, there are several criterias that are important to the client and in doing so, there are some challenges faced by the team during the development process.
Due to it being a large-scale project to be deploy in real-life, the team is unable to find an adequate solution for our needs, which is to sync the video asset from FTP to a local drive which is free.
- ASP.Net 4.0 Framework coupled with ADO.Net LINQ
Since ASP.Net was not taught in school, the team faced some challenges intially in getting the grasp of the technology as it is widely-used in the entire project. Hence, the team has to search for ways to understand ASP.Net in the fastest possible way.
- Effective communication and team-work
Due to the improved workload and changing requirements faced by the team,it is important for the team to communicate well with the different stakeholdes, such as client and supervisor, to update them consistently on the project process and any difficulties faced by the team in meeting the requirements. This has been a challenge for the team as each stakeholder and member
- Essential adjustments for successful deployment
The major challenge faced by the team is the constant adjustments needed to ensure successful deployment. As it will be real-life deployment, the team has to understand the necessary factors for deployment where minor things such as version difference will affect the deployment of the solution to the client's workplace.
Despite the challenges and difficulties faced by the team, the team is pleased that there are still some achievements such as:
- Enhanced knowledge of the technology used and introduced by the client that will benefit the team in future use
- Better understanding of the client's video uploading process and how do the end-user ensure that it has been transmitted succesfully to consumers
- Better coordination between the stakeholders and team and the team has learnt how to manage all stakeholders well other than just meeting their requirements.
Project Schedule (Plan Vs Actual)
Comparing our project schedule during the acceptance with the actual project progress, our team is pleased that all initial functions and additional functions have been completed. However, our team has made minor adjustments to the schedule based on the additional functions to cater to all stakeholders.
Plan vs Actual Construction Phase(6B)
Plan vs Actual Transition Phase
To measure the team's project progress, the team has implemented the Schedule Metrics to monitor the time taken for the different phases and to ensure that the team is following the schedule as predicted.
Most of the tasks during the Development Phase have been completed according to schedule as the team has been well-balanced in ensuring that the tasks as completed as planned. However, after the Midterm, the team has faced several setbacks that require re-scheduling of the tasks a couple of times in order to ensure that the team is able to get the whole backbone of the system up and be ready for cloud deployment to be launched on 29 February 2012.
The team has made good use of the schedule metric that was developed during the initial stage, which has helped to weigh the importance of the tasks that have been delayed and allow the team to implement the necessary action plans to bring the team back on track.
The team has also implemented the use of Bug Metrics that is used to determine the number of bugs that arise during the development process, and is possible to affect the entire project. With the bug metrics, the developers and team are able to know what necessary actions need to be taken in order to ensure that the whole project runs smoothly and according to the planned schedule.
The team is pleased that despite an extended development schedule as compared to the other groups, the team has aimed to have minimal or no bugs arising during the process and hence, does not affect the team's project schedule. In a way, bug metric has helped the team to be more careful in preventing bugs from occuring, which eventually helps to keep the team on track.
Project Risks & Mitigations
Throughout the entire project, the team has learnt that there are risks in every project and the risks encountered are similar yet different as compared to other groups and it is important to come out with mitigation strategies to solve these risks and prevent any possible delays in the project schedule.
The greatest risk faced by the team is in the area of technology. As the technology used by the client has not been learnt by the team, there is a steep learning curve for the team to be able to understand the technology in the shortest possible time in order to ensure that the entire development process using this technology is smooth. To tackle this issue, the team has created additional buffer time in the project schedule for the learning of technology, as well as looking through discussion forums and online tutorials in order to have hands-on experience and better knowledge. These skills have equipped the team with the ability to learn new skills yet at the same time, putting the technology learnt into possible use during the entire project progress.
There is some technical complexity involved during the development process, for technologies that have not been taught in school.
- ASP.Net C#: Used in the development of windows service and web application
- GIT Bitbucket Version Control: Used for tracking the project progress and who is responsible for the changes
- Cloud Database & Cloud Deployment: Used for deployment of solution for use by end-users
- Log4Net: Used for logging errors occuring during Windows Service
Quality of Product
The entire project was created based on a tight collaboration with the client and all requirements and design are agreed on common consensus. With this, the quality of the solution is in excellent working condition and meet all criteria set by the client where there are no errors during the development process.
|Metrics||Bug Metrics, Schedule Metrics|
|Analysis||Workflow Diagram||Workflow Diagram|
|ER Diagram||ER Diagram|
|Business Process Diagram||Business Process Diagram|
|User Testing||Test Plan||Sample Test Plan|
Deployment Process for Web Application
Deployment is no easy pick for web applications. A whole lot of steps need to be put in. Therefore, we did regular deployment of the entire web application package on the FTP servers provided by ESPN. The deployment could only be done on-site due to authentication issues that our client was worried about. We did the deployment such that we copied the entire site onto the FTP server and had to manually modify the Web.Config file to include elements such as sessions in order for the site to work as well and flawlessly as it does on our localhost.
Deployment Process for Windows Service
The windows service is deployed on the server of ESPN office. This server contains mapped network drives that will contain the video asset. The four windows services is deployed using installutil.exe available on .NET (C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319)
Unlike most projects created in Visual Studio, Windows Service projects cannot be run directly from the development environment by pressing F5. This is because the service in the project must be installed before the project can run.
However, for convenience sake, the team has used a project installer which packages the Windows Services into a MSI where it can be double clicked and installed without running the command line.
Initially, we found out that the system could not support .NET 4.0. After seeking permission, we were given the go ahead to upgrade the .net version framework to 4.0.
The team has conducted user testing for 4 members from the professional departments (Non-IT) to test on 3 Web Modules and 3 Windows Service Modules. The test is questionaire-based for with Pass/Fail for each function in the test plan, as well as the usability by the end-users.
The team has conducted 2 rounds of user-testing, where the second round of user-testing is modified and improved from the results obtained from round 1.
UT Review 1(17 Feb 2012)
UT Review 2(20 Apr 2012)
These are the lessons and skills that the team has learnt throughout the entire project.
Reaching a common agreement
With the different schedule that all team members have, it is tough for the team to have a consensus on the meeting dates to get the tasks and functions done. Despite this, the team has been trying our best in re-scheduling other appointments or tasks for a weekly meeting within the team, and with the client and supervisor. We spent countless numbers of hours discussing and reviewing the available dates where all of us are agreeable and convenient in doing our best for the project.
Importance of understanding the entire business process
Since the solution will be deployed in real-life, it is important for the team to understand fully on how ESPN conducts its video uploading process in ensuring that the automated solution will be able to fill in all gaps. The team has spent countless meetings at the client's place to have a demostration and ask questions that will be related to the end-product. The team is now confident of explaining the entire process and how the solution will further enhance the existing process.
Learning new skills together
Since the solution requires the implementation of skills that were not taught in SMU, the team has settled down and learnt the skills together so that every member will understand and be able to use it in future when needed. It was hard for the team at first to have a common timeslot just to learn the new skills, but we are glad that the efforts are worth it as everyone is now equipped with the same skills and has been able to assist the weaker members during the development process.
Importance of User Testing
User testing has allowed the team to know the areas of improvements for both the web application and windows service as we are able to have a clearer view of what the end-users are looking at and how the solution is able to help them. A clean user-interface together with a documented user manual helps to make it easier for the end-users when using the system. The team has also obtained feedback from them and made improvements or adjustments based on the potential issues that the first-time end-users face in order to ensure that the system is doing it's best in assisting them and improving their business process.
These are our group individual reflections:
|Melvir||1.ASP.Net C#. We have never used ASP.Net in school, only JSP for a relatively small module, Software Engineering. My polytechnic background helped in this case but majority of the learning journey was to scourge the internet for bits and information to improve myself and the team's knowledge of ASP.Net using C#. C# is not an easy language to pick up, seeing as we have done only JAVA in SMU. Hence, the learning steep was very steep learning both the language as well as the application with the ASP.Net framework. I also learnt to use ADO.NET LINQ to connect and talk to the database instead of the standard database classes which can cause overheads in many cases.
3.GIT Bitbucket Version Control. Our client had an insistence on using Version Control, and GIT in particular. Hence, I had to look into the internet on how to set up GIT in my Visual Studio as well as install it as an external package. The initial journey was definitely rough, but following on, the benefits could be readily seen, with us being able to work on the same file, same code concurrently without having any errors. GIT is very useful.
4.Cloud Database & Cloud Deployment. As we could ill afford regular trips to ESPN, we decided on deploying our application on the given Cloud by our client. I learnt how to deploy an application on Rackspace, many times having to communicate with the US-based server contact person to ask for advice. The errors were free for all at the start, especially the Web.Config file which has to be manually amended to include certain comments and statements in order for the web application to work on the Cloud.
|Cassie||1. Project Management. I have learnt alot on project management during the entire project process, as well as that effective teamwork is very important for a team's development. With good project management, the team is able to make use of the resources and metrics defined earlier in tracking the project progress, and look out for areas that need improvements in. With these information, the team is able to progress accordingly.
2. Good Communication and Collaboration. It is important to have good communcation and collaboration with all stakeholders in determining the success of the project. Through good communication, the team is able to manage and meet all requirements by the stakeholders well. Not only this, the team will be able to understand each other and to know of any difficulties or issues that anyone is facing. Ultimately, this contribute to the success of the project.
3. Dealing with uncertainties. There are bound to have uncertainties arising from any project, and its the same for our team. An example will be the failure of my laptop hat cause delay in getting the tasks done and the team has to re-allocate tasks among the members to ensure that everything is on-track. I am thankful for the team in understanding my scenario and trying their best to help in the tasks that I am lagging behind due to this uncertainity. But, I am pleased to say that the team has really helped each other for the entire project.
|Ming Kun||1. Teamwork. Despite having a small team, the team has worked closely together to make the project a success. Leveraging individuals strength, the project is delivered albeit with a little delay. Teamwork is important -- everyone must watch each other back. Responsibility extends beyond the individual task allocated. Communication was also important -- we used whatsapp to communicate instantly. That is a critical key to our success: communication.
2. Scope Management. XML configuration files and syncing of video assets from FTP folder to local network are additional functions discovered along the way. The group and I learned the importance of scope management with respect to the impact on the schedule. Every new function must be subjected to PM's approval and closely scrutinised. It must not be viewed as a mere function as these new functionalities might affect the existing functions which will result in more issues.
3. Motivation.Momentum must be kept high, especially during the exams and projects deadline period. We learned the importance to motivating each other by words or by just being there. For example, Melvir was there to support Ming Kun at ESPN on numerous times. Emotional support during difficult times is key to successful motivation.
2. Crash Course on UI Design. Designing the UI was my main responsibility and I had barely one to two weeks to give myself a crash course on understanding CSS and the various different java languages so that I will be able to incorporate the ideal user interface for our project. Having faced with negative criticisms which spurred me on, it was a tough but worthwhile journey upon the satisfaction our team received when our client approved our overall design.
3. Deployment Process. With the main backend systems designed by both Melvir and Ming Kun, I was able to experience a real life deployment of a major application for organization usage and it was simply breathtaking by just observing the whole process. There were countless setbacks especially in the server cache and web.config while deploying and we had to liaise with the contact person over in the States for technical advice.
There is only so much we can learn in school during our lessons but nothing beats the dynamic real world industry with tight deadlines and ever changing demands by our clients. Through this project, I’ve learnt the importance of managing our stakeholders as well as there will tend to be conflict of interests and requirements.
Given a chance again, I would definitely work with the same group of members given how bonded we were despite the scope of our project where some of us had to do more than the others without any complaints. We move both forward and backward as a team without leaving anyone behind.