030 - Building A Web App From Scratch With A Group
22 Aug, 2017
Recently completed my first web app as part of a group workshop and I learned a lot! Here are the key steps and biggest takeaways from the experience.
Coming Up With App Ideas
- Set a constraint or goal to help narrow down ideas. Pick one problem to solve, and then think about many ways to solve it.
- Do a lot of brainstorming–everything goes on the list!
- Research each idea to determine what you need to do technically to build it. Pay special attention to APIs, data sources, and other aspects which may take a lot of work to integrate.
Picking An App Idea To Build
- Set a deadline for when you want to complete a minimum viable product, and then pick an idea that is feasible within that time limit.
- Pick an idea that stretches your learning, but isn’t so advanced that it will discourage you from finishing.
- If you know very little about the tech stack, do a bit of extra research to find out how much documentation there is and how many tutorials exist online…if you don’t have resources to go to when you get stuck, it will prove to be very difficult!
Building the App
There will be a lot you will come against that you can’t even imagine ahead of time, but that’s the fun of it! Here are some things which can help guide the process despite this:
- Wireframing: Sketch, Invision, Origami, Google Docs, or even just pen & paper will give you a map to follow during the project.
- Build the function before building the design, as existing design can limit the code you write.
- Set some user questions at the beginning to make sure you’re hitting all the key needs when building the app.
Collaboration
Working with a group has both benefits and challenges. Here are some things which can make the experience work well:
- Git for version control & GitHub for collaboration. Check out episode 14 of this podcast to learn some basics. Use branches so that each person is working on different parts of the code.
- You can also use GitHub’s issues and projects to keep track of what needs to be worked on, what’s in progress, and what’s been completed.
- Meet with the group to get everyone on the same page as far as expectations go. If some people have more/less time to work on the project, or more/less skills in certain areas, it’s helpful to know in advance. Be honest!
- Ask questions about the code other people write to learn even more.
“Finishing” The App
- If you identified some user questions at the beginning to determine what you would be happy with as a minimum viable product, make this your goal for “finishing.” There will always be something else to do or other improvements to make, but focus on shipping something stable as an initial goal.
- Deployment is the final hurdle which may take more effort than anticipated. Don’t let this derail the project. Go for a simple service like Heroku if it helps.
- Send the live link to some friends for user testing. They may find some things you missed while you were deep in the code.