SOFTWARE DESIGN & DEVELOPMENT FASTRACK
Create a small team of three/four/five and create a common chat to communicate in Glip
Create a meeting schedule: at least three 20-30 min meetings (virtual or in person) and one longer 2-3 hour meeting a week.
Short meetings: quick meetings used to keep the team constantly in contact and up to date on what each `engineer is working on that week.
Long meetings: Hack-sessions where the whole team would be working for a longer period of time together - a good time to work on a task that one engineer may be stuck on because they could sit/video chat with the rest of the team and figure it out together.
First meeting: Brainstorm ideas for the App/Startup, write down user group target, double check schedule for accuracy, set ground rules (ex: ‘if you can’t meet a deadline notify the group in advance so we can spread the work out’ or ‘never change published code on master, always fork and change your own branch’)
Once the primitive ideas are created, you need to make a design document (like a proof of concept or outline of idea) by giving each person a role: One person can write out the “user group” section and summarize who we are targeting as users, one person can make the “implementation details” section that outlines what we would need in terms of data structures, databases, outside APIs or resources, etc. and another person can write out the “existing market” section that outlines what types of similar products exist, what are their shortcomings, how can we improve them, what challenges do they face, etc.
Add team members as collaborators to FORKAIA GitHub repository
Meet a few more times to solidify design, ask friends/family what they thought of how the app design looks, create a Google forum survey and sent it to people in your target user group and ask questions related to the app and collect data to solidify the app’s proposed need.
With this data, the team can meet and created priorities - separate details/functions that the app could have into several loosely defined groups:
functions the app definitely needs
functions that would enhance the experience
functions that it could have in the future
functions that it doesn’t need
functions that it should NOT have
Create an initial design wireframe for the app, focus on including that “definitely needs” and “would enhance experience” groups of functions.
Go over the design with multiple people to ensure that it was solid, pleasing to the eye, intuitive, etc. Follow Agile/SCRUM design principles
Once the design is finalized, separate the main functionalities of the app found in the “definitely needs” group - give one function to each engineer, set a time goal (1 week for example) and start the main code base for the app together using Android Studio and Firebase (database).
Throughout the week, you should meet and ask each other questions during short meetings while also communicating almost constantly on the group chat - where you ask each other what you all preferred in terms of data structures for certain implementations, database relations, etc.
Once the week is over, You can merge all the working implementations for the week together during a long meeting - designate one person to fix small bugs or design inconsistencies as well as figure out ways to easily make design consistency easier going forward (in Android Studio you use color and style XML files).
You can do this process each week, finish the “definitely needs” group and move onto the “would enhance the experience” group - test all the time and constantly improve code you see issues with!!!
Through enforcing deadlines and heavy collaboration, you can finish the prototype of the app in about 5 Weeks