Plan-it
Have you ever participated in a Bootcamp and found yourself struggling to schedule a meeting with your team? You are not alone!
Problem Background
With the rise of tech bootcamps and courses designed to have teams of students collaborating to achieve goals within deadlines, the number of meetings that need to be planned has also risen.
Unlike organisations, who typically have calendars already set up, these small teams are unprepared to coordinate between their schedules and time zones. While there are some tools out there, we found them to be tedious, hard to use, or locked behind mandatory account creation.
Research Insights & Pain Points
After interviewing several students, we had a better understanding of why and how these small collaborating groups form and function. Not everyone in the group will have their Google Calendar’s up-to-date or will have wildly changing schedules around work and life.
Team coordinators were frequently left scratching their heads, trying to find times when their whole team was available. Or they would have to painstakingly calculate their teams schedules to the same time zone.
Feedback
During our user research, we were able to validate that this was a problem space for many people. Including ourselves! Users frequently reported feeling negatively towards the meeting scheduling process. Coordinators will typically take on the burden of juggling the team’s availability or need to engage in several back and forth emails to try to find a time that works.
Solution Explanation
As we began to deepen our understanding of our users' pain points, we knew our product needed to be easy to use and easy to understand. With the goal to reduce the amount of mental math needed to schedule a meeting, we decided to keep our flow as short as possible. Settling on a visual calendar as a way to display the results of a team’s availability.
Iterative Design Learnings
Our initial assumption was that users would prefer to visually see their team’s availability in order to find times when their team could meet, However, after user testing, we pivoted to display a much simpler list.
Now coordinators can see exactly when their team is available at a glance
Implementation Details
For our product we decided to use a MERN stack which included:
- React for the frontend,
- MongoDB for the database
- Node and Express for the backend
Initially we wanted to have the server and client in 2 different repositories but then have them deployed separately. However, we quickly realised that given the deadlines we had coming, and with all team members being remote, we decided to keep it all in one repository; however that may change in future iterations.
We are using typescript and javascript which gave us a battle at first because of how strict typescript is.
It all paid off in the end because that way we were able to catch bugs before they became a bigger issue.
We chose to use an existing library for the calendar plug-in to try to save some time in the initial implementation. This led to its own challenges as the documentation wasn't well supported for our uses.
There were also certain limitations to how we could style them which led us to having to change our designs to accommodate it. We may in future iterations build one of our own if further user feedback shows the existing ones aren't doing what we need.
Aside from the calendar, there are a lot of moving pieces to some of the routes and functions that were created, but having a certain organised structure from the beginning allowed us to easily keep track of them and even effectively fix bugs because it was easier to find them.
Future Steps
Team Plan-it will be back after a short break to recharge, to save you even more time and brain power. Some of the features that we have planned include Google Calendar integration and a more flexible schedule
Additional Assets can be found here: https://drive.google.com/drive/folders/1i1goxxNH1LotRRjGqb_WwQKMCwGOeD4f?usp=sharing
Learnings
Product Manager Learnings:
Dana Mitchell
- Product discovery is equal parts vexing and wonderful.
- Positively a plethora of new experiences; from creating and presenting demos to creating and maintaining a product sprint board, with user feedback interviews being my favourite.
- How important it is to take the time to understand the problem space and the user, and how easy it is for assumptions to slip in.
Designer Learnings:
Jacqueline Holtsnider
- Working closely with the Developers and Product Managers has shown me the true value of teamwork in building a product. Each person was able to bring in their own unique ideas and working closely with them is imperative for success.
- I learned how working closely with my team allowed us to produce better and more well-rounded solutions that were realistic for our MVP and we were able to quickly put out small fires before they became bigger problems.
- I also learned the importance of compromise and being able to adapt my designs to fit not only within our users needs and feedback, but also within technical and time constraints as well as keeping in mind our business goals.
Designer Learnings:
Jo Sturdivant
- Adapting to an Established Team: Joining the team in week 6 of 8 was challenging, as I had to quickly adapt to existing workflows, dynamics, and goals. This mirrors real-world situations where you often integrate into teams mid-project, and flexibility is essential.
- Work-Blocking for Efficiency: With only two weeks to complete the project, I learned the importance of a structured work-blocking system. This approach allowed me to manage my time effectively and meet deadlines under pressure.
- Making Data-Driven Design Decisions: Unlike my past projects, I had to rely on research conducted by others. This was a valuable experience in using pre-existing data to guide design decisions, helping me focus on the core insights without starting from scratch.
Developer Learnings:
Kristin McCollum
- Learning what the different roles in a cross functional team are and how they work together.
- Having an understanding of the problem space and user helps me come up with better solutions as a developer.
- Learning how to refocus and work with the rest of the team to come up with alternate solutions when faced with a roadblock.
Developer Learnings:
Vanady Beard
&
As the back-end developer, I learned how important it is to create efficient and reliable systems that support the entire application. This experience also taught me the importance of optimising the database and ensuring the backend is scalable and easy to maintain.
Developer Learnings:
Stephen Asiedu
&
As a back-end developer, I've come to understand the importance of being familiar with various database systems and modules. This knowledge enables me to build diverse applications and maintain versatility in my work. I've also learned that the responsibility for making the right choices rests on my shoulders, guided by my best judgement.
Developer Learnings:
John Saguay
&
- Learned to work effectively with a team that included a product manager, a product designer, and a software developer. Where I learned proper work flow and how essential each persons job to build a product.
- Learned to take in user testing feedback to make changes that would benefit a users experience based on their needs.
- Communication & patience because it was essential to make the best out of the time we were able to work through calls since we all worked from different timezones and couldn’t always meet.
- The importance of structure and being consistent with coding practices to make a solid base to be able to continue to build on top of as well as make the code readable for other team members.
Developer Learnings:
Maurquise Williams
&
- Process of Creating an MVP: Developing a Minimum Viable Product (MVP) taught me how to focus on delivering core functionalities balancing between essential features and avoiding scope creep.
- Collaboration in a Real-World Tech Setting: This experience taught me how to collaborate efficiently in a fast-paced tech environment, keeping the team aligned and productive, even while working remotely across time zones.
- Sharpening Critical Thinking and Problem-Solving Skills: This experience honed my ability to think critically and solve problems efficiently. By tackling challenges and finding quick solutions, I sharpened my decision-making and troubleshooting skills in a dynamic, real-world setting.
Developer Learnings:
Jeremiah Williams
&
All in all this experience was very awesome I learned that in coding with others being transparent is key
Developers Learnings:
Justin Farley
&
I learned how important communication is when working with a team. Communication provides understanding, advice, ideas, and much more. While working with the product team, I’ve found that communication keeps everything flowing smoothly. Working with a team also showed me that every member brings something different to the table and we all have to work together in order to align and meet our end goal.
Full Team Learning
- Constraints and compromising on plans can lead to unexpectedly creative solutions..
- Keeping on top of your assumptions can be tricky, but staying flexible by treating the product as an experiment makes pivoting easier
- Strong communication and trust are essential to a great team, being able to hop into a call to hash-out details preserves momentum
- That 4 strangers can be thrown together to create something that they are all proud of :’)