Project 7: Final Project
Description
In this project, you will work with a team to develop a larger-scale app for a client who is wishing to incorporate an app related to their area of expertise. You will iterate the app multiple times to improve the app quality and increase the fidelity to the client’s expectations. The ultimate goal is for the apps you develop to be deployed to the app stores.
Assignment Learning Goals
Course LG |
Learning Goal |
Career Competency |
LG1 |
Understand the benefits and limitations of programming in mobile environments |
Technology |
LG2 |
Use test-driven development and beta testing feedback to analyze mobile applications and graphical user interfaces. |
Critical Thinking |
LG3 |
Employ multiple levels of algorithmic and data abstraction to manage system complexity. |
Technology |
LG4 |
As part of a team, develop robust mobile applications that successfully enable their users to achieve their goals. |
Teamwork & Career / Self Development |
LG5 |
Employ written and oral communication through code sharing, peer review, and community partner presentations. |
Communication |
LG6 |
Understand the social and ethical context of mobile application development. |
Professionalism Communication |
Team Responsibilities
You will fill multiple roles in your team. The roles below must be distributed across team members, but the tasks for roles should not be exclusive, you should all help each other. As the project progresses, these roles should be seen as guidelines rather than strict rules, and your responsibilities should be fluid to match the situation.
- Task Manager
- Client Interfacer
- Unit Tester
- Integration Tester
- Beta Test Organizer
The decision-making policy of your team will be by unanimous consent. Software teams that are not unified can easily fracture under a majority-vote process. It is important that every member is working to find agreement, compromise, and unity for decisions affecting your project. If you are struggling to find consensus, I will be available to moderate your discussion. Please contact me with the steps you have taken so far as a group and a proposal for moving forward.
Team Contract
- Due Oct 24th, signed by all members
Your team will need to create a team contract. This will be the governing document for your team. It will help you establish the structure, procedures, expectations of participation, accountability, and consequences for breech of contract.
Your team contract should be written as the Readme.md Markdown file in a shared GitHub repository. One member will create the repository, and all team members should be added as contributors. In addition to the contract details listed above, each member should write and commit to the Readme.md file a paragraph detailing their roles and responsibilities as decided above and how they plan to contribute to a positive team experience and resolve conflicts over the semester.
Clients
First Client Meeting
Send a professional email to schedule a 30 minute meeting with your client sometime between October 23rd and October 29th. Ask if the client has a scheduling calendar to find times when they are available, and propose possible times that could work. It is best if all members of your team can find a common time to meet with the client, but don’t let that get in the way of finding a time when most of you can meet. Remember that the client is volunteering their time to work with us in this class and we should be accommodating of their time. Determine if it would be productive for you to travel to visit with the client and see their location.
In this meeting, you should try to have the client give you an overview of their idea for a app. It will help if you can find the answers to the following questions:
- What do you want the app to do?
- Who is your audience?
- Are there similar apps you wish to emulate?
- Do you have a visual style in mind for your app?
- Do you have any assets to share with us (text, images, etc)?
Your client will have large amounts of domain expertise, and your goal should be to extract the knowledge you need to be able to create the app they desire. Please ask them questions when you do not fully understand what you need to do.
It is likely that you will know more about app development and design than the client, so try not to get bogged down in the terminology we have been using in class, focus on the app experience.
As you work with your client on this project, be respectful and incorporate their needs as much as possible.
- Be aware of the power and position you hold
- Be transparent about purposes and limitations
- Assess community needs, taking into account community partner’s views
- Acknowledge that you will create burdens for that partner and seek to minimize
- Make sure the good you want to produce is a good your partner wants
- Do not leave behind a mess
- Do not demean or disempower the very people the project was to serve
- Do not create expectations you cannot fulfill
- Recognize that you likely will not know as much as your community partner about what is risky or harmful for partner’s constituents. Follow the autonomous person’s most suspect rule: do it because they said so.
Design Document
After your client meeting, you should have a direction and many ideas for your project. Create a requirements document in Google Docs, which details the
- requirements
- use cases
- GUI wireframes
Break the project into small milestones, describe the structure needed to complete these milestones and create the whole app. Which pieces will you complete first? Which will be finished last?
Include a paragraph for each team member discussing their expected contributions to the final app.
There may be aspects of the app requirements from the client that we have not covered in class. Clearly mark these sections as topics for further exploration, and list websites and tutorials that can be used to assist you in preparing for these new topics.
As always, include citations and licensing information for any resources you plan to incorporate in the app.
Share your requirements document with your client and Dr. Goadrich for their feedback and approval. We will also discuss these in class and provide peer feedback.
First Prototype
Once your design document is approved, you should begin implementing your ideas. Set up a project in GitHub, share it with all members of your team, and ensure that everyone can make updates to the project.
Follow your requirements document, divide up the tasks, and collaborate as we have done in labs to create a first pass at your client’s app. It will be necessary to prioritize the aspects of the app for a reasonable turnaround.
In this prototype, at a minimum you should establish your GUI aesthetics and have at least one screen completed.
Publish your prototype as a release on GitHub, and share your link with Dr. Goadrich.
Second Client Meeting
Schedule a second meeting with your client sometime between November 7th and 14th.
This meeting is to validate the initial efforts of your first prototype, and calibrate if you have diverged from the client expectations. You should walk the client through your current prototype and ask for their feedback on the aesthetics and functionality.
Again, be sensitive to your client’s needs, your goal is to make the app they want.
Based on your conversation, update your Requirements Document to version 2.0, incorporating their feedback and course corrections. Revise the milestones and responsibilities as needed.
Second Prototype
Taking the feedback and ideas from your client, and your updated Requirements Document, revise and improve your initial prototype into a new expanded version of your app.
In this prototype, you should have multiple screens (if this is what your client wants), and develop two different interfaces as we discussed with A/B testing.
Publish your second prototype as a release on GitHub, and share your link with Dr. Goadrich.
A/B and Beta Testing
In this stage, you will be gathering feedback on your second prototype from the rest of the class. In class, we will set aside a day for A/B testing of your two versions of your app interface. Each group will have a station in class, where two members will stay and the rest will circulate to other stations. Each member staying will have a different version of the app ready for testing.
Design a web-based user feedback form for gathering information about your app. Your goal is to evaluate the usability, functionality, clarity, and aesthetics of your app, across the different choices for interface and interaction. Use a Likert scale and freeform answers to gather this information.
Use the results of your feedback to create a report, including graphs, charts, and selected freeform feedback. In this report, highlight the strengths of your current prototype, your conclusions for interface direction based on the A/B testing, and detail the steps you will take to address any weaknesses identified. You should include a timeline showing your next steps to complete your final prototype and who is responsible for each of these steps.
Final Prototype
You should now incorporate the feedback into your prototype, fix any bugs found, and push to complete your app. This is the time to add in the polishing steps.
Publish your prototype as a release on GitHub, and share your link with Dr. Goadrich. Be sure to customize the GitHub page, and include a social media image and screenshots of your app, that you have a detailed README.md file, and a well-chosen LICENSE.
Additionally, revise your requirements document to version 3.0, to match your current app implementation. Update the responsibility paragraph for each team member to detail the contributions of each member to the final product.
Final Presentation
During our finals timeslot, Dec 16, 2:00 - 5:00pm, your team will be giving a 20 minute presentation to your clients and the rest of the class. This will include an overview of your initial requirements document, discuss your joys and struggles to complete the app, quantify your feedback survey replies, and a demonstration of your final product.
If the scope of the app has expanded beyond your initial expectations in your app design document of the milestones and progress needed, be honest with yourselves and detail the steps remaining to complete the app.
SP and Career Competency Reflection
This project will be an SP Odyssey Project, which involves a synthesis of methods, insights, concerns, or subject matters of different disciplines. Also, we have been focusing on Career Competencies throughout the semester.
To help you process and understand this experience in context, you will write a reflection paper combining these two ideas. Your reflection should be approximately two pages, focusing less on the “what you did” and more on “how did it impact you.”
Here are some questions to get you started writing your SP and Career Competency reflection paper for our app project working with community partners, taken from the Odyssey reflection prompts. Feel free to expand beyond the questions listed here as you process your experience.
-
Besides Technology, in this course we have focused on Critical Thinking, Teamwork, Professionalism, and Communication Career Competencies. Pick two of these and discuss their relationship to Technology and how the course material has helped you see these connections.
-
What are the primary lessons you have learned from this Odyssey experience about the kind of leader you want to be and the kind of leader you can be?
-
What skills and talents are most valuable in carrying out the social change work you are doing with your community partner? How well do those skills mesh with the talents or limitations you have come to see in yourself through the experience?
-
Are you self-consciously using different methods of knowing to problem-solve during your project, e.g., scientific, economic, artistic, literary, philosophical, religious, historical, social, mechanical, psychological, cultural or physical? What methods are you most using and how is applying several methods to a common problem proving helpful or enlightening?
-
Coming into this experience, what did you think were your primary strengths and weaknesses as a member of a team? Has that assessment been challenged or confirmed through this experience? Explain.
-
One of the goals of a liberal education is a love for life-long learning. Do you think the experience you have had with this Odyssey project helps equip you for life-long learning? What lessons or skills have you learned that will help you be face difficulties, solve problems, or answer important questions in the future?
-
Hendrix motto is “unto the whole person.” Would you say that doing this project has helped make you a more “whole person”? Why or why not?